@dreamkit/app 0.0.27 → 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 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";
@@ -37,7 +37,7 @@ export declare class App {
37
37
  action: "add" | "remove";
38
38
  }) => any>;
39
39
  };
40
- constructor();
40
+ constructor(input?: Record<string, any> | any[]);
41
41
  static instance(): App;
42
42
  static saveInstance(instance: App): void;
43
43
  static createGlobalInstance(): App;
@@ -52,7 +52,7 @@ export declare class App {
52
52
  }) => any): this;
53
53
  off(event: "add" | "remove" | "change", cb: any): this;
54
54
  getObjectId(value: unknown): string;
55
- remove(ids: string[]): Promise<void>;
55
+ remove(items: any[]): Promise<void>;
56
56
  removeAll(): Promise<void>;
57
57
  protected addService(service: ServiceConstructor): AppService;
58
58
  protected startService(item: AppService): Promise<void>;
@@ -61,6 +61,7 @@ export declare class App {
61
61
  protected resolveEntry(input: Record<string, any> | any[]): {
62
62
  [k: string]: any;
63
63
  };
64
+ private addSync;
64
65
  add(input: Record<string, any> | any[]): Promise<void>;
65
66
  createRequestContext(request: Request): RequestContext;
66
67
  private getSortedMiddlewares;
package/lib/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
package/lib/App.js CHANGED
@@ -38,11 +38,13 @@ export class App {
38
38
  remove: new Set(),
39
39
  change: new Set(),
40
40
  };
41
- constructor() {
41
+ constructor(input) {
42
42
  this.context = new AppContext()
43
43
  .register(App, { value: this })
44
44
  .register(EJSON, { value: new EJSON([]) });
45
45
  this.context.register(AppContext, { value: this.context });
46
+ if (input)
47
+ this.addSync(input);
46
48
  }
47
49
  static instance() {
48
50
  const value = globalThis[App.instanceKey];
@@ -73,8 +75,9 @@ export class App {
73
75
  }
74
76
  throw new Error("Object not found");
75
77
  }
76
- async remove(ids) {
77
- for (const id of ids) {
78
+ async remove(items) {
79
+ for (const item of items) {
80
+ const id = typeof item === "string" ? item : this.getObjectId(item);
78
81
  const value = this.objects.get(id);
79
82
  if (!value)
80
83
  throw new Error(`Object not found: ${id}`);
@@ -188,10 +191,7 @@ export class App {
188
191
  });
189
192
  return Object.fromEntries(entries);
190
193
  }
191
- async add(input) {
192
- let loadSettingsHandler = false;
193
- const services = [];
194
- const settings = [];
194
+ *addSync(input) {
195
195
  const objects = this.resolveEntry(input);
196
196
  for (const [id, value] of Object.entries(objects)) {
197
197
  const path = this.normalizeObjectPath(id);
@@ -201,7 +201,6 @@ export class App {
201
201
  }
202
202
  else if (isService(value)) {
203
203
  const item = this.addService(value);
204
- services.push(item);
205
204
  this.services.add(item);
206
205
  }
207
206
  else if (isMiddleware(value)) {
@@ -210,10 +209,8 @@ export class App {
210
209
  }
211
210
  else if (isSettings(value)) {
212
211
  this.settings.add(value);
213
- settings.push(value);
214
212
  }
215
213
  else if (isSettingsHandler(value)) {
216
- loadSettingsHandler = true;
217
214
  this.settingsHandler = value;
218
215
  this.context.register(SettingsHandler, {
219
216
  singleton: true,
@@ -236,27 +233,31 @@ export class App {
236
233
  else {
237
234
  this.unknownObjectIds.add(id);
238
235
  }
239
- /*
240
- // [review] require create a dependency for removing
241
-
242
- if (is(value, IocBaseClass)) {
243
- const params = normalizeIocParams(value.$ioc.params);
244
- for (const key in params) {
245
- const { value } = params[key].options;
246
- if (isSettings(value)) {
247
- this.settings.add(value);
248
- settings.push(value);
249
- }
250
- }
251
- }*/
252
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
+ }
253
254
  for (const cb of this.listeners.add)
254
255
  await cb({ id, value });
255
256
  for (const cb of this.listeners.change)
256
257
  await cb({ id, value, action: "add" });
257
258
  }
258
259
  if (this.started) {
259
- if (loadSettingsHandler)
260
+ if (settingsHandler !== this.settingsHandler)
260
261
  await this.context.resolve(SettingsHandler, { abstract: true }).load();
261
262
  for (const setting of settings)
262
263
  await this.registerSettings(setting);
@@ -0,0 +1,6 @@
1
+ export declare class AppError extends Error {
2
+ constructor(message: string, options?: {
3
+ cause?: unknown;
4
+ });
5
+ }
6
+ //# sourceMappingURL=AppError.d.ts.map
@@ -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"}
@@ -0,0 +1,7 @@
1
+ export class AppError extends Error {
2
+ constructor(message, options) {
3
+ super(message);
4
+ this.name = "AppError";
5
+ this.cause = options?.cause;
6
+ }
7
+ }
@@ -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, isSettings, } from "./builders/SettingsBuilder.js";
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";
@@ -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,EACjB,UAAU,GACX,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"}
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":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,eAAO,MAAM,eAAe;;;EAU1B,CAAC;AAEH,eAAO,MAAM,cAAc,qDAMzB,CAAC;AAEH,eAAO,MAAM,yBAAyB,+GAMpC,CAAC"}
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.27",
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.15",
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.11",
34
+ "@dreamkit/schema": "0.0.12",
35
35
  "@dreamkit/utils": "0.0.9"
36
36
  },
37
37
  "devDependencies": {