ember-source
Version:
A JavaScript framework for creating ambitious web applications
64 lines (63 loc) • 2.04 kB
TypeScript
declare module '@ember/routing/lib/dsl' {
import type { InternalFactory } from '@ember/-internals/owner';
import type { MatchCallback } from 'route-recognizer';
import type { EngineInfo, EngineRouteInfo } from '@ember/routing/lib/engines';
export interface RouteOptions {
path?: string;
resetNamespace?: boolean;
serialize?: (
model: {},
params: string[]
) => {
[key: string]: unknown | undefined;
};
overrideNameAssertion?: boolean;
}
export interface MountOptions {
path?: string;
as?: string;
resetNamespace?: boolean;
}
export interface DSLCallback {
(this: DSL): void;
}
export interface DSL {
route(name: string): void;
route(name: string, callback: DSLCallback): void;
route(name: string, options: RouteOptions): void;
route(name: string, options: RouteOptions, callback: DSLCallback): void;
mount(name: string): void;
mount(name: string, options: MountOptions): void;
}
export interface DSLImplOptions {
enableLoadingSubstates: boolean;
engineInfo?: EngineInfo;
addRouteForEngine(name: string, routeOptions: EngineRouteInfo): void;
resolveRouteMap(name: string): InternalFactory<any, any>;
}
export default class DSLImpl implements DSL {
parent: string | null;
matches: Array<Object | undefined>;
enableLoadingSubstates: boolean;
explicitIndex: boolean;
options: DSLImplOptions;
constructor(name: string | null | undefined, options: DSLImplOptions);
route(name: string): void;
route(name: string, callback: DSLCallback): void;
route(name: string, options: RouteOptions): void;
route(name: string, options: RouteOptions, callback: DSLCallback): void;
push(
url: string,
name: string,
callback?: MatchCallback,
serialize?: (
model: {},
params: string[]
) => {
[key: string]: unknown | undefined;
}
): void;
generate(): MatchCallback;
mount(_name: string, options?: MountOptions): void;
}
}