@dreamkit/app 0.0.7-next.4 → 0.0.7-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Func } from "@dreamkit/func";
|
|
2
2
|
import { InferType, MinimalObjectType, ObjectType, ObjectTypeProps } from "@dreamkit/schema";
|
|
3
|
-
import type { Merge } from "@dreamkit/utils/ts.js";
|
|
4
|
-
export type
|
|
3
|
+
import type { Merge, throwError } from "@dreamkit/utils/ts.js";
|
|
4
|
+
export type RoutePathParamsObject<P extends string | number | symbol> = {
|
|
5
5
|
[K in P]: K extends string ? `:${K}` : never;
|
|
6
6
|
};
|
|
7
7
|
export type RouteParams = MinimalObjectType | undefined;
|
|
8
|
+
export type RoutePathParams = string[] | undefined;
|
|
8
9
|
export type RouteApi = {
|
|
9
10
|
[key: string]: (...args: any[]) => any;
|
|
10
11
|
};
|
|
@@ -18,11 +19,16 @@ export type RoutePreloadData<T extends RouteData> = {
|
|
|
18
19
|
params: InferRouteParams<T>;
|
|
19
20
|
api: ResolveRouteApi<T>;
|
|
20
21
|
};
|
|
21
|
-
export type RouteData<TParams extends RouteParams = RouteParams, TApi extends RouteApi = RouteApi, TData extends unknown = unknown> = {
|
|
22
|
+
export type RouteData<TParams extends RouteParams = RouteParams, TApi extends RouteApi = RouteApi, TPathParams extends RoutePathParams = RoutePathParams, TData extends unknown = unknown> = {
|
|
22
23
|
params?: TParams;
|
|
23
24
|
api?: TApi;
|
|
25
|
+
pathParams?: TPathParams;
|
|
24
26
|
_data?: TData;
|
|
25
27
|
};
|
|
28
|
+
export type PendingRouteParams<T extends RouteData> = keyof {
|
|
29
|
+
[K in (T["pathParams"] & {})[number] as K extends keyof (T["params"] & {})["props"] ? never : K]: true;
|
|
30
|
+
};
|
|
31
|
+
export type RouteCreate<T extends RouteData = RouteData> = (component: (props: RouteProps<T>) => any) => Route;
|
|
26
32
|
export type RouteOptions<T extends RouteData = RouteData> = T & {
|
|
27
33
|
title?: string;
|
|
28
34
|
path?: string;
|
|
@@ -59,6 +65,9 @@ export declare class RouteBuilder<T extends RouteData = RouteData> {
|
|
|
59
65
|
api<TApi extends RouteApi>(api: TApi): RouteBuilder<MergeFuncData<T, {
|
|
60
66
|
api: T["api"] & TApi;
|
|
61
67
|
}>>;
|
|
68
|
+
pathParams<TPathParams extends [string, ...string[]]>(...input: TPathParams): RouteBuilder<MergeFuncData<T, {
|
|
69
|
+
pathParams: TPathParams;
|
|
70
|
+
}>>;
|
|
62
71
|
params<TParams extends RouteParams>(type: TParams): RouteBuilder<MergeFuncData<T, {
|
|
63
72
|
params: TParams;
|
|
64
73
|
}>>;
|
|
@@ -70,11 +79,11 @@ export declare class RouteBuilder<T extends RouteData = RouteData> {
|
|
|
70
79
|
} | {
|
|
71
80
|
redirect: string;
|
|
72
81
|
}): this;
|
|
73
|
-
path(value: string | ((params:
|
|
82
|
+
path(value: string | ((params: RoutePathParamsObject<keyof NonNullable<T["params"]>["props"]>) => string)): this;
|
|
74
83
|
preload<TData>(cb: (data: RoutePreloadData<T>) => TData): RouteBuilder<MergeFuncData<T, {
|
|
75
84
|
_data: TData;
|
|
76
85
|
}>>;
|
|
77
86
|
protected createRouteDefinition(): any;
|
|
78
|
-
create
|
|
87
|
+
create: unknown extends T["pathParams"] ? RouteCreate<T> : PendingRouteParams<T> extends never ? RouteCreate<T> : throwError<`Route params not defined: ${PendingRouteParams<T>}`>;
|
|
79
88
|
}
|
|
80
89
|
//# sourceMappingURL=RouteBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,9 @@ export class RouteBuilder {
|
|
|
32
32
|
api(api) {
|
|
33
33
|
return this.clone({ api });
|
|
34
34
|
}
|
|
35
|
+
pathParams(...input) {
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
35
38
|
params(params) {
|
|
36
39
|
return this.clone({ params });
|
|
37
40
|
}
|
|
@@ -57,7 +60,7 @@ export class RouteBuilder {
|
|
|
57
60
|
throw new Error("routeDefinition is not defined");
|
|
58
61
|
return this.options.routeDefinition(this.options);
|
|
59
62
|
}
|
|
60
|
-
create(component) {
|
|
63
|
+
create = ((component) => {
|
|
61
64
|
const self = this.clone({ component });
|
|
62
65
|
const result = function (props) {
|
|
63
66
|
if (!self.options.createComponent)
|
|
@@ -69,5 +72,5 @@ export class RouteBuilder {
|
|
|
69
72
|
$options: self.options,
|
|
70
73
|
});
|
|
71
74
|
return result;
|
|
72
|
-
}
|
|
75
|
+
});
|
|
73
76
|
}
|
package/lib/utils/kind.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ import type { App } from "../App.js";
|
|
|
2
2
|
import type { Route, RouteBuilder } from "../builders/RouteBuilder.js";
|
|
3
3
|
export declare const kindApp: (input: object, name?: string) => void, isApp: (input: unknown) => input is App;
|
|
4
4
|
export declare const kindRoute: (input: object, name?: string) => void, isRoute: (input: unknown) => input is Route;
|
|
5
|
-
export declare const kindRouteBuilder: (input: object, name?: string) => void, isRouteBuilder: (input: unknown) => input is RouteBuilder<import("../builders/RouteBuilder.js").RouteData<import("../builders/RouteBuilder.js").RouteParams, import("../builders/RouteBuilder.js").RouteApi, unknown>>;
|
|
5
|
+
export declare const kindRouteBuilder: (input: object, name?: string) => void, isRouteBuilder: (input: unknown) => input is RouteBuilder<import("../builders/RouteBuilder.js").RouteData<import("../builders/RouteBuilder.js").RouteParams, import("../builders/RouteBuilder.js").RouteApi, import("../builders/RouteBuilder.js").RoutePathParams, unknown>>;
|
|
6
6
|
//# sourceMappingURL=kind.d.ts.map
|
package/lib/utils/kind.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/utils/kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGvE,eAAO,MAAO,OAAO,0CAAE,KAAK,kCAAoC,CAAC;AACjE,eAAO,MAAO,SAAS,0CAAE,OAAO,oCAA4C,CAAC;AAC7E,eAAO,MAAO,gBAAgB,0CAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/utils/kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGvE,eAAO,MAAO,OAAO,0CAAE,KAAK,kCAAoC,CAAC;AACjE,eAAO,MAAO,SAAS,0CAAE,OAAO,oCAA4C,CAAC;AAC7E,eAAO,MAAO,gBAAgB,0CAAE,cAAc,+PAE7C,CAAC"}
|