# @dovm/router

> Page router for DOVM

Latest version **0.0.1** (published 2022-04-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install @dovm/router
pnpm add @dovm/router
yarn add @dovm/router
bun add @dovm/router
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2022-04-11 |
| First published | 2022-04-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 15.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | ultimaweapon |
| Keywords | dovm, router |

## Links

- npm: https://www.npmjs.com/package/@dovm/router
- Repository: https://github.com/ultimicro/dovm-router
- Issues: https://github.com/ultimicro/dovm-router/issues
- npm.io page: https://npm.io/package/@dovm/router

## Dependencies (1)

- [tslib](https://npm.io/package/tslib.md) ^2.3.1

## Alternatives

- [express-promise-router](https://npm.io/package/express-promise-router.md) — 736.1K weekly downloads
- [next-usequerystate](https://npm.io/package/next-usequerystate.md) — 29.8K weekly downloads
- [@bitkyc08/opencodex](https://npm.io/package/@bitkyc08/opencodex.md) — 4.6K weekly downloads
- [lynkr](https://npm.io/package/lynkr.md) — 575 weekly downloads
- [baremetal.js](https://npm.io/package/baremetal.js.md) — 42 weekly downloads

## Recent versions

- 0.0.1 (latest) — 2022-04-11

## README

# DOVM Router

This is the official router for DOVM.

## Usage

Declare a route table:

```ts
// routes.ts
import { Navigation, Route, RouteParams } from '@dovm/router';

export class IndexNavigation extends Navigation {
  static resolve(params: RouteParams): IndexNavigation | undefined {
    return new IndexNavigation();
  }
}

export const Routes: Route[] = [
  new Route(IndexNavigation, {
    path: '/',
    view: async c => {
      const { default: component } = await import(/* webpackChunkName: "home" */ './home');

      return new component({
        services: c.services,
        container: c.container,
        attrs: {},
        slots: {}
      });
    }
  })
];
```

Register a router to IoC container:

```ts
import { ServiceCollection } from '@dovm/core';
import { Router } from '@dovm/router';
import { Routes } from './routes';

const services = new ServiceCollection();

services.add(Router, () => new Router(Routes));
```

Render view:

```html
<component class="RouterView" src="@dovm/router"></component>

<template>
  <router-view>
    <template #main>The page you are requested does not exists.</template>
    <template #loading>Loading...</template>
  </router-view>
</template>
```

## License

MIT

---
_Source: https://npm.io/package/@dovm/router · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
