@dreamkit/app 0.0.7-next.2 → 0.0.7-next.3

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,10 +1,10 @@
1
+ import { MiddlewareConstructor } from "./builders/MiddlewareBuilder.js";
1
2
  import { Route } from "./builders/RouteBuilder.js";
3
+ import { AppService, ServiceConstructor } from "./builders/ServiceBuilder.js";
2
4
  import { SettingsConstructor } from "./builders/SettingsBuilder.js";
3
5
  import { AppContext } from "./contexts/AppContext.js";
4
6
  import { RequestContext } from "./contexts/RequestContext.js";
5
7
  import { SettingsHandler, SettingsHandlerConstructor } from "./handlers/SettingsHandler.js";
6
- import { MiddlewareConstructor } from "./objects/middleware.js";
7
- import { AppService, ServiceConstructor } from "./objects/service.js";
8
8
  export declare class App {
9
9
  static instanceKey: string;
10
10
  readonly started = false;
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
@@ -1,11 +1,11 @@
1
1
  import { RequestUrl } from "./RequestUrl.js";
2
2
  import { isApi } from "./builders/ApiBuilder.js";
3
+ import { isMiddleware, } from "./builders/MiddlewareBuilder.js";
4
+ import { isService, } from "./builders/ServiceBuilder.js";
3
5
  import { isSettings } from "./builders/SettingsBuilder.js";
4
6
  import { AppContext } from "./contexts/AppContext.js";
5
7
  import { RequestContext } from "./contexts/RequestContext.js";
6
8
  import { isSettingsHandler, SettingsHandler, } from "./handlers/SettingsHandler.js";
7
- import { isMiddleware } from "./objects/middleware.js";
8
- import { isService, } from "./objects/service.js";
9
9
  import { isRoute, kindApp } from "./utils/kind.js";
10
10
  import { log } from "./utils/log.js";
11
11
  import { IocBaseClass, normalizeIocParams, } from "@dreamkit/ioc";
@@ -1,6 +1,5 @@
1
1
  import { Func, FuncBuilder, FuncData } from "@dreamkit/func";
2
2
  export declare const kindApi: (input: object, name?: string) => void, isApi: (input: unknown) => input is Func;
3
3
  export declare class ApiBuilder<T extends FuncData> extends FuncBuilder<T> {
4
- protected onCreate(func: Func): Func;
5
4
  }
6
5
  //# sourceMappingURL=ApiBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/ApiBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG7D,eAAO,MAAO,OAAO,0CAAE,KAAK,mCAAyC,CAAC;AAEtE,qBAAa,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;cAC7C,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAI9C"}
1
+ {"version":3,"file":"ApiBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/ApiBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG7D,eAAO,MAAO,OAAO,0CAAE,KAAK,mCAAyC,CAAC;AAEtE,qBAAa,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;CAAG"}
@@ -2,8 +2,4 @@ import { FuncBuilder } from "@dreamkit/func";
2
2
  import { createKind } from "@dreamkit/kind";
3
3
  export const [kindApi, isApi] = createKind("@dreamkit/app/api");
4
4
  export class ApiBuilder extends FuncBuilder {
5
- onCreate(func) {
6
- kindApi(func);
7
- return func;
8
- }
9
5
  }
@@ -0,0 +1,24 @@
1
+ import { IocClass, IocParamsUserConfig } from "@dreamkit/ioc";
2
+ import type { Constructor, Merge } from "@dreamkit/utils/ts.js";
3
+ export declare const kindMiddleware: (input: object, name?: string) => void, isMiddleware: (input: unknown) => input is MiddlewareConstructor;
4
+ export type MiddlewareSelf = IocParamsUserConfig | undefined;
5
+ export type MiddlewareData<TSelf extends MiddlewareSelf = MiddlewareSelf> = {
6
+ self?: TSelf;
7
+ };
8
+ export type MiddlewareOptions<T extends MiddlewareData = MiddlewareData> = T & {};
9
+ export type MergeMiddlewareData<D1 extends MiddlewareData, D2 extends Partial<MiddlewareData>> = Merge<MiddlewareData, D1, D2>;
10
+ export declare abstract class Middleware {
11
+ abstract onRequest(): any;
12
+ }
13
+ export type MiddlewareConstructor = Constructor<Middleware>;
14
+ export declare class MiddlewareBuilder<T extends MiddlewareData = {}> {
15
+ readonly data: T;
16
+ readonly options: MiddlewareOptions<T>;
17
+ constructor(options?: MiddlewareOptions<T>);
18
+ protected clone(next: Partial<MiddlewareOptions>): this;
19
+ self<TSelf extends MiddlewareSelf>(value: TSelf): MiddlewareBuilder<MergeMiddlewareData<T, {
20
+ self: TSelf;
21
+ }>>;
22
+ create(): IocClass<T["self"] & {}, Middleware>;
23
+ }
24
+ //# sourceMappingURL=MiddlewareBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiddlewareBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/MiddlewareBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAEvB,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;CACd,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IACrE,CAAC,GAAG,EAAE,CAAC;AAET,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,CAAC;AAI5D,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,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC;CAG/C"}
@@ -0,0 +1,35 @@
1
+ import { createIocClass, } from "@dreamkit/ioc";
2
+ import { createKind } from "@dreamkit/kind";
3
+ export const [kindMiddleware, isMiddleware] = createKind("@dreamkit/app/middleware");
4
+ export class Middleware {
5
+ static {
6
+ kindMiddleware(this);
7
+ }
8
+ }
9
+ const MiddlewareClass = createIocClass(Middleware);
10
+ export class MiddlewareBuilder {
11
+ data;
12
+ options;
13
+ constructor(options = {}) {
14
+ const $this = this;
15
+ this.options = options;
16
+ this.data = {
17
+ get self() {
18
+ return $this.options.self;
19
+ },
20
+ };
21
+ }
22
+ clone(next) {
23
+ const prev = this.options;
24
+ return new MiddlewareBuilder({
25
+ ...prev,
26
+ ...next,
27
+ });
28
+ }
29
+ self(value) {
30
+ return this.clone({ self: value });
31
+ }
32
+ create() {
33
+ return MiddlewareClass(this.options.self || {});
34
+ }
35
+ }
@@ -0,0 +1,33 @@
1
+ import { IocClass, IocParamsUserConfig } from "@dreamkit/ioc";
2
+ import type { Constructor, Merge } from "@dreamkit/utils/ts.js";
3
+ export declare const kindService: (input: object, name?: string) => void, isService: (input: unknown) => input is ServiceConstructor;
4
+ export type ServiceSelf = IocParamsUserConfig | undefined;
5
+ export type ServiceData<TSelf extends ServiceSelf = ServiceSelf> = {
6
+ self?: TSelf;
7
+ };
8
+ export type ServiceOptions<T extends ServiceData = ServiceData> = T & {};
9
+ export type MergeServiceData<D1 extends ServiceData, D2 extends Partial<ServiceData>> = Merge<ServiceData, D1, D2>;
10
+ type SyncOrAsync<T> = T | Promise<T>;
11
+ export type Shutdown = () => SyncOrAsync<void>;
12
+ export type AppService = {
13
+ name: string;
14
+ service: ServiceConstructor;
15
+ started: boolean;
16
+ shutdown?: Shutdown;
17
+ };
18
+ export declare abstract class Service {
19
+ abstract onStart(): any;
20
+ }
21
+ export type ServiceConstructor = Constructor<Service>;
22
+ export declare class ServiceBuilder<T extends ServiceData = {}> {
23
+ readonly data: T;
24
+ readonly options: ServiceOptions<T>;
25
+ constructor(options?: ServiceOptions<T>);
26
+ protected clone(next: Partial<ServiceOptions>): this;
27
+ self<TSelf extends ServiceSelf>(value: TSelf): ServiceBuilder<MergeServiceData<T, {
28
+ self: TSelf;
29
+ }>>;
30
+ create(): IocClass<T["self"] & {}, Service>;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=ServiceBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/ServiceBuilder.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,WAAW,0CAAE,SAAS,iDAEnC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAC1D,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW,IAAI;IACjE,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC;AAEzE,MAAM,MAAM,gBAAgB,CAC1B,EAAE,SAAS,WAAW,EACtB,EAAE,SAAS,OAAO,CAAC,WAAW,CAAC,IAC7B,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/B,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;AAEF,8BAAsB,OAAO;IAI3B,QAAQ,CAAC,OAAO,IAAI,GAAG;CACxB;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAItD,qBAAa,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,EAAE;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;gBACxB,OAAO,GAAE,cAAc,CAAC,CAAC,CAAa;IASlD,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAOpD,IAAI,CAAC,KAAK,SAAS,WAAW,EAC5B,KAAK,EAAE,KAAK,GACX,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAGvD,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;CAG5C"}
@@ -0,0 +1,35 @@
1
+ import { createIocClass } from "@dreamkit/ioc";
2
+ import { createKind } from "@dreamkit/kind";
3
+ export const [kindService, isService] = createKind("@dreamkit/app/service");
4
+ export class Service {
5
+ static {
6
+ kindService(this);
7
+ }
8
+ }
9
+ const ServiceClass = createIocClass(Service);
10
+ export class ServiceBuilder {
11
+ data;
12
+ options;
13
+ constructor(options = {}) {
14
+ const $this = this;
15
+ this.options = options;
16
+ this.data = {
17
+ get self() {
18
+ return $this.options.self;
19
+ },
20
+ };
21
+ }
22
+ clone(next) {
23
+ const prev = this.options;
24
+ return new ServiceBuilder({
25
+ ...prev,
26
+ ...next,
27
+ });
28
+ }
29
+ self(value) {
30
+ return this.clone({ self: value });
31
+ }
32
+ create() {
33
+ return ServiceClass(this.options.self || {});
34
+ }
35
+ }
package/lib/index.d.ts CHANGED
@@ -7,10 +7,12 @@ export { AppContext } from "./contexts/AppContext.js";
7
7
  export { RequestContext } from "./contexts/RequestContext.js";
8
8
  export { $api } from "./objects/$api.js";
9
9
  export { $route } from "./objects/$route.js";
10
+ export { $middleware } from "./objects/$middleware.js";
11
+ export { $service } from "./objects/$service.js";
10
12
  export { RouteBuilder, type RouteOptions, type Route, type RouteData, type RouteProps, } from "./builders/RouteBuilder.js";
11
13
  export { $settings } from "./objects/$settings.js";
12
14
  export { Settings, SettingsBuilder, type SettingsConstructor, type SettingsData, isSettings, } from "./builders/SettingsBuilder.js";
13
- export { Middleware, MiddlewareClass, isMiddleware, } from "./objects/middleware.js";
14
- export { Service, ServiceClass, type ServiceStop, isService, } from "./objects/service.js";
15
+ export { Middleware, isMiddleware, type MiddlewareConstructor, type MiddlewareOptions, type MiddlewareData, } from "./builders/MiddlewareBuilder.js";
16
+ export { Service, type ServiceConstructor, type ServiceOptions, type ServiceData, isService, } from "./builders/ServiceBuilder.js";
15
17
  export { SettingsHandler, SettingsHandlerClass, type SettingsHandlerSaveResult, } from "./handlers/SettingsHandler.js";
16
18
  //# 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,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"}
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,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,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,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
package/lib/index.js CHANGED
@@ -9,10 +9,12 @@ export { RequestContext } from "./contexts/RequestContext.js";
9
9
  // objects
10
10
  export { $api } from "./objects/$api.js";
11
11
  export { $route } from "./objects/$route.js";
12
+ export { $middleware } from "./objects/$middleware.js";
13
+ export { $service } from "./objects/$service.js";
12
14
  export { RouteBuilder, } from "./builders/RouteBuilder.js";
13
15
  export { $settings } from "./objects/$settings.js";
14
16
  export { Settings, SettingsBuilder, isSettings, } from "./builders/SettingsBuilder.js";
15
- export { Middleware, MiddlewareClass, isMiddleware, } from "./objects/middleware.js";
16
- export { Service, ServiceClass, isService, } from "./objects/service.js";
17
+ export { Middleware, isMiddleware, } from "./builders/MiddlewareBuilder.js";
18
+ export { Service, isService, } from "./builders/ServiceBuilder.js";
17
19
  // handlers
18
20
  export { SettingsHandler, SettingsHandlerClass, } from "./handlers/SettingsHandler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"$api.d.ts","sourceRoot":"","sources":["../../src/objects/$api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,eAAO,MAAM,IAAI,gBAAmC,CAAC"}
1
+ {"version":3,"file":"$api.d.ts","sourceRoot":"","sources":["../../src/objects/$api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,2BAA2B,CAAC;AAEhE,eAAO,MAAM,IAAI,gBAKf,CAAC"}
@@ -1,2 +1,7 @@
1
- import { ApiBuilder } from "../builders/ApiBuilder.js";
2
- export const $api = /*#__PURE__*/ new ApiBuilder({});
1
+ import { ApiBuilder, kindApi } from "../builders/ApiBuilder.js";
2
+ export const $api = /*#__PURE__*/ new ApiBuilder({})["clone"]({
3
+ onCreate: (func) => {
4
+ kindApi(func);
5
+ return func;
6
+ },
7
+ });
@@ -0,0 +1,3 @@
1
+ import { MiddlewareBuilder } from "../builders/MiddlewareBuilder.js";
2
+ export declare const $middleware: MiddlewareBuilder<{}>;
3
+ //# sourceMappingURL=$middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$middleware.d.ts","sourceRoot":"","sources":["../../src/objects/$middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,eAAO,MAAM,WAAW,uBAA0C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { MiddlewareBuilder } from "../builders/MiddlewareBuilder.js";
2
+ export const $middleware = /*#__PURE__*/ new MiddlewareBuilder({});
@@ -0,0 +1,3 @@
1
+ import { ServiceBuilder } from "../builders/ServiceBuilder.js";
2
+ export declare const $service: ServiceBuilder<{}>;
3
+ //# sourceMappingURL=$service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$service.d.ts","sourceRoot":"","sources":["../../src/objects/$service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,eAAO,MAAM,QAAQ,oBAAuC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ServiceBuilder } from "../builders/ServiceBuilder.js";
2
+ export const $service = /*#__PURE__*/ new ServiceBuilder({});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreamkit/app",
3
- "version": "0.0.7-next.2",
3
+ "version": "0.0.7-next.3",
4
4
  "description": "Set of utils to create applications.",
5
5
  "homepage": "https://dreamkit.dev",
6
6
  "repository": {
@@ -27,10 +27,10 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "debug": "^4.3.7",
30
- "@dreamkit/func": "0.0.3-next.2",
31
- "@dreamkit/ioc": "0.0.2-next.1",
30
+ "@dreamkit/func": "0.0.3-next.3",
31
+ "@dreamkit/ioc": "0.0.2-next.2",
32
32
  "@dreamkit/kind": "0.0.2",
33
- "@dreamkit/schema": "0.0.5-next.0",
33
+ "@dreamkit/schema": "0.0.5-next.1",
34
34
  "@dreamkit/utils": "0.0.5-next.0"
35
35
  },
36
36
  "devDependencies": {
@@ -1,8 +0,0 @@
1
- import { Constructor } from "@dreamkit/utils/ts.js";
2
- export declare const kindMiddleware: (input: object, name?: string) => void, isMiddleware: (input: unknown) => input is MiddlewareConstructor;
3
- export type MiddlewareConstructor = Constructor<Middleware>;
4
- export declare abstract class Middleware {
5
- abstract onRequest(): any;
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 & {}>>;
8
- //# sourceMappingURL=middleware.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,9 +0,0 @@
1
- import { createIocClass } from "@dreamkit/ioc";
2
- import { createKind } from "@dreamkit/kind";
3
- export const [kindMiddleware, isMiddleware] = createKind("@dreamkit/app/middleware");
4
- export class Middleware {
5
- static {
6
- kindMiddleware(this);
7
- }
8
- }
9
- export const MiddlewareClass = createIocClass(Middleware);
@@ -1,20 +0,0 @@
1
- import { Constructor } from "@dreamkit/utils/ts.js";
2
- export declare const kindService: (input: object, name?: string) => void, isService: (input: unknown) => input is ServiceConstructor;
3
- type SyncOrAsync<T> = T | Promise<T>;
4
- export type Shutdown = () => SyncOrAsync<void>;
5
- export type AppService = {
6
- name: string;
7
- service: ServiceConstructor;
8
- started: boolean;
9
- shutdown?: Shutdown;
10
- };
11
- export type ServiceStop = SyncOrAsync<void> | Shutdown;
12
- export type ServiceConstructor = Constructor<Service>;
13
- export declare abstract class Service {
14
- get name(): string | undefined;
15
- abstract onStart(): ServiceStop;
16
- onStop(): any;
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 & {}>>;
19
- export {};
20
- //# sourceMappingURL=service.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,13 +0,0 @@
1
- import { createIocClass } from "@dreamkit/ioc";
2
- import { createKind } from "@dreamkit/kind";
3
- export const [kindService, isService] = createKind("@dreamkit/app/service");
4
- export class Service {
5
- static {
6
- kindService(this);
7
- }
8
- get name() {
9
- return;
10
- }
11
- onStop() { }
12
- }
13
- export const ServiceClass = createIocClass(Service);