@dreamkit/app 0.0.6 → 0.0.7-next.1
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.
- package/lib/App.d.ts +13 -1
- package/lib/App.d.ts.map +1 -1
- package/lib/App.js +119 -3
- package/lib/builders/RouteBuilder.d.ts +19 -5
- package/lib/builders/RouteBuilder.d.ts.map +1 -1
- package/lib/builders/RouteBuilder.js +4 -1
- package/lib/builders/SettingsBuilder.d.ts +61 -0
- package/lib/builders/SettingsBuilder.d.ts.map +1 -0
- package/lib/builders/SettingsBuilder.js +92 -0
- package/lib/handlers/SettingsHandler.d.ts +35 -0
- package/lib/handlers/SettingsHandler.d.ts.map +1 -0
- package/lib/handlers/SettingsHandler.js +61 -0
- package/lib/index.d.ts +5 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -2
- package/lib/objects/$settings.d.ts +6 -0
- package/lib/objects/$settings.d.ts.map +1 -0
- package/lib/objects/$settings.js +2 -0
- package/lib/objects/middleware.d.ts +1 -1
- package/lib/objects/middleware.d.ts.map +1 -1
- package/lib/objects/service.d.ts +1 -1
- package/lib/objects/service.d.ts.map +1 -1
- package/lib/utils/kind.d.ts +1 -1
- package/lib/utils/kind.d.ts.map +1 -1
- package/package.json +5 -5
package/lib/App.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Route } from "./builders/RouteBuilder.js";
|
|
2
|
+
import { SettingsConstructor } from "./builders/SettingsBuilder.js";
|
|
3
|
+
import { SettingsHandler, SettingsHandlerConstructor } from "./handlers/SettingsHandler.js";
|
|
2
4
|
import { MiddlewareConstructor } from "./objects/middleware.js";
|
|
3
5
|
import { AppService, ServiceConstructor } from "./objects/service.js";
|
|
4
6
|
import { IocContext } from "@dreamkit/ioc";
|
|
@@ -10,6 +12,8 @@ export declare class App {
|
|
|
10
12
|
readonly routes: Set<Route>;
|
|
11
13
|
readonly services: Set<AppService>;
|
|
12
14
|
readonly middlewares: Set<MiddlewareConstructor>;
|
|
15
|
+
readonly settings: Set<SettingsConstructor<import("./builders/SettingsBuilder.js").SettingsData<import("./builders/SettingsBuilder.js").SettingsName, import("./builders/SettingsBuilder.js").SettingsParams, import("./builders/SettingsBuilder.js").SettingsDefaults<import("./builders/SettingsBuilder.js").SettingsParams>>>>;
|
|
16
|
+
settingsHandler: SettingsHandlerConstructor | undefined;
|
|
13
17
|
protected listeners: {
|
|
14
18
|
add: Set<(data: {
|
|
15
19
|
id: string;
|
|
@@ -28,6 +32,7 @@ export declare class App {
|
|
|
28
32
|
constructor();
|
|
29
33
|
static instance(): App;
|
|
30
34
|
static saveInstance(instance: App): void;
|
|
35
|
+
static createGlobalInstance(): App;
|
|
31
36
|
on(event: "add" | "remove", cb: (data: {
|
|
32
37
|
id: string;
|
|
33
38
|
value: unknown;
|
|
@@ -43,9 +48,16 @@ export declare class App {
|
|
|
43
48
|
protected addService(service: ServiceConstructor): AppService;
|
|
44
49
|
protected startService(item: AppService): Promise<void>;
|
|
45
50
|
protected stopService(item: AppService): Promise<void>;
|
|
46
|
-
add(
|
|
51
|
+
add(input: Record<string, any> | any[]): Promise<void>;
|
|
47
52
|
createRequestContext(request: Request): IocContext;
|
|
48
53
|
request(request: Request): Promise<Response | undefined>;
|
|
54
|
+
protected initSettingsValue(constructor: SettingsConstructor): Promise<{
|
|
55
|
+
[x: string]: any;
|
|
56
|
+
} | undefined>;
|
|
57
|
+
protected registerAllSettings(): Promise<import("./handlers/SettingsHandler.js").SettingsHandlerSaveResult | undefined>;
|
|
58
|
+
protected registerSettings(constructor: SettingsConstructor): Promise<void>;
|
|
59
|
+
protected removeSettings(constructor: SettingsConstructor): void;
|
|
60
|
+
protected seettingsHandler(): SettingsHandler | undefined;
|
|
49
61
|
start(): Promise<void>;
|
|
50
62
|
stop(): Promise<void>;
|
|
51
63
|
}
|
package/lib/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAc,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAEL,eAAe,EACf,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAgB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACL,UAAU,EAEV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAGL,UAAU,EAEX,MAAM,eAAe,CAAC;AAIvB,qBAAa,GAAG;IAId,MAAM,CAAC,WAAW,SAAY;IAC9B,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,mBAA0B;IAC1C,QAAQ,CAAC,MAAM,aAAoB;IACnC,QAAQ,CAAC,QAAQ,kBAAyB;IAC1C,QAAQ,CAAC,WAAW,6BAAoC;IACxD,QAAQ,CAAC,QAAQ,iTAAkC;IAC5C,eAAe,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC/D,SAAS,CAAC,SAAS;wBACG;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,KAAK,GAAG;2BACnC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,KAAK,GAAG;2BAEpD;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;SAAE,KAAK,GAAG;MAEzE;;IAMF,MAAM,CAAC,QAAQ,IAAI,GAAG;IAKtB,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG;IAGjC,MAAM,CAAC,oBAAoB,IAAI,GAAG;IAKlC,EAAE,CACA,KAAK,EAAE,KAAK,GAAG,QAAQ,EACvB,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,GAAG,GAChD,IAAI;IACP,EAAE,CACA,KAAK,EAAE,QAAQ,EACf,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,KAAK,GAAG,GAC1E,IAAI;IAKP,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI;IAItD,WAAW,CAAC,KAAK,EAAE,OAAO;IAMpB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1C,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;cAiB7C,YAAY,CAAC,IAAI,EAAE,UAAU;cAU7B,WAAW,CAAC,IAAI,EAAE,UAAU;IAQtC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD5D,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAS/B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAU9C,iBAAiB,CAAC,WAAW,EAAE,mBAAmB;;;cAgBlD,mBAAmB;cAanB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB;IAUjE,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB;IAKzD,SAAS,CAAC,gBAAgB,IAAI,eAAe,GAAG,SAAS;IAGnD,KAAK;IAOL,IAAI;CAkBX"}
|
package/lib/App.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { RequestUrl } from "./RequestUrl.js";
|
|
2
|
+
import { isApi } from "./builders/ApiBuilder.js";
|
|
3
|
+
import { isSettings } from "./builders/SettingsBuilder.js";
|
|
4
|
+
import { isSettingsHandler, SettingsHandler, } from "./handlers/SettingsHandler.js";
|
|
2
5
|
import { isMiddleware } from "./objects/middleware.js";
|
|
3
6
|
import { isService, } from "./objects/service.js";
|
|
4
|
-
import { isRoute } from "./utils/kind.js";
|
|
7
|
+
import { isRoute, kindApp } from "./utils/kind.js";
|
|
5
8
|
import { log } from "./utils/log.js";
|
|
6
|
-
import { context } from "@dreamkit/ioc";
|
|
9
|
+
import { context, IocBaseClass, normalizeIocParams, } from "@dreamkit/ioc";
|
|
10
|
+
import { getKinds, is } from "@dreamkit/kind";
|
|
11
|
+
import { merge } from "@dreamkit/utils/object.js";
|
|
7
12
|
export class App {
|
|
13
|
+
static {
|
|
14
|
+
kindApp(this);
|
|
15
|
+
}
|
|
8
16
|
static instanceKey = "dk:app";
|
|
9
17
|
started = false;
|
|
10
18
|
context;
|
|
@@ -12,6 +20,8 @@ export class App {
|
|
|
12
20
|
routes = new Set();
|
|
13
21
|
services = new Set();
|
|
14
22
|
middlewares = new Set();
|
|
23
|
+
settings = new Set();
|
|
24
|
+
settingsHandler;
|
|
15
25
|
listeners = {
|
|
16
26
|
add: new Set(),
|
|
17
27
|
remove: new Set(),
|
|
@@ -31,6 +41,11 @@ export class App {
|
|
|
31
41
|
static saveInstance(instance) {
|
|
32
42
|
globalThis[App.instanceKey] = instance;
|
|
33
43
|
}
|
|
44
|
+
static createGlobalInstance() {
|
|
45
|
+
const app = new App();
|
|
46
|
+
this.saveInstance(app);
|
|
47
|
+
return app;
|
|
48
|
+
}
|
|
34
49
|
on(event, cb) {
|
|
35
50
|
this.listeners[event].add(cb);
|
|
36
51
|
return this;
|
|
@@ -63,6 +78,13 @@ export class App {
|
|
|
63
78
|
else if (isMiddleware(value)) {
|
|
64
79
|
this.middlewares.delete(value);
|
|
65
80
|
}
|
|
81
|
+
else if (isSettings(value)) {
|
|
82
|
+
this.removeSettings(value);
|
|
83
|
+
}
|
|
84
|
+
else if (isSettingsHandler(value)) {
|
|
85
|
+
this.context.unregister(SettingsHandler);
|
|
86
|
+
this.settingsHandler = undefined;
|
|
87
|
+
}
|
|
66
88
|
for (const cb of this.listeners.remove)
|
|
67
89
|
await cb({ id, value });
|
|
68
90
|
for (const cb of this.listeners.change)
|
|
@@ -76,6 +98,14 @@ export class App {
|
|
|
76
98
|
service,
|
|
77
99
|
started: false,
|
|
78
100
|
};
|
|
101
|
+
if (is(service, IocBaseClass)) {
|
|
102
|
+
const params = normalizeIocParams(service.$ioc.params);
|
|
103
|
+
for (const key in params) {
|
|
104
|
+
const { value } = params[key].options;
|
|
105
|
+
if (isSettings(value))
|
|
106
|
+
this.settings.add(value);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
79
109
|
this.services.add(item);
|
|
80
110
|
return item;
|
|
81
111
|
}
|
|
@@ -96,8 +126,16 @@ export class App {
|
|
|
96
126
|
item.started = false;
|
|
97
127
|
log("service stopped", { name });
|
|
98
128
|
}
|
|
99
|
-
async add(
|
|
129
|
+
async add(input) {
|
|
130
|
+
let loadSettingsHandler = false;
|
|
100
131
|
const services = [];
|
|
132
|
+
const settings = [];
|
|
133
|
+
const objects = Array.isArray(input)
|
|
134
|
+
? input.reduce((result, value, index) => {
|
|
135
|
+
result[index] = value;
|
|
136
|
+
return result;
|
|
137
|
+
}, {})
|
|
138
|
+
: input;
|
|
101
139
|
for (const [id, value] of Object.entries(objects)) {
|
|
102
140
|
if (isRoute(value)) {
|
|
103
141
|
this.routes.add(value);
|
|
@@ -110,6 +148,29 @@ export class App {
|
|
|
110
148
|
else if (isMiddleware(value)) {
|
|
111
149
|
this.middlewares.add(value);
|
|
112
150
|
}
|
|
151
|
+
else if (isSettings(value)) {
|
|
152
|
+
this.settings.add(value);
|
|
153
|
+
settings.push(value);
|
|
154
|
+
}
|
|
155
|
+
else if (isSettingsHandler(value)) {
|
|
156
|
+
loadSettingsHandler = true;
|
|
157
|
+
this.settingsHandler = value;
|
|
158
|
+
this.context.register(SettingsHandler, {
|
|
159
|
+
singleton: true,
|
|
160
|
+
useFactory: (context) => {
|
|
161
|
+
const handler = context.resolve(value);
|
|
162
|
+
handler["settings"] = this.settings;
|
|
163
|
+
return handler;
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
else if (isApi(value)) {
|
|
168
|
+
// Not implemented (using solid start actions)
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
console.warn("Unknown object", { id, value, kinds: getKinds(value) });
|
|
173
|
+
}
|
|
113
174
|
this.objects.set(id, value);
|
|
114
175
|
for (const cb of this.listeners.add)
|
|
115
176
|
await cb({ id, value });
|
|
@@ -117,6 +178,10 @@ export class App {
|
|
|
117
178
|
await cb({ id, value, action: "add" });
|
|
118
179
|
}
|
|
119
180
|
if (this.started) {
|
|
181
|
+
if (loadSettingsHandler)
|
|
182
|
+
await this.context.resolve(SettingsHandler).load();
|
|
183
|
+
for (const setting of settings)
|
|
184
|
+
await this.registerSettings(setting);
|
|
120
185
|
for (const service of services)
|
|
121
186
|
await this.startService(service);
|
|
122
187
|
}
|
|
@@ -139,9 +204,58 @@ export class App {
|
|
|
139
204
|
return response;
|
|
140
205
|
}
|
|
141
206
|
}
|
|
207
|
+
async initSettingsValue(constructor) {
|
|
208
|
+
const handler = this.context.resolve(SettingsHandler, {
|
|
209
|
+
optional: true,
|
|
210
|
+
});
|
|
211
|
+
if (!handler)
|
|
212
|
+
return;
|
|
213
|
+
const options = constructor.options;
|
|
214
|
+
let value = await handler.get(constructor);
|
|
215
|
+
if (options.optional && !options.generate && !value)
|
|
216
|
+
return;
|
|
217
|
+
const generated = options.generate?.(value || {}) || {};
|
|
218
|
+
if (Object.keys(generated).length) {
|
|
219
|
+
value = merge({ ...value }, generated);
|
|
220
|
+
await handler.set(constructor, value);
|
|
221
|
+
}
|
|
222
|
+
return value;
|
|
223
|
+
}
|
|
224
|
+
async registerAllSettings() {
|
|
225
|
+
const settingsHandler = this.seettingsHandler();
|
|
226
|
+
if (settingsHandler) {
|
|
227
|
+
settingsHandler.autoSave = false;
|
|
228
|
+
await settingsHandler.load();
|
|
229
|
+
}
|
|
230
|
+
try {
|
|
231
|
+
for (const st of this.settings)
|
|
232
|
+
await this.registerSettings(st);
|
|
233
|
+
}
|
|
234
|
+
finally {
|
|
235
|
+
return await settingsHandler?.save();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
async registerSettings(constructor) {
|
|
239
|
+
const options = constructor.options;
|
|
240
|
+
const value = await this.initSettingsValue(constructor);
|
|
241
|
+
if (options.optional && !value)
|
|
242
|
+
return;
|
|
243
|
+
log("registering settings", { name: options.name });
|
|
244
|
+
this.context.register(constructor, {
|
|
245
|
+
value: new constructor(value),
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
removeSettings(constructor) {
|
|
249
|
+
this.settings.delete(constructor);
|
|
250
|
+
this.context.unregister(constructor);
|
|
251
|
+
}
|
|
252
|
+
seettingsHandler() {
|
|
253
|
+
return this.context.resolve(SettingsHandler, { optional: true });
|
|
254
|
+
}
|
|
142
255
|
async start() {
|
|
143
256
|
log("starting app");
|
|
144
257
|
this.started = true;
|
|
258
|
+
await this.registerAllSettings();
|
|
145
259
|
for (const item of this.services)
|
|
146
260
|
await this.startService(item);
|
|
147
261
|
}
|
|
@@ -158,6 +272,8 @@ export class App {
|
|
|
158
272
|
errors.push(error);
|
|
159
273
|
}
|
|
160
274
|
}
|
|
275
|
+
for (const settings of this.settings)
|
|
276
|
+
this.removeSettings(settings);
|
|
161
277
|
if (errors.length)
|
|
162
278
|
throw new AggregateError(errors, "App stop failed");
|
|
163
279
|
this.started = false;
|
|
@@ -8,9 +8,20 @@ export type RouteParams = MinimalObjectType | undefined;
|
|
|
8
8
|
export type RouteApi = {
|
|
9
9
|
[key: string]: (...args: any[]) => any;
|
|
10
10
|
};
|
|
11
|
-
export type
|
|
11
|
+
export type ResolveRouteApi<T extends RouteData> = keyof T["api"] extends never ? never : {
|
|
12
|
+
[K in keyof T["api"]]: T["api"][K] extends Func<infer TData, infer TResult> ? Func<{
|
|
13
|
+
[K in keyof TData as K extends "self" ? never : K]: TData[K];
|
|
14
|
+
}, Promise<Awaited<TResult>>> : never;
|
|
15
|
+
};
|
|
16
|
+
export type RoutePreloadData<T extends RouteData> = {
|
|
17
|
+
intent: string;
|
|
18
|
+
params: InferRouteParams<T>;
|
|
19
|
+
api: ResolveRouteApi<T>;
|
|
20
|
+
};
|
|
21
|
+
export type RouteData<TParams extends RouteParams = RouteParams, TApi extends RouteApi = RouteApi, TData extends unknown = unknown> = {
|
|
12
22
|
params?: TParams;
|
|
13
23
|
api?: TApi;
|
|
24
|
+
_data?: TData;
|
|
14
25
|
};
|
|
15
26
|
export type RouteOptions<T extends RouteData = RouteData> = T & {
|
|
16
27
|
title?: string;
|
|
@@ -20,10 +31,11 @@ export type RouteOptions<T extends RouteData = RouteData> = T & {
|
|
|
20
31
|
} | {
|
|
21
32
|
redirect: string;
|
|
22
33
|
};
|
|
34
|
+
preload?: (data: RoutePreloadData<T>) => any;
|
|
23
35
|
component?: (props: any) => any;
|
|
24
36
|
routeDefinition?: (options: RouteOptions) => any;
|
|
37
|
+
createComponent?: (options: RouteOptions, props: any) => any;
|
|
25
38
|
filePath?: string;
|
|
26
|
-
createComponent?: (options: RouteOptions) => any;
|
|
27
39
|
};
|
|
28
40
|
export type InferRouteParams<T extends RouteData> = [undefined] extends [
|
|
29
41
|
T["params"]
|
|
@@ -31,9 +43,8 @@ export type InferRouteParams<T extends RouteData> = [undefined] extends [
|
|
|
31
43
|
export type RouteProps<T extends RouteData = RouteData> = {
|
|
32
44
|
setParams: [undefined] extends [T["params"]] ? never : (params: InferRouteParams<T>) => void;
|
|
33
45
|
params: InferRouteParams<T>;
|
|
34
|
-
api:
|
|
35
|
-
|
|
36
|
-
};
|
|
46
|
+
api: ResolveRouteApi<T>;
|
|
47
|
+
data: T["_data"];
|
|
37
48
|
};
|
|
38
49
|
export type Route<T extends RouteData = RouteData> = ((props: any) => any) & {
|
|
39
50
|
$options: RouteOptions<T>;
|
|
@@ -60,6 +71,9 @@ export declare class RouteBuilder<T extends RouteData = RouteData> {
|
|
|
60
71
|
redirect: string;
|
|
61
72
|
}): this;
|
|
62
73
|
path(value: string | ((params: RoutePathParams<keyof NonNullable<T["params"]>["props"]>) => string)): this;
|
|
74
|
+
preload<TData>(cb: (data: RoutePreloadData<T>) => TData): RouteBuilder<MergeFuncData<T, {
|
|
75
|
+
_data: TData;
|
|
76
|
+
}>>;
|
|
63
77
|
protected createRouteDefinition(): any;
|
|
64
78
|
create(component: (props: RouteProps<T>) => any): Route;
|
|
65
79
|
}
|
|
@@ -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;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,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,9 @@ export class RouteBuilder {
|
|
|
49
49
|
});
|
|
50
50
|
return this.clone({ path: value(params) });
|
|
51
51
|
}
|
|
52
|
+
preload(cb) {
|
|
53
|
+
return this.clone({ preload: cb });
|
|
54
|
+
}
|
|
52
55
|
createRouteDefinition() {
|
|
53
56
|
if (!this.options.routeDefinition)
|
|
54
57
|
throw new Error("routeDefinition is not defined");
|
|
@@ -59,7 +62,7 @@ export class RouteBuilder {
|
|
|
59
62
|
const result = function (props) {
|
|
60
63
|
if (!self.options.createComponent)
|
|
61
64
|
throw new Error("createComponent is not defined");
|
|
62
|
-
return self.options.createComponent(self.options);
|
|
65
|
+
return self.options.createComponent(self.options, props);
|
|
63
66
|
};
|
|
64
67
|
kindRoute(result);
|
|
65
68
|
Object.assign(result, {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { InferType, MinimalObjectType, ObjectType, ObjectTypeProps } from "@dreamkit/schema";
|
|
2
|
+
import type { Merge, throwError } from "@dreamkit/utils/ts.js";
|
|
3
|
+
export declare const kindSettings: (input: object, name?: string) => void, isSettings: (input: unknown) => input is SettingsConstructor<SettingsData<SettingsName, SettingsParams, SettingsDefaults<SettingsParams>>>;
|
|
4
|
+
export type SettingsName = string | undefined;
|
|
5
|
+
export type SettingsParams = MinimalObjectType | undefined;
|
|
6
|
+
export type InferSettingsParams<T extends {
|
|
7
|
+
params?: SettingsParams;
|
|
8
|
+
}> = InferType<T["params"] & {}>;
|
|
9
|
+
export type SettingsDefaults<TParams extends SettingsParams = SettingsParams> = ((input: InferSettingsParams<{
|
|
10
|
+
params: NoInfer<TParams>;
|
|
11
|
+
}>) => any) | undefined;
|
|
12
|
+
export type SettingsData<TName extends SettingsName = SettingsName, TParams extends SettingsParams = SettingsParams, TDefaults extends SettingsDefaults = SettingsDefaults> = {
|
|
13
|
+
name?: TName;
|
|
14
|
+
params?: TParams;
|
|
15
|
+
defaults?: TDefaults;
|
|
16
|
+
};
|
|
17
|
+
export type SettingsOptions<T extends SettingsData = SettingsData> = T & {
|
|
18
|
+
generate?: (input: Record<string, unknown>) => InferType<T["params"] & {}>;
|
|
19
|
+
optional?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type MergeSettingsData<D1 extends SettingsData, D2 extends Partial<SettingsData>> = Merge<SettingsData, D1, D2>;
|
|
22
|
+
export declare abstract class Settings<T extends SettingsData = SettingsData> {
|
|
23
|
+
static get options(): SettingsOptions;
|
|
24
|
+
static get params(): void;
|
|
25
|
+
readonly options: SettingsOptions<T>;
|
|
26
|
+
readonly params: [undefined] extends [T["defaults"]] ? InferSettingsParams<T> : ReturnType<T["defaults"] & {}>;
|
|
27
|
+
constructor(params: InferSettingsParams<T>);
|
|
28
|
+
update(params: InferSettingsParams<T>): void;
|
|
29
|
+
}
|
|
30
|
+
export interface SettingsConstructor<T extends SettingsData = SettingsData> {
|
|
31
|
+
options: SettingsOptions<T>;
|
|
32
|
+
params: T["params"];
|
|
33
|
+
new (params: InferSettingsParams<T>): Settings<T>;
|
|
34
|
+
}
|
|
35
|
+
export declare class SettingsBuilder<T extends SettingsData = {
|
|
36
|
+
name: undefined;
|
|
37
|
+
params: undefined;
|
|
38
|
+
}> {
|
|
39
|
+
readonly data: T;
|
|
40
|
+
readonly options: SettingsOptions<T>;
|
|
41
|
+
constructor(options?: SettingsOptions<T>);
|
|
42
|
+
protected clone(next: Partial<SettingsOptions>): this;
|
|
43
|
+
name<TName extends SettingsName>(value: TName): SettingsBuilder<MergeSettingsData<T, {
|
|
44
|
+
name: TName;
|
|
45
|
+
}>>;
|
|
46
|
+
optional(value?: boolean): this;
|
|
47
|
+
defaults<D>(value: (input: InferSettingsParams<T>) => D): SettingsBuilder<MergeSettingsData<T, {
|
|
48
|
+
defaults: () => D;
|
|
49
|
+
}>>;
|
|
50
|
+
generate(value: (input: {
|
|
51
|
+
[K in keyof InferSettingsParams<T>]?: any;
|
|
52
|
+
}) => Partial<InferSettingsParams<T>> | undefined): this;
|
|
53
|
+
params<TParams extends SettingsParams>(type: TParams): SettingsBuilder<MergeSettingsData<T, {
|
|
54
|
+
params: TParams;
|
|
55
|
+
}>>;
|
|
56
|
+
params<TProps extends ObjectTypeProps>(props: TProps): SettingsBuilder<MergeSettingsData<T, {
|
|
57
|
+
params: ObjectType<TProps>;
|
|
58
|
+
}>>;
|
|
59
|
+
create: [undefined] extends [T["name"]] ? throwError<"Name is required"> : [undefined] extends [T["params"]] ? throwError<"Params is required"> : () => SettingsConstructor<T>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=SettingsBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/SettingsBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { createKind, kindOf } from "@dreamkit/kind";
|
|
2
|
+
import { ObjectType, s, } from "@dreamkit/schema";
|
|
3
|
+
export const [kindSettings, isSettings] = createKind("@dreamkit/app/settings");
|
|
4
|
+
export class Settings {
|
|
5
|
+
static get options() {
|
|
6
|
+
throw new Error("Not implemented");
|
|
7
|
+
}
|
|
8
|
+
static get params() {
|
|
9
|
+
throw new Error("Not implemented");
|
|
10
|
+
}
|
|
11
|
+
static {
|
|
12
|
+
kindSettings(this);
|
|
13
|
+
}
|
|
14
|
+
options = this.constructor.options;
|
|
15
|
+
params;
|
|
16
|
+
constructor(params) {
|
|
17
|
+
this.update(params);
|
|
18
|
+
}
|
|
19
|
+
update(params) {
|
|
20
|
+
const options = this.constructor.options;
|
|
21
|
+
const errors = options.params.validate(params);
|
|
22
|
+
if (errors.length) {
|
|
23
|
+
const error = new Error(`Invalid '${options.name}' settings`, {
|
|
24
|
+
cause: errors,
|
|
25
|
+
});
|
|
26
|
+
console.error(error);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
this.params = options.defaults
|
|
30
|
+
? options.defaults(params)
|
|
31
|
+
: params;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class SettingsBuilder {
|
|
35
|
+
data;
|
|
36
|
+
options;
|
|
37
|
+
constructor(options = {}) {
|
|
38
|
+
this.options = options;
|
|
39
|
+
this.data = {
|
|
40
|
+
params: options.params,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
clone(next) {
|
|
44
|
+
const prev = this.options;
|
|
45
|
+
return new SettingsBuilder({
|
|
46
|
+
...prev,
|
|
47
|
+
...next,
|
|
48
|
+
params: "params" in next
|
|
49
|
+
? next.params === undefined || kindOf(next.params, ObjectType)
|
|
50
|
+
? next.params
|
|
51
|
+
: s.object(next.params)
|
|
52
|
+
: prev.params,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
name(value) {
|
|
56
|
+
return this.clone({ name: value });
|
|
57
|
+
}
|
|
58
|
+
optional(value = true) {
|
|
59
|
+
return this.clone({ optional: value });
|
|
60
|
+
}
|
|
61
|
+
defaults(value) {
|
|
62
|
+
return this.clone({ defaults: value });
|
|
63
|
+
}
|
|
64
|
+
generate(value) {
|
|
65
|
+
return this.clone({ generate: value });
|
|
66
|
+
}
|
|
67
|
+
params(params) {
|
|
68
|
+
return this.clone({ params });
|
|
69
|
+
}
|
|
70
|
+
create = function () {
|
|
71
|
+
if (!this.options.name)
|
|
72
|
+
throw new Error("Name is required");
|
|
73
|
+
if (!this.options.params)
|
|
74
|
+
throw new Error("Params is required");
|
|
75
|
+
const self = this;
|
|
76
|
+
class CustomSettings extends Settings {
|
|
77
|
+
static {
|
|
78
|
+
kindSettings(this, self.options.name);
|
|
79
|
+
}
|
|
80
|
+
static get options() {
|
|
81
|
+
return self.options;
|
|
82
|
+
}
|
|
83
|
+
static get params() {
|
|
84
|
+
return self.options.params;
|
|
85
|
+
}
|
|
86
|
+
constructor(params) {
|
|
87
|
+
super(params);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return CustomSettings;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { InferSettingsParams, SettingsConstructor, SettingsData } from "../builders/SettingsBuilder.js";
|
|
2
|
+
import { IocClass, IocContext } from "@dreamkit/ioc";
|
|
3
|
+
import { Constructor } from "@dreamkit/utils/ts.js";
|
|
4
|
+
export declare const kindSettingsHandler: (input: object, name?: string) => void, isSettingsHandler: (input: unknown) => input is SettingsHandlerConstructor;
|
|
5
|
+
export type SettingsHandlerConstructor = Constructor<SettingsHandler> & {
|
|
6
|
+
$ioc: any;
|
|
7
|
+
};
|
|
8
|
+
export type SettingsHandlerSaveResult = Record<string, {
|
|
9
|
+
path: string;
|
|
10
|
+
changed: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
declare const SettingsHandler_base: IocClass<{
|
|
13
|
+
IocContext: typeof IocContext;
|
|
14
|
+
}, import("@dreamkit/ioc").IocBaseClass<import("@dreamkit/ioc").IocParamsUserConfig>, never, import("@dreamkit/ioc").IocParams<{
|
|
15
|
+
IocContext: typeof IocContext;
|
|
16
|
+
}>>;
|
|
17
|
+
export declare abstract class SettingsHandler extends SettingsHandler_base {
|
|
18
|
+
autoSave: boolean;
|
|
19
|
+
protected data: Record<string, any>;
|
|
20
|
+
protected settings: Set<SettingsConstructor>;
|
|
21
|
+
protected pending: string[];
|
|
22
|
+
protected abstract onLoad(): Promise<Record<string, any>>;
|
|
23
|
+
protected abstract onSave(): Promise<SettingsHandlerSaveResult>;
|
|
24
|
+
load(): Promise<void>;
|
|
25
|
+
get<T extends SettingsData>(constructor: SettingsConstructor<T>): Promise<InferSettingsParams<T>>;
|
|
26
|
+
set<T extends SettingsData>(constructor: SettingsConstructor<T>, data: InferSettingsParams<T>): Promise<void>;
|
|
27
|
+
save(): Promise<SettingsHandlerSaveResult>;
|
|
28
|
+
protected getData(): Promise<{
|
|
29
|
+
prev: Record<string, any> | undefined;
|
|
30
|
+
next: Record<string, any> | undefined;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
export declare const SettingsHandlerClass: <P extends import("@dreamkit/ioc").IocParamsUserConfig = {}>(params: P) => IocClass<P & {}, SettingsHandler, never, import("@dreamkit/ioc").IocParams<P & {}>>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=SettingsHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/SettingsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAkB,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,mBAAmB,0CAAE,iBAAiB,yDACqB,CAAC;AAE1E,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG;IACtE,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAC5C,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CACnC,CAAC;;;;;;AAEF,8BAAsB,eAAgB,SAAQ,oBAAwB;IAIpE,QAAQ,UAAQ;IAChB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IACzC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAa;IACzD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,yBAAyB,CAAC;IACzD,IAAI;IAOJ,GAAG,CAAC,CAAC,SAAS,YAAY,EAC9B,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAG5B,GAAG,CAAC,CAAC,SAAS,YAAY,EAC9B,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,EACnC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmBV,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;cAMhC,OAAO,IAAI,OAAO,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;KACvC,CAAC;CAYH;AAED,eAAO,MAAM,oBAAoB,gKAAkC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { createIocClass, IocClass, IocContext } from "@dreamkit/ioc";
|
|
2
|
+
import { createKind } from "@dreamkit/kind";
|
|
3
|
+
export const [kindSettingsHandler, isSettingsHandler] = createKind("@dreamkit/app/SettingsHandler");
|
|
4
|
+
export class SettingsHandler extends IocClass({ IocContext }) {
|
|
5
|
+
static {
|
|
6
|
+
kindSettingsHandler(this);
|
|
7
|
+
}
|
|
8
|
+
autoSave = true;
|
|
9
|
+
data = {};
|
|
10
|
+
settings = new Set();
|
|
11
|
+
pending = [];
|
|
12
|
+
async load() {
|
|
13
|
+
this.data = await this.onLoad();
|
|
14
|
+
for (const settings of this.settings) {
|
|
15
|
+
const data = this.data[settings.options.name];
|
|
16
|
+
this.iocContext.resolve(settings, { optional: true })?.update(data);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async get(constructor) {
|
|
20
|
+
return this.data[constructor.options.name];
|
|
21
|
+
}
|
|
22
|
+
async set(constructor, data) {
|
|
23
|
+
const settingsInstance = this.iocContext.resolve(constructor, {
|
|
24
|
+
optional: true,
|
|
25
|
+
});
|
|
26
|
+
if (settingsInstance) {
|
|
27
|
+
settingsInstance.update(data);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.iocContext.register(constructor, {
|
|
31
|
+
value: new constructor(data),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (this.autoSave) {
|
|
35
|
+
await this.onSave();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const name = constructor.options.name;
|
|
39
|
+
this.data[name] = data;
|
|
40
|
+
this.pending.push(name);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async save() {
|
|
44
|
+
this.autoSave = true;
|
|
45
|
+
const result = await this.onSave();
|
|
46
|
+
this.pending.splice(0, this.pending.length);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
async getData() {
|
|
50
|
+
if (!this.pending.length)
|
|
51
|
+
return { prev: undefined, next: undefined };
|
|
52
|
+
const prev = await this.onLoad();
|
|
53
|
+
const patch = Object.fromEntries(Object.entries(this.data).filter(([name]) => this.pending.includes(name)));
|
|
54
|
+
const next = Object.fromEntries(Object.entries(prev).map(([name, value]) => [name, patch[name] ?? value]));
|
|
55
|
+
for (const name in patch)
|
|
56
|
+
if (!(name in next))
|
|
57
|
+
next[name] = patch[name];
|
|
58
|
+
return { prev, next };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export const SettingsHandlerClass = createIocClass(SettingsHandler);
|
package/lib/index.d.ts
CHANGED
|
@@ -2,10 +2,13 @@ export { RequestUrl } from "./RequestUrl.js";
|
|
|
2
2
|
export { isRoute, isApp } from "./utils/kind.js";
|
|
3
3
|
export { isApi } from "./builders/ApiBuilder.js";
|
|
4
4
|
export { App } from "./App.js";
|
|
5
|
-
export { RouteBuilder, type RouteOptions, type Route, type RouteData, type RouteProps, } from "./builders/RouteBuilder.js";
|
|
6
5
|
export { defineRoutePath, routePath } from "./routePath.js";
|
|
7
|
-
export { $route } from "./objects/$route.js";
|
|
8
6
|
export { $api } from "./objects/$api.js";
|
|
7
|
+
export { $route } from "./objects/$route.js";
|
|
8
|
+
export { RouteBuilder, type RouteOptions, type Route, type RouteData, type RouteProps, } from "./builders/RouteBuilder.js";
|
|
9
|
+
export { $settings } from "./objects/$settings.js";
|
|
10
|
+
export { Settings, SettingsBuilder, type SettingsConstructor, type SettingsData, isSettings, } from "./builders/SettingsBuilder.js";
|
|
9
11
|
export { Middleware, MiddlewareClass, isMiddleware, } from "./objects/middleware.js";
|
|
10
12
|
export { Service, ServiceClass, type ServiceStop, isService, } from "./objects/service.js";
|
|
13
|
+
export { SettingsHandler, SettingsHandlerClass, type SettingsHandlerSaveResult, } from "./handlers/SettingsHandler.js";
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -2,10 +2,14 @@ export { RequestUrl } from "./RequestUrl.js";
|
|
|
2
2
|
export { isRoute, isApp } from "./utils/kind.js";
|
|
3
3
|
export { isApi } from "./builders/ApiBuilder.js";
|
|
4
4
|
export { App } from "./App.js";
|
|
5
|
-
export { RouteBuilder, } from "./builders/RouteBuilder.js";
|
|
6
5
|
export { defineRoutePath, routePath } from "./routePath.js";
|
|
7
6
|
// objects
|
|
8
|
-
export { $route } from "./objects/$route.js";
|
|
9
7
|
export { $api } from "./objects/$api.js";
|
|
8
|
+
export { $route } from "./objects/$route.js";
|
|
9
|
+
export { RouteBuilder, } from "./builders/RouteBuilder.js";
|
|
10
|
+
export { $settings } from "./objects/$settings.js";
|
|
11
|
+
export { Settings, SettingsBuilder, isSettings, } from "./builders/SettingsBuilder.js";
|
|
10
12
|
export { Middleware, MiddlewareClass, isMiddleware, } from "./objects/middleware.js";
|
|
11
13
|
export { Service, ServiceClass, isService, } from "./objects/service.js";
|
|
14
|
+
// handlers
|
|
15
|
+
export { SettingsHandler, SettingsHandlerClass, } from "./handlers/SettingsHandler.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"$settings.d.ts","sourceRoot":"","sources":["../../src/objects/$settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,eAAO,MAAM,SAAS;;;EAAsC,CAAC"}
|
|
@@ -4,5 +4,5 @@ export type MiddlewareConstructor = Constructor<Middleware>;
|
|
|
4
4
|
export declare abstract class Middleware {
|
|
5
5
|
abstract onRequest(): any;
|
|
6
6
|
}
|
|
7
|
-
export declare const MiddlewareClass: <P extends import("@dreamkit/ioc").IocParamsUserConfig = {}>(params: P) => import("@dreamkit/ioc").IocClass<P, Middleware, never, import("@dreamkit/ioc").IocParams<P>>;
|
|
7
|
+
export declare const MiddlewareClass: <P extends import("@dreamkit/ioc").IocParamsUserConfig = {}>(params: P) => import("@dreamkit/ioc").IocClass<P & {}, Middleware, never, import("@dreamkit/ioc").IocParams<P & {}>>;
|
|
8
8
|
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/objects/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,cAAc,0CAAE,YAAY,oDAEzC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAC5D,8BAAsB,UAAU;IAI9B,QAAQ,CAAC,SAAS,IAAI,GAAG;CAC1B;AAED,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/objects/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,cAAc,0CAAE,YAAY,oDAEzC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAC5D,8BAAsB,UAAU;IAI9B,QAAQ,CAAC,SAAS,IAAI,GAAG;CAC1B;AAED,eAAO,MAAM,eAAe,mLAA6B,CAAC"}
|
package/lib/objects/service.d.ts
CHANGED
|
@@ -15,6 +15,6 @@ export declare abstract class Service {
|
|
|
15
15
|
abstract onStart(): ServiceStop;
|
|
16
16
|
onStop(): any;
|
|
17
17
|
}
|
|
18
|
-
export declare const ServiceClass: <P extends import("@dreamkit/ioc").IocParamsUserConfig = {}>(params: P) => import("@dreamkit/ioc").IocClass<P, Service, never, import("@dreamkit/ioc").IocParams<P>>;
|
|
18
|
+
export declare const ServiceClass: <P extends import("@dreamkit/ioc").IocParamsUserConfig = {}>(params: P) => import("@dreamkit/ioc").IocClass<P & {}, Service, never, import("@dreamkit/ioc").IocParams<P & {}>>;
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/objects/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,WAAW,0CAAE,SAAS,iDAEnC,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AACtD,8BAAsB,OAAO;IAI3B,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IACD,QAAQ,CAAC,OAAO,IAAI,WAAW;IAC/B,MAAM,IAAI,GAAG;CACd;AAED,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/objects/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,WAAW,0CAAE,SAAS,iDAEnC,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AACtD,8BAAsB,OAAO;IAI3B,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IACD,QAAQ,CAAC,OAAO,IAAI,WAAW;IAC/B,MAAM,IAAI,GAAG;CACd;AAED,eAAO,MAAM,YAAY,gLAA0B,CAAC"}
|
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>>;
|
|
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>>;
|
|
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,wMAE7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreamkit/app",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7-next.1",
|
|
4
4
|
"description": "Set of utils to create applications.",
|
|
5
5
|
"homepage": "https://dreamkit.dev",
|
|
6
6
|
"repository": {
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"debug": "^4.3.7",
|
|
30
|
-
"@dreamkit/func": "0.0.
|
|
31
|
-
"@dreamkit/ioc": "0.0.
|
|
30
|
+
"@dreamkit/func": "0.0.3-next.1",
|
|
31
|
+
"@dreamkit/ioc": "0.0.2-next.0",
|
|
32
32
|
"@dreamkit/kind": "0.0.2",
|
|
33
|
-
"@dreamkit/schema": "0.0.
|
|
34
|
-
"@dreamkit/utils": "0.0.
|
|
33
|
+
"@dreamkit/schema": "0.0.5-next.0",
|
|
34
|
+
"@dreamkit/utils": "0.0.5-next.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/debug": "^4.1.12",
|