mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import {Type} from '@angular/core';
|
|
import {stringify} from '../facade/lang';
|
|
|
|
/**
|
|
* Information about a route.
|
|
*
|
|
* It has the following properties:
|
|
* - `path` is a string that uses the route matcher DSL.
|
|
* - `component` a component type.
|
|
*
|
|
* ### Example
|
|
* ```
|
|
* import {Routes} from '@angular/router';
|
|
*
|
|
* @Routes([
|
|
* {path: '/home', component: HomeCmp}
|
|
* ])
|
|
* class MyApp {}
|
|
* ```
|
|
*
|
|
* @ts2dart_const
|
|
*/
|
|
export abstract class RouteMetadata {
|
|
abstract get path(): string;
|
|
abstract get component(): Type|string;
|
|
}
|
|
|
|
/**
|
|
* See {@link RouteMetadata} for more information.
|
|
* @ts2dart_const
|
|
*/
|
|
export class Route implements RouteMetadata {
|
|
path: string;
|
|
component: Type|string;
|
|
constructor({path, component}: {path?: string, component?: Type|string} = {}) {
|
|
this.path = path;
|
|
this.component = component;
|
|
}
|
|
toString(): string { return `@Route(${this.path}, ${stringify(this.component)})`; }
|
|
}
|
|
|
|
/**
|
|
* Defines routes for a given component.
|
|
*
|
|
* It takes an array of {@link RouteMetadata}s.
|
|
* @ts2dart_const
|
|
*/
|
|
export class RoutesMetadata {
|
|
constructor(public routes: RouteMetadata[]) {}
|
|
toString(): string { return `@Routes(${this.routes})`; }
|
|
}
|