@dreamkit/app 0.0.26 → 0.0.28
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 +6 -3
- package/lib/App.d.ts.map +1 -1
- package/lib/App.js +41 -26
- package/lib/AppError.d.ts +6 -0
- package/lib/AppError.d.ts.map +1 -0
- package/lib/AppError.js +7 -0
- package/lib/builders/MiddlewareBuilder.d.ts +7 -1
- package/lib/builders/MiddlewareBuilder.d.ts.map +1 -1
- package/lib/builders/MiddlewareBuilder.js +7 -0
- package/lib/index.base.d.ts +2 -1
- package/lib/index.base.d.ts.map +1 -1
- package/lib/index.base.js +1 -0
- package/lib/presets/serializers.d.ts +5 -0
- package/lib/presets/serializers.d.ts.map +1 -1
- package/lib/presets/serializers.js +7 -1
- package/package.json +3 -3
package/lib/App.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MiddlewareConstructor } from "./builders/MiddlewareBuilder.js";
|
|
2
|
-
import { Route } from "./builders/RouteBuilder.js";
|
|
2
|
+
import { type Route } from "./builders/RouteBuilder.js";
|
|
3
3
|
import { type AppService, type ServiceConstructor } from "./builders/ServiceBuilder.js";
|
|
4
4
|
import { type SettingsConstructor } from "./builders/SettingsBuilder.js";
|
|
5
5
|
import { AppContext } from "./contexts/AppContext.js";
|
|
@@ -17,6 +17,7 @@ export declare class App {
|
|
|
17
17
|
readonly routes: Set<Route>;
|
|
18
18
|
readonly services: Set<AppService>;
|
|
19
19
|
readonly middlewares: Set<MiddlewareConstructor>;
|
|
20
|
+
protected sortedMiddlewares: MiddlewareConstructor[] | undefined;
|
|
20
21
|
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>>>>;
|
|
21
22
|
readonly api: Map<string, Func>;
|
|
22
23
|
settingsHandler: SettingsHandlerConstructor | undefined;
|
|
@@ -36,7 +37,7 @@ export declare class App {
|
|
|
36
37
|
action: "add" | "remove";
|
|
37
38
|
}) => any>;
|
|
38
39
|
};
|
|
39
|
-
constructor();
|
|
40
|
+
constructor(input?: Record<string, any> | any[]);
|
|
40
41
|
static instance(): App;
|
|
41
42
|
static saveInstance(instance: App): void;
|
|
42
43
|
static createGlobalInstance(): App;
|
|
@@ -51,7 +52,7 @@ export declare class App {
|
|
|
51
52
|
}) => any): this;
|
|
52
53
|
off(event: "add" | "remove" | "change", cb: any): this;
|
|
53
54
|
getObjectId(value: unknown): string;
|
|
54
|
-
remove(
|
|
55
|
+
remove(items: any[]): Promise<void>;
|
|
55
56
|
removeAll(): Promise<void>;
|
|
56
57
|
protected addService(service: ServiceConstructor): AppService;
|
|
57
58
|
protected startService(item: AppService): Promise<void>;
|
|
@@ -60,8 +61,10 @@ export declare class App {
|
|
|
60
61
|
protected resolveEntry(input: Record<string, any> | any[]): {
|
|
61
62
|
[k: string]: any;
|
|
62
63
|
};
|
|
64
|
+
private addSync;
|
|
63
65
|
add(input: Record<string, any> | any[]): Promise<void>;
|
|
64
66
|
createRequestContext(request: Request): RequestContext;
|
|
67
|
+
private getSortedMiddlewares;
|
|
65
68
|
request(request: Request, context?: RequestContext): Promise<any>;
|
|
66
69
|
protected initSettingsValue(constructor: SettingsConstructor): Promise<any>;
|
|
67
70
|
protected registerAllSettings(): Promise<void>;
|
package/lib/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,eAAe,EACf,KAAK,0BAA0B,EAChC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAI3C,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,WAAW,sBAA6B;IACjD,QAAQ,CAAC,gBAAgB,cAAqB;IAC9C,QAAQ,CAAC,MAAM,aAAoB;IACnC,QAAQ,CAAC,QAAQ,kBAAyB;IAC1C,QAAQ,CAAC,WAAW,6BAAoC;IACxD,SAAS,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,QAAQ,iTAAkC;IACnD,QAAQ,CAAC,GAAG,oBAA2B;IAChC,eAAe,EAAE,0BAA0B,GAAG,SAAS,CAAC;IACxD,cAAc,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC7D,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;gBACU,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE;IAO/C,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,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnC,SAAS;IAIf,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;cAW7C,YAAY,CAAC,IAAI,EAAE,UAAU;cAU7B,WAAW,CAAC,IAAI,EAAE,UAAU;IAO5C,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAwB1C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE;;;IA0BzD,OAAO,CAAE,OAAO;IAyCV,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5D,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;IA6BtD,OAAO,CAAC,oBAAoB;IAYtB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;cAgBvD,iBAAiB,CAAC,WAAW,EAAE,mBAAmB;cAkBlD,mBAAmB;cAanB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB;IAUjE,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB;IAKzD,SAAS,CAAC,sBAAsB,IAAI,eAAe,GAAG,SAAS;cAM/C,OAAO;;;IAKjB,KAAK;IAgBL,IAAI;IAkBV,KAAK;CAcN"}
|
package/lib/App.js
CHANGED
|
@@ -28,6 +28,7 @@ export class App {
|
|
|
28
28
|
routes = new Set();
|
|
29
29
|
services = new Set();
|
|
30
30
|
middlewares = new Set();
|
|
31
|
+
sortedMiddlewares;
|
|
31
32
|
settings = new Set();
|
|
32
33
|
api = new Map();
|
|
33
34
|
settingsHandler;
|
|
@@ -37,11 +38,13 @@ export class App {
|
|
|
37
38
|
remove: new Set(),
|
|
38
39
|
change: new Set(),
|
|
39
40
|
};
|
|
40
|
-
constructor() {
|
|
41
|
+
constructor(input) {
|
|
41
42
|
this.context = new AppContext()
|
|
42
43
|
.register(App, { value: this })
|
|
43
44
|
.register(EJSON, { value: new EJSON([]) });
|
|
44
45
|
this.context.register(AppContext, { value: this.context });
|
|
46
|
+
if (input)
|
|
47
|
+
this.addSync(input);
|
|
45
48
|
}
|
|
46
49
|
static instance() {
|
|
47
50
|
const value = globalThis[App.instanceKey];
|
|
@@ -72,8 +75,9 @@ export class App {
|
|
|
72
75
|
}
|
|
73
76
|
throw new Error("Object not found");
|
|
74
77
|
}
|
|
75
|
-
async remove(
|
|
76
|
-
for (const
|
|
78
|
+
async remove(items) {
|
|
79
|
+
for (const item of items) {
|
|
80
|
+
const id = typeof item === "string" ? item : this.getObjectId(item);
|
|
77
81
|
const value = this.objects.get(id);
|
|
78
82
|
if (!value)
|
|
79
83
|
throw new Error(`Object not found: ${id}`);
|
|
@@ -90,6 +94,7 @@ export class App {
|
|
|
90
94
|
}
|
|
91
95
|
else if (isMiddleware(value)) {
|
|
92
96
|
this.middlewares.delete(value);
|
|
97
|
+
this.sortedMiddlewares = undefined;
|
|
93
98
|
}
|
|
94
99
|
else if (isSettings(value)) {
|
|
95
100
|
this.removeSettings(value);
|
|
@@ -186,10 +191,7 @@ export class App {
|
|
|
186
191
|
});
|
|
187
192
|
return Object.fromEntries(entries);
|
|
188
193
|
}
|
|
189
|
-
|
|
190
|
-
let loadSettingsHandler = false;
|
|
191
|
-
const services = [];
|
|
192
|
-
const settings = [];
|
|
194
|
+
*addSync(input) {
|
|
193
195
|
const objects = this.resolveEntry(input);
|
|
194
196
|
for (const [id, value] of Object.entries(objects)) {
|
|
195
197
|
const path = this.normalizeObjectPath(id);
|
|
@@ -199,18 +201,16 @@ export class App {
|
|
|
199
201
|
}
|
|
200
202
|
else if (isService(value)) {
|
|
201
203
|
const item = this.addService(value);
|
|
202
|
-
services.push(item);
|
|
203
204
|
this.services.add(item);
|
|
204
205
|
}
|
|
205
206
|
else if (isMiddleware(value)) {
|
|
206
207
|
this.middlewares.add(value);
|
|
208
|
+
this.sortedMiddlewares = undefined;
|
|
207
209
|
}
|
|
208
210
|
else if (isSettings(value)) {
|
|
209
211
|
this.settings.add(value);
|
|
210
|
-
settings.push(value);
|
|
211
212
|
}
|
|
212
213
|
else if (isSettingsHandler(value)) {
|
|
213
|
-
loadSettingsHandler = true;
|
|
214
214
|
this.settingsHandler = value;
|
|
215
215
|
this.context.register(SettingsHandler, {
|
|
216
216
|
singleton: true,
|
|
@@ -233,27 +233,31 @@ export class App {
|
|
|
233
233
|
else {
|
|
234
234
|
this.unknownObjectIds.add(id);
|
|
235
235
|
}
|
|
236
|
-
/*
|
|
237
|
-
// [review] require create a dependency for removing
|
|
238
|
-
|
|
239
|
-
if (is(value, IocBaseClass)) {
|
|
240
|
-
const params = normalizeIocParams(value.$ioc.params);
|
|
241
|
-
for (const key in params) {
|
|
242
|
-
const { value } = params[key].options;
|
|
243
|
-
if (isSettings(value)) {
|
|
244
|
-
this.settings.add(value);
|
|
245
|
-
settings.push(value);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}*/
|
|
249
236
|
this.objects.set(id, value);
|
|
237
|
+
yield { id, value };
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
async add(input) {
|
|
241
|
+
const settingsHandler = this.settingsHandler;
|
|
242
|
+
const services = [];
|
|
243
|
+
const settings = [];
|
|
244
|
+
for (const { id, value } of this.addSync(input)) {
|
|
245
|
+
if (this.started) {
|
|
246
|
+
if (isService(value)) {
|
|
247
|
+
const lastService = [...this.services][this.services.size - 1];
|
|
248
|
+
services.push(lastService);
|
|
249
|
+
}
|
|
250
|
+
else if (isSettings(value)) {
|
|
251
|
+
settings.push(value);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
250
254
|
for (const cb of this.listeners.add)
|
|
251
255
|
await cb({ id, value });
|
|
252
256
|
for (const cb of this.listeners.change)
|
|
253
257
|
await cb({ id, value, action: "add" });
|
|
254
258
|
}
|
|
255
259
|
if (this.started) {
|
|
256
|
-
if (
|
|
260
|
+
if (settingsHandler !== this.settingsHandler)
|
|
257
261
|
await this.context.resolve(SettingsHandler, { abstract: true }).load();
|
|
258
262
|
for (const setting of settings)
|
|
259
263
|
await this.registerSettings(setting);
|
|
@@ -290,11 +294,21 @@ export class App {
|
|
|
290
294
|
});
|
|
291
295
|
return requestContext;
|
|
292
296
|
}
|
|
297
|
+
getSortedMiddlewares() {
|
|
298
|
+
if (this.sortedMiddlewares)
|
|
299
|
+
return this.sortedMiddlewares;
|
|
300
|
+
this.sortedMiddlewares = sortByDeps([...this.middlewares].map((value) => ({
|
|
301
|
+
value,
|
|
302
|
+
deps: value.$options.deps,
|
|
303
|
+
priority: value.$options.priority,
|
|
304
|
+
}))).map((item) => item.value);
|
|
305
|
+
return this.sortedMiddlewares;
|
|
306
|
+
}
|
|
293
307
|
async request(request, context) {
|
|
294
308
|
if (!context)
|
|
295
309
|
context = this.createRequestContext(request);
|
|
296
310
|
log("request", context.resolve(RequestUrl).pathname);
|
|
297
|
-
for (const middleware of this.
|
|
311
|
+
for (const middleware of this.getSortedMiddlewares()) {
|
|
298
312
|
const $md = context.resolve(middleware);
|
|
299
313
|
const response = await $md.onRequest();
|
|
300
314
|
if (response && response instanceof Response) {
|
|
@@ -302,8 +316,8 @@ export class App {
|
|
|
302
316
|
for (const [name, value] of headers.entries()) {
|
|
303
317
|
response.headers.set(name, value);
|
|
304
318
|
}
|
|
319
|
+
return response;
|
|
305
320
|
}
|
|
306
|
-
return response;
|
|
307
321
|
}
|
|
308
322
|
}
|
|
309
323
|
async initSettingsValue(constructor) {
|
|
@@ -406,6 +420,7 @@ export class App {
|
|
|
406
420
|
this.routes.clear();
|
|
407
421
|
this.services.clear();
|
|
408
422
|
this.middlewares.clear();
|
|
423
|
+
this.sortedMiddlewares = undefined;
|
|
409
424
|
this.settings.clear();
|
|
410
425
|
this.api.clear();
|
|
411
426
|
this.context.resolve(EJSON).clear();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppError.d.ts","sourceRoot":"","sources":["../src/AppError.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAK3D"}
|
package/lib/AppError.js
ADDED
|
@@ -4,6 +4,8 @@ export declare const kindMiddleware: (input: object, name?: string) => void, isM
|
|
|
4
4
|
export type MiddlewareSelf = IocParamsUserConfig | undefined;
|
|
5
5
|
export type MiddlewareData<TSelf extends MiddlewareSelf = MiddlewareSelf> = {
|
|
6
6
|
self?: TSelf;
|
|
7
|
+
deps?: MiddlewareConstructor[];
|
|
8
|
+
priority?: number;
|
|
7
9
|
};
|
|
8
10
|
export type MiddlewareOptions<T extends MiddlewareData = MiddlewareData> = T & {
|
|
9
11
|
static?: Record<string, any>;
|
|
@@ -12,7 +14,9 @@ export type MergeMiddlewareData<D1 extends MiddlewareData, D2 extends Partial<Mi
|
|
|
12
14
|
export declare abstract class Middleware {
|
|
13
15
|
abstract onRequest(): any;
|
|
14
16
|
}
|
|
15
|
-
export type MiddlewareConstructor = Constructor<Middleware
|
|
17
|
+
export type MiddlewareConstructor = Constructor<Middleware> & {
|
|
18
|
+
$options: MiddlewareOptions;
|
|
19
|
+
};
|
|
16
20
|
export declare class MiddlewareBuilder<T extends MiddlewareData = {}> {
|
|
17
21
|
readonly data: T;
|
|
18
22
|
readonly options: MiddlewareOptions<T>;
|
|
@@ -21,6 +25,8 @@ export declare class MiddlewareBuilder<T extends MiddlewareData = {}> {
|
|
|
21
25
|
self<TSelf extends MiddlewareSelf>(value: TSelf): MiddlewareBuilder<MergeMiddlewareData<T, {
|
|
22
26
|
self: TSelf;
|
|
23
27
|
}>>;
|
|
28
|
+
deps(deps: MiddlewareConstructor[]): this;
|
|
29
|
+
priority(priority: number): this;
|
|
24
30
|
create(): IocClass<T["self"] & {}, Middleware>;
|
|
25
31
|
}
|
|
26
32
|
//# sourceMappingURL=MiddlewareBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/MiddlewareBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEhE,eAAO,MAAO,cAAc,0CAAE,YAAY,oDAEzC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc,IAAI;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"MiddlewareBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/MiddlewareBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEhE,eAAO,MAAO,cAAc,0CAAE,YAAY,oDAEzC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc,IAAI;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,CAAC,GAAG;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,EAAE,SAAS,cAAc,EACzB,EAAE,SAAS,OAAO,CAAC,cAAc,CAAC,IAChC,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAElC,8BAAsB,UAAU;IAI9B,QAAQ,CAAC,SAAS,IAAI,GAAG;CAC1B;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG;IAC5D,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAIF,qBAAa,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,EAAE;IAC1D,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAa;IASrD,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAOvD,IAAI,CAAC,KAAK,SAAS,cAAc,EAC/B,KAAK,EAAE,KAAK,GACX,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAG7D,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAGzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAGhC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC;CAM/C"}
|
|
@@ -29,8 +29,15 @@ export class MiddlewareBuilder {
|
|
|
29
29
|
self(value) {
|
|
30
30
|
return this.clone({ self: value });
|
|
31
31
|
}
|
|
32
|
+
deps(deps) {
|
|
33
|
+
return this.clone({ deps });
|
|
34
|
+
}
|
|
35
|
+
priority(priority) {
|
|
36
|
+
return this.clone({ priority });
|
|
37
|
+
}
|
|
32
38
|
create() {
|
|
33
39
|
const Class = MiddlewareClass(this.options.self || {});
|
|
40
|
+
Object.assign(Class, { $options: this.options });
|
|
34
41
|
if (this.options.static)
|
|
35
42
|
Object.assign(Class, this.options.static);
|
|
36
43
|
return Class;
|
package/lib/index.base.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { ResponseHeaders } from "./ResponseHeaders.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 { AppError } from "./AppError.js";
|
|
5
6
|
export { defineRoutePath, type RoutePathFunc } from "./routePath.js";
|
|
6
7
|
export { EJSON, type EJSONEncodedObject } from "./EJSON.js";
|
|
7
8
|
export { AppContext } from "./contexts/AppContext.js";
|
|
@@ -15,7 +16,7 @@ export { $session } from "./objects/$session.js";
|
|
|
15
16
|
export { $schema } from "./objects/$schema.js";
|
|
16
17
|
export { RouteBuilder, type RouteOptions, type Route, type RouteData, type RouteProps, } from "./builders/RouteBuilder.js";
|
|
17
18
|
export { $settings } from "./objects/$settings.js";
|
|
18
|
-
export { Settings, SettingsBuilder, type SettingsConstructor, type SettingsData,
|
|
19
|
+
export { Settings, SettingsBuilder, isSettings, type SettingsConstructor, type SettingsData, } from "./builders/SettingsBuilder.js";
|
|
19
20
|
export { Middleware, isMiddleware, type MiddlewareConstructor, type MiddlewareOptions, type MiddlewareData, } from "./builders/MiddlewareBuilder.js";
|
|
20
21
|
export { Serializer, type SerializerData, isSerializer, } from "./builders/SerializerBuilder.js";
|
|
21
22
|
export { Service, type ServiceConstructor, type ServiceOptions, type ServiceData, isService, } from "./builders/ServiceBuilder.js";
|
package/lib/index.base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.base.d.ts","sourceRoot":"","sources":["../src/index.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,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,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,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,
|
|
1
|
+
{"version":3,"file":"index.base.d.ts","sourceRoot":"","sources":["../src/index.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,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,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,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,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,KAAK,yBAAyB,GAC/B,MAAM,8BAA8B,CAAC"}
|
package/lib/index.base.js
CHANGED
|
@@ -2,6 +2,7 @@ export { ResponseHeaders } from "./ResponseHeaders.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 { AppError } from "./AppError.js";
|
|
5
6
|
export { defineRoutePath } from "./routePath.js";
|
|
6
7
|
export { EJSON } from "./EJSON.js";
|
|
7
8
|
// contexts
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AppError } from "../AppError.js";
|
|
1
2
|
import { TypeAssertError } from "@dreamkit/schema";
|
|
2
3
|
export declare const errorSerializer: import("../index.base.js").Serializer<Error, {
|
|
3
4
|
name: string;
|
|
@@ -5,4 +6,8 @@ export declare const errorSerializer: import("../index.base.js").Serializer<Erro
|
|
|
5
6
|
}>;
|
|
6
7
|
export declare const dateSerializer: import("../index.base.js").Serializer<Date, string>;
|
|
7
8
|
export declare const typeAssertErrorSerializer: import("../index.base.js").Serializer<TypeAssertError, import("@dreamkit/schema").TypeAssertErrorData<any>[]>;
|
|
9
|
+
export declare const appErrorSerializer: import("../index.base.js").Serializer<AppError, {
|
|
10
|
+
message: string;
|
|
11
|
+
cause: unknown;
|
|
12
|
+
}>;
|
|
8
13
|
//# sourceMappingURL=serializers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../src/presets/serializers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../src/presets/serializers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,eAAO,MAAM,eAAe;;;EAU1B,CAAC;AAEH,eAAO,MAAM,cAAc,qDAMzB,CAAC;AAEH,eAAO,MAAM,yBAAyB,+GAKpC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;EAK7B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AppError } from "../AppError.js";
|
|
1
2
|
import { $serializer } from "../objects/$serializer.js";
|
|
2
3
|
import { TypeAssertError } from "@dreamkit/schema";
|
|
3
4
|
export const errorSerializer = $serializer.create({
|
|
@@ -20,8 +21,13 @@ export const dateSerializer = $serializer.create({
|
|
|
20
21
|
});
|
|
21
22
|
export const typeAssertErrorSerializer = $serializer.create({
|
|
22
23
|
key: "TypeAssertError",
|
|
23
|
-
priority: -1,
|
|
24
24
|
is: (input) => input instanceof TypeAssertError,
|
|
25
25
|
to: (input) => input.errors,
|
|
26
26
|
from: (input) => new TypeAssertError(input),
|
|
27
27
|
});
|
|
28
|
+
export const appErrorSerializer = $serializer.create({
|
|
29
|
+
key: "AppError",
|
|
30
|
+
is: (input) => input instanceof AppError,
|
|
31
|
+
to: (input) => ({ message: input.message, cause: input.cause }),
|
|
32
|
+
from: (input) => new AppError(input.message, { cause: input.cause }),
|
|
33
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreamkit/app",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.28",
|
|
4
4
|
"description": "Set of utils to create applications.",
|
|
5
5
|
"homepage": "https://dreamkit.dev",
|
|
6
6
|
"repository": {
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"debug": "^4.4.3",
|
|
31
|
-
"@dreamkit/func": "0.0.
|
|
31
|
+
"@dreamkit/func": "0.0.16",
|
|
32
32
|
"@dreamkit/ioc": "0.3.2",
|
|
33
33
|
"@dreamkit/kind": "0.0.4",
|
|
34
|
-
"@dreamkit/schema": "0.0.
|
|
34
|
+
"@dreamkit/schema": "0.0.12",
|
|
35
35
|
"@dreamkit/utils": "0.0.9"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|