@dreamkit/app 0.0.7-next.0 → 0.0.7-next.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.
package/lib/App.d.ts CHANGED
@@ -1,15 +1,20 @@
1
1
  import { Route } from "./builders/RouteBuilder.js";
2
+ import { SettingsConstructor } from "./builders/SettingsBuilder.js";
3
+ import { AppContext } from "./contexts/AppContext.js";
4
+ import { RequestContext } from "./contexts/RequestContext.js";
5
+ import { SettingsHandler, SettingsHandlerConstructor } from "./handlers/SettingsHandler.js";
2
6
  import { MiddlewareConstructor } from "./objects/middleware.js";
3
7
  import { AppService, ServiceConstructor } from "./objects/service.js";
4
- import { IocContext } from "@dreamkit/ioc";
5
8
  export declare class App {
6
9
  static instanceKey: string;
7
10
  readonly started = false;
8
- readonly context: IocContext;
11
+ readonly context: AppContext;
9
12
  readonly objects: Map<string, any>;
10
13
  readonly routes: Set<Route>;
11
14
  readonly services: Set<AppService>;
12
15
  readonly middlewares: Set<MiddlewareConstructor>;
16
+ 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>>>>;
17
+ settingsHandler: SettingsHandlerConstructor | undefined;
13
18
  protected listeners: {
14
19
  add: Set<(data: {
15
20
  id: string;
@@ -28,6 +33,7 @@ export declare class App {
28
33
  constructor();
29
34
  static instance(): App;
30
35
  static saveInstance(instance: App): void;
36
+ static createGlobalInstance(): App;
31
37
  on(event: "add" | "remove", cb: (data: {
32
38
  id: string;
33
39
  value: unknown;
@@ -43,9 +49,16 @@ export declare class App {
43
49
  protected addService(service: ServiceConstructor): AppService;
44
50
  protected startService(item: AppService): Promise<void>;
45
51
  protected stopService(item: AppService): Promise<void>;
46
- add(objects: Record<string, any>): Promise<void>;
47
- createRequestContext(request: Request): IocContext;
52
+ add(input: Record<string, any> | any[]): Promise<void>;
53
+ createRequestContext(request: Request): RequestContext;
48
54
  request(request: Request): Promise<Response | undefined>;
55
+ protected initSettingsValue(constructor: SettingsConstructor): Promise<{
56
+ [x: string]: any;
57
+ } | undefined>;
58
+ protected registerAllSettings(): Promise<import("./handlers/SettingsHandler.js").SettingsHandlerSaveResult | undefined>;
59
+ protected registerSettings(constructor: SettingsConstructor): Promise<void>;
60
+ protected removeSettings(constructor: SettingsConstructor): void;
61
+ protected seettingsHandler(): SettingsHandler | undefined;
49
62
  start(): Promise<void>;
50
63
  stop(): Promise<void>;
51
64
  }
package/lib/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAgB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACL,UAAU,EAEV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAW,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpD,qBAAa,GAAG;IACd,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,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,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;IAmB1B,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;cAU7C,YAAY,CAAC,IAAI,EAAE,UAAU;cAU7B,WAAW,CAAC,IAAI,EAAE,UAAU;IAQtC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAsBtC,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAS/B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASxD,KAAK;IAKL,IAAI;CAiBX"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
package/lib/App.js CHANGED
@@ -1,10 +1,20 @@
1
1
  import { RequestUrl } from "./RequestUrl.js";
2
+ import { isApi } from "./builders/ApiBuilder.js";
3
+ import { isSettings } from "./builders/SettingsBuilder.js";
4
+ import { AppContext } from "./contexts/AppContext.js";
5
+ import { RequestContext } from "./contexts/RequestContext.js";
6
+ import { isSettingsHandler, SettingsHandler, } from "./handlers/SettingsHandler.js";
2
7
  import { isMiddleware } from "./objects/middleware.js";
3
8
  import { isService, } from "./objects/service.js";
4
- import { isRoute } from "./utils/kind.js";
9
+ import { isRoute, kindApp } from "./utils/kind.js";
5
10
  import { log } from "./utils/log.js";
6
- import { context } from "@dreamkit/ioc";
11
+ import { IocBaseClass, normalizeIocParams, } from "@dreamkit/ioc";
12
+ import { getKinds, is } from "@dreamkit/kind";
13
+ import { merge } from "@dreamkit/utils/object.js";
7
14
  export class App {
15
+ static {
16
+ kindApp(this);
17
+ }
8
18
  static instanceKey = "dk:app";
9
19
  started = false;
10
20
  context;
@@ -12,15 +22,18 @@ export class App {
12
22
  routes = new Set();
13
23
  services = new Set();
14
24
  middlewares = new Set();
25
+ settings = new Set();
26
+ settingsHandler;
15
27
  listeners = {
16
28
  add: new Set(),
17
29
  remove: new Set(),
18
30
  change: new Set(),
19
31
  };
20
32
  constructor() {
21
- this.context = context.fork().register(App, {
33
+ this.context = new AppContext().register(App, {
22
34
  value: this,
23
35
  });
36
+ this.context.register(AppContext, { value: this.context });
24
37
  }
25
38
  static instance() {
26
39
  const value = globalThis[App.instanceKey];
@@ -31,6 +44,11 @@ export class App {
31
44
  static saveInstance(instance) {
32
45
  globalThis[App.instanceKey] = instance;
33
46
  }
47
+ static createGlobalInstance() {
48
+ const app = new App();
49
+ this.saveInstance(app);
50
+ return app;
51
+ }
34
52
  on(event, cb) {
35
53
  this.listeners[event].add(cb);
36
54
  return this;
@@ -63,6 +81,13 @@ export class App {
63
81
  else if (isMiddleware(value)) {
64
82
  this.middlewares.delete(value);
65
83
  }
84
+ else if (isSettings(value)) {
85
+ this.removeSettings(value);
86
+ }
87
+ else if (isSettingsHandler(value)) {
88
+ this.context.unregister(SettingsHandler);
89
+ this.settingsHandler = undefined;
90
+ }
66
91
  for (const cb of this.listeners.remove)
67
92
  await cb({ id, value });
68
93
  for (const cb of this.listeners.change)
@@ -76,6 +101,14 @@ export class App {
76
101
  service,
77
102
  started: false,
78
103
  };
104
+ if (is(service, IocBaseClass)) {
105
+ const params = normalizeIocParams(service.$ioc.params);
106
+ for (const key in params) {
107
+ const { value } = params[key].options;
108
+ if (isSettings(value))
109
+ this.settings.add(value);
110
+ }
111
+ }
79
112
  this.services.add(item);
80
113
  return item;
81
114
  }
@@ -96,8 +129,16 @@ export class App {
96
129
  item.started = false;
97
130
  log("service stopped", { name });
98
131
  }
99
- async add(objects) {
132
+ async add(input) {
133
+ let loadSettingsHandler = false;
100
134
  const services = [];
135
+ const settings = [];
136
+ const objects = Array.isArray(input)
137
+ ? input.reduce((result, value, index) => {
138
+ result[index] = value;
139
+ return result;
140
+ }, {})
141
+ : input;
101
142
  for (const [id, value] of Object.entries(objects)) {
102
143
  if (isRoute(value)) {
103
144
  this.routes.add(value);
@@ -110,6 +151,29 @@ export class App {
110
151
  else if (isMiddleware(value)) {
111
152
  this.middlewares.add(value);
112
153
  }
154
+ else if (isSettings(value)) {
155
+ this.settings.add(value);
156
+ settings.push(value);
157
+ }
158
+ else if (isSettingsHandler(value)) {
159
+ loadSettingsHandler = true;
160
+ this.settingsHandler = value;
161
+ this.context.register(SettingsHandler, {
162
+ singleton: true,
163
+ useFactory: (context) => {
164
+ const handler = context.resolve(value);
165
+ handler["settings"] = this.settings;
166
+ return handler;
167
+ },
168
+ });
169
+ }
170
+ else if (isApi(value)) {
171
+ // Not implemented (using solid start actions)
172
+ continue;
173
+ }
174
+ else {
175
+ console.warn("Unknown object", { id, value, kinds: getKinds(value) });
176
+ }
113
177
  this.objects.set(id, value);
114
178
  for (const cb of this.listeners.add)
115
179
  await cb({ id, value });
@@ -117,17 +181,25 @@ export class App {
117
181
  await cb({ id, value, action: "add" });
118
182
  }
119
183
  if (this.started) {
184
+ if (loadSettingsHandler)
185
+ await this.context.resolve(SettingsHandler).load();
186
+ for (const setting of settings)
187
+ await this.registerSettings(setting);
120
188
  for (const service of services)
121
189
  await this.startService(service);
122
190
  }
123
191
  }
124
192
  createRequestContext(request) {
125
- const url = new RequestUrl(request.url, "http://localhost");
126
- return this.context
127
- .fork()
193
+ const context = new RequestContext({
194
+ parentContainer: this.context,
195
+ });
196
+ return context
197
+ .register(RequestContext, { value: context })
128
198
  .register(Request, { value: request })
129
199
  .register(Headers, { value: request.headers })
130
- .register(RequestUrl, { value: url });
200
+ .register(RequestUrl, {
201
+ value: new RequestUrl(request.url, "http://localhost"),
202
+ });
131
203
  }
132
204
  async request(request) {
133
205
  const context = this.createRequestContext(request);
@@ -139,9 +211,58 @@ export class App {
139
211
  return response;
140
212
  }
141
213
  }
214
+ async initSettingsValue(constructor) {
215
+ const handler = this.context.resolve(SettingsHandler, {
216
+ optional: true,
217
+ });
218
+ if (!handler)
219
+ return;
220
+ const options = constructor.options;
221
+ let value = await handler.get(constructor);
222
+ if (options.optional && !options.generate && !value)
223
+ return;
224
+ const generated = options.generate?.(value || {}) || {};
225
+ if (Object.keys(generated).length) {
226
+ value = merge({ ...value }, generated);
227
+ await handler.set(constructor, value);
228
+ }
229
+ return value;
230
+ }
231
+ async registerAllSettings() {
232
+ const settingsHandler = this.seettingsHandler();
233
+ if (settingsHandler) {
234
+ settingsHandler.autoSave = false;
235
+ await settingsHandler.load();
236
+ }
237
+ try {
238
+ for (const st of this.settings)
239
+ await this.registerSettings(st);
240
+ }
241
+ finally {
242
+ return await settingsHandler?.save();
243
+ }
244
+ }
245
+ async registerSettings(constructor) {
246
+ const options = constructor.options;
247
+ const value = await this.initSettingsValue(constructor);
248
+ if (options.optional && !value)
249
+ return;
250
+ log("registering settings", { name: options.name });
251
+ this.context.register(constructor, {
252
+ value: new constructor(value),
253
+ });
254
+ }
255
+ removeSettings(constructor) {
256
+ this.settings.delete(constructor);
257
+ this.context.unregister(constructor);
258
+ }
259
+ seettingsHandler() {
260
+ return this.context.resolve(SettingsHandler, { optional: true });
261
+ }
142
262
  async start() {
143
263
  log("starting app");
144
264
  this.started = true;
265
+ await this.registerAllSettings();
145
266
  for (const item of this.services)
146
267
  await this.startService(item);
147
268
  }
@@ -158,6 +279,8 @@ export class App {
158
279
  errors.push(error);
159
280
  }
160
281
  }
282
+ for (const settings of this.settings)
283
+ this.removeSettings(settings);
161
284
  if (errors.length)
162
285
  throw new AggregateError(errors, "App stop failed");
163
286
  this.started = false;
@@ -9,7 +9,9 @@ export type RouteApi = {
9
9
  [key: string]: (...args: any[]) => any;
10
10
  };
11
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<Omit<TData, "self">, Promise<Awaited<TResult>>> : 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;
13
15
  };
14
16
  export type RoutePreloadData<T extends RouteData> = {
15
17
  intent: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/RouteBuilder.ts"],"names":[],"mappings":"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"}
@@ -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,4 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ export declare class AppContext extends IocContext {
3
+ }
4
+ //# sourceMappingURL=AppContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../src/contexts/AppContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,UAAW,SAAQ,UAAU;CAIzC"}
@@ -0,0 +1,7 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ import { kind } from "@dreamkit/kind";
3
+ export class AppContext extends IocContext {
4
+ static {
5
+ kind(this, "@dreamkit/app/AppContext");
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ export declare class RequestContext extends IocContext {
3
+ }
4
+ //# sourceMappingURL=RequestContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../../src/contexts/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,cAAe,SAAQ,UAAU;CAI7C"}
@@ -0,0 +1,7 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ import { kind } from "@dreamkit/kind";
3
+ export class RequestContext extends IocContext {
4
+ static {
5
+ kind(this, "@dreamkit/app/RequestContext");
6
+ }
7
+ }
@@ -0,0 +1,36 @@
1
+ import { InferSettingsParams, SettingsConstructor, SettingsData } from "../builders/SettingsBuilder.js";
2
+ import { AppContext } from "../contexts/AppContext.js";
3
+ import { IocClass } from "@dreamkit/ioc";
4
+ import { Constructor } from "@dreamkit/utils/ts.js";
5
+ export declare const kindSettingsHandler: (input: object, name?: string) => void, isSettingsHandler: (input: unknown) => input is SettingsHandlerConstructor;
6
+ export type SettingsHandlerConstructor = Constructor<SettingsHandler> & {
7
+ $ioc: any;
8
+ };
9
+ export type SettingsHandlerSaveResult = Record<string, {
10
+ path: string;
11
+ changed: boolean;
12
+ }>;
13
+ declare const SettingsHandler_base: IocClass<{
14
+ AppContext: typeof AppContext;
15
+ }, import("@dreamkit/ioc").IocBaseClass<import("@dreamkit/ioc").IocParamsUserConfig>, never, import("@dreamkit/ioc").IocParams<{
16
+ AppContext: typeof AppContext;
17
+ }>>;
18
+ export declare abstract class SettingsHandler extends SettingsHandler_base {
19
+ autoSave: boolean;
20
+ protected data: Record<string, any>;
21
+ protected settings: Set<SettingsConstructor>;
22
+ protected pending: string[];
23
+ protected abstract onLoad(): Promise<Record<string, any>>;
24
+ protected abstract onSave(): Promise<SettingsHandlerSaveResult>;
25
+ load(): Promise<void>;
26
+ get<T extends SettingsData>(constructor: SettingsConstructor<T>): Promise<InferSettingsParams<T>>;
27
+ set<T extends SettingsData>(constructor: SettingsConstructor<T>, data: InferSettingsParams<T>): Promise<void>;
28
+ save(): Promise<SettingsHandlerSaveResult>;
29
+ protected getData(): Promise<{
30
+ prev: Record<string, any> | undefined;
31
+ next: Record<string, any> | undefined;
32
+ }>;
33
+ }
34
+ export declare const SettingsHandlerClass: <P extends import("@dreamkit/ioc").IocParamsUserConfig = {}>(params: P) => IocClass<P & {}, SettingsHandler, never, import("@dreamkit/ioc").IocParams<P & {}>>;
35
+ export {};
36
+ //# 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,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAkB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzD,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;IAgBV,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,59 @@
1
+ import { AppContext } from "../contexts/AppContext.js";
2
+ import { createIocClass, IocClass } from "@dreamkit/ioc";
3
+ import { createKind } from "@dreamkit/kind";
4
+ export const [kindSettingsHandler, isSettingsHandler] = createKind("@dreamkit/app/SettingsHandler");
5
+ export class SettingsHandler extends IocClass({ AppContext }) {
6
+ static {
7
+ kindSettingsHandler(this);
8
+ }
9
+ autoSave = true;
10
+ data = {};
11
+ settings = new Set();
12
+ pending = [];
13
+ async load() {
14
+ this.data = await this.onLoad();
15
+ for (const settings of this.settings) {
16
+ const data = this.data[settings.options.name];
17
+ this.appContext.resolve(settings, { optional: true })?.update(data);
18
+ }
19
+ }
20
+ async get(constructor) {
21
+ return this.data[constructor.options.name];
22
+ }
23
+ async set(constructor, data) {
24
+ const settingsInstance = this.appContext.resolve(constructor, {
25
+ optional: true,
26
+ });
27
+ if (settingsInstance) {
28
+ settingsInstance.update(data);
29
+ }
30
+ else {
31
+ this.appContext.register(constructor, {
32
+ value: new constructor(data),
33
+ });
34
+ }
35
+ const name = constructor.options.name;
36
+ this.data[name] = data;
37
+ this.pending.push(name);
38
+ if (this.autoSave)
39
+ await this.onSave();
40
+ }
41
+ async save() {
42
+ this.autoSave = true;
43
+ const result = await this.onSave();
44
+ this.pending.splice(0, this.pending.length);
45
+ return result;
46
+ }
47
+ async getData() {
48
+ if (!this.pending.length)
49
+ return { prev: undefined, next: undefined };
50
+ const prev = await this.onLoad();
51
+ const patch = Object.fromEntries(Object.entries(this.data).filter(([name]) => this.pending.includes(name)));
52
+ const next = Object.fromEntries(Object.entries(prev).map(([name, value]) => [name, patch[name] ?? value]));
53
+ for (const name in patch)
54
+ if (!(name in next))
55
+ next[name] = patch[name];
56
+ return { prev, next };
57
+ }
58
+ }
59
+ export const SettingsHandlerClass = createIocClass(SettingsHandler);
package/lib/index.d.ts CHANGED
@@ -2,10 +2,15 @@ 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";
6
+ export { AppContext } from "./contexts/AppContext.js";
7
+ export { RequestContext } from "./contexts/RequestContext.js";
8
8
  export { $api } from "./objects/$api.js";
9
+ export { $route } from "./objects/$route.js";
10
+ export { RouteBuilder, type RouteOptions, type Route, type RouteData, type RouteProps, } from "./builders/RouteBuilder.js";
11
+ export { $settings } from "./objects/$settings.js";
12
+ export { Settings, SettingsBuilder, type SettingsConstructor, type SettingsData, isSettings, } from "./builders/SettingsBuilder.js";
9
13
  export { Middleware, MiddlewareClass, isMiddleware, } from "./objects/middleware.js";
10
14
  export { Service, ServiceClass, type ServiceStop, isService, } from "./objects/service.js";
15
+ export { SettingsHandler, SettingsHandlerClass, type SettingsHandlerSaveResult, } from "./handlers/SettingsHandler.js";
11
16
  //# sourceMappingURL=index.d.ts.map
@@ -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,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,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"}
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,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,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,17 @@ 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";
6
+ // contexts
7
+ export { AppContext } from "./contexts/AppContext.js";
8
+ export { RequestContext } from "./contexts/RequestContext.js";
7
9
  // objects
8
- export { $route } from "./objects/$route.js";
9
10
  export { $api } from "./objects/$api.js";
11
+ export { $route } from "./objects/$route.js";
12
+ export { RouteBuilder, } from "./builders/RouteBuilder.js";
13
+ export { $settings } from "./objects/$settings.js";
14
+ export { Settings, SettingsBuilder, isSettings, } from "./builders/SettingsBuilder.js";
10
15
  export { Middleware, MiddlewareClass, isMiddleware, } from "./objects/middleware.js";
11
16
  export { Service, ServiceClass, isService, } from "./objects/service.js";
17
+ // handlers
18
+ export { SettingsHandler, SettingsHandlerClass, } from "./handlers/SettingsHandler.js";
@@ -0,0 +1,6 @@
1
+ import { SettingsBuilder } from "../builders/SettingsBuilder.js";
2
+ export declare const $settings: SettingsBuilder<{
3
+ name: undefined;
4
+ params: undefined;
5
+ }>;
6
+ //# sourceMappingURL=$settings.d.ts.map
@@ -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"}
@@ -0,0 +1,2 @@
1
+ import { SettingsBuilder } from "../builders/SettingsBuilder.js";
2
+ export const $settings = /*#__PURE__*/ new SettingsBuilder();
@@ -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,yKAA6B,CAAC"}
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"}
@@ -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,sKAA0B,CAAC"}
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreamkit/app",
3
- "version": "0.0.7-next.0",
3
+ "version": "0.0.7-next.2",
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.3-next.0",
31
- "@dreamkit/ioc": "0.0.1",
30
+ "@dreamkit/func": "0.0.3-next.2",
31
+ "@dreamkit/ioc": "0.0.2-next.1",
32
32
  "@dreamkit/kind": "0.0.2",
33
- "@dreamkit/schema": "0.0.4",
34
- "@dreamkit/utils": "0.0.4"
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",