@dreamkit/app 0.0.1 → 0.0.2
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.
|
@@ -16,8 +16,9 @@ export type RouteOptions<T extends RouteData = RouteData> = T & {
|
|
|
16
16
|
redirect: string;
|
|
17
17
|
};
|
|
18
18
|
component?: (props: any) => any;
|
|
19
|
+
routeDefinition?: (options: RouteOptions) => any;
|
|
19
20
|
filePath?: string;
|
|
20
|
-
createComponent?: (options: RouteOptions
|
|
21
|
+
createComponent?: (options: RouteOptions) => any;
|
|
21
22
|
};
|
|
22
23
|
export type InferRouteParams<T extends RouteData> = [undefined] extends [
|
|
23
24
|
T["params"]
|
|
@@ -34,7 +35,7 @@ export declare class RouteBuilder<T extends RouteData = RouteData> {
|
|
|
34
35
|
readonly data: T;
|
|
35
36
|
readonly options: RouteOptions<T>;
|
|
36
37
|
constructor(options: RouteOptions<T>);
|
|
37
|
-
protected clone(
|
|
38
|
+
protected clone(input?: Partial<RouteOptions> | RouteBuilder): this;
|
|
38
39
|
title(value: string | undefined): this;
|
|
39
40
|
params<TParams extends RouteParams>(type: TParams): RouteBuilder<MergeFuncData<T, {
|
|
40
41
|
params: TParams;
|
|
@@ -48,6 +49,7 @@ export declare class RouteBuilder<T extends RouteData = RouteData> {
|
|
|
48
49
|
redirect: string;
|
|
49
50
|
}): this;
|
|
50
51
|
path(value: string | ((params: RoutePathParams<keyof NonNullable<T["params"]>["props"]>) => string)): this;
|
|
52
|
+
protected createRouteDefinition(): any;
|
|
51
53
|
create(component: (props: RouteProps<T>) => any): Route;
|
|
52
54
|
}
|
|
53
55
|
//# sourceMappingURL=RouteBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;KAC/D,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK;CAC7C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IAAI;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,GAAG;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { kindRoute } from "../utils/kind.js";
|
|
1
|
+
import { isRouteBuilder, kindRoute, kindRouteBuilder } from "../utils/kind.js";
|
|
2
2
|
import { kindOf } from "@dreamkit/kind";
|
|
3
3
|
import { ObjectType, s, } from "@dreamkit/schema";
|
|
4
4
|
export class RouteBuilder {
|
|
5
|
+
static {
|
|
6
|
+
kindRouteBuilder(this);
|
|
7
|
+
}
|
|
5
8
|
data;
|
|
6
9
|
options;
|
|
7
10
|
constructor(options) {
|
|
@@ -10,9 +13,9 @@ export class RouteBuilder {
|
|
|
10
13
|
params: options.params,
|
|
11
14
|
};
|
|
12
15
|
}
|
|
13
|
-
clone(
|
|
16
|
+
clone(input = {}) {
|
|
14
17
|
const prev = this.options;
|
|
15
|
-
const next = options;
|
|
18
|
+
const next = isRouteBuilder(input) ? input.options : input;
|
|
16
19
|
return new RouteBuilder({
|
|
17
20
|
...prev,
|
|
18
21
|
...next,
|
|
@@ -38,12 +41,17 @@ export class RouteBuilder {
|
|
|
38
41
|
const params = new Proxy({}, { get: (_, prop) => `:${prop}` });
|
|
39
42
|
return this.clone({ path: value(params) });
|
|
40
43
|
}
|
|
44
|
+
createRouteDefinition() {
|
|
45
|
+
if (!this.options.routeDefinition)
|
|
46
|
+
throw new Error("routeDefinition is not defined");
|
|
47
|
+
return this.options.routeDefinition(this.options);
|
|
48
|
+
}
|
|
41
49
|
create(component) {
|
|
42
50
|
const self = this.clone({ component });
|
|
43
51
|
const result = function (props) {
|
|
44
52
|
if (!self.options.createComponent)
|
|
45
53
|
throw new Error("createComponent is not defined");
|
|
46
|
-
return self.options.createComponent(self.options
|
|
54
|
+
return self.options.createComponent(self.options);
|
|
47
55
|
};
|
|
48
56
|
kindRoute(result);
|
|
49
57
|
Object.assign(result, {
|
package/lib/utils/kind.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { App } from "../App.js";
|
|
2
|
-
import type { Route } from "../builders/RouteBuilder.js";
|
|
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>>;
|
|
5
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,MAAM,6BAA6B,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,+IAE7C,CAAC"}
|
package/lib/utils/kind.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { createKind } from "@dreamkit/kind";
|
|
2
2
|
export const [kindApp, isApp] = createKind("@dreamkit/app");
|
|
3
3
|
export const [kindRoute, isRoute] = createKind("@dreamkit/app/route");
|
|
4
|
+
export const [kindRouteBuilder, isRouteBuilder] = createKind("@dreamkit/app/RouteBuilder");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreamkit/app",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Set of utils to create applications.",
|
|
5
5
|
"homepage": "https://dreamkit.dev",
|
|
6
6
|
"repository": {
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"lib"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@dreamkit/kind": "0.0.
|
|
30
|
-
"@dreamkit/schema": "0.0.
|
|
31
|
-
"@dreamkit/utils": "0.0.
|
|
29
|
+
"@dreamkit/kind": "0.0.2",
|
|
30
|
+
"@dreamkit/schema": "0.0.2",
|
|
31
|
+
"@dreamkit/utils": "0.0.2"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@dreamkit/tsconfig": "0.0.1"
|