@arkstack/contract 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -37,9 +37,11 @@ interface ArkstackRouterContract<TApp, TRoutes = unknown> {
37
37
  bind(app: TApp): PromiseOrValue<unknown>;
38
38
  list(options?: ArkstackRouteListOptions, app?: TApp): PromiseOrValue<TRoutes>;
39
39
  }
40
- interface ArkstackRouterAwareCore<TApp, TRoutes = unknown> {
41
- getAppInstance(): TApp;
42
- getRouter(): ArkstackRouterContract<TApp, TRoutes>;
40
+ declare abstract class ArkstackRouterAwareCore<TApp, TRoutes = unknown> {
41
+ abstract getAppInstance(): TApp;
42
+ abstract getRouter(): ArkstackRouterContract<TApp, TRoutes>;
43
+ abstract boot(port: number, dontStart?: boolean): Promise<void>;
44
+ startup(defaultPort?: number, dontStart?: boolean): Promise<void>;
43
45
  }
44
46
  //#endregion
45
47
  export { ArkstackKitContract, ArkstackKitDriver, ArkstackMiddlewareConfig, ArkstackRouteListOptions, ArkstackRouterAwareCore, ArkstackRouterContract, ENV, PromiseOrValue };
package/dist/index.js CHANGED
@@ -12,6 +12,22 @@ var ArkstackKitDriver = class {
12
12
  */
13
13
  var ArkstackKitContract = class {};
14
14
  //#endregion
15
- export { ArkstackKitContract, ArkstackKitDriver };
15
+ //#region src/routing.ts
16
+ var ArkstackRouterAwareCore = class {
17
+ /**
18
+ * Boostrap the app and start up the server
19
+ *
20
+ * @param defaultPort start the server with this port if none is APP_PORT env variable is not set
21
+ * @param dontStart Set to true to skip server startup
22
+ */
23
+ async startup(defaultPort = 3e3, dontStart) {
24
+ const { bootWithDetectedPort } = await import("@arkstack/common");
25
+ await bootWithDetectedPort(async (port) => {
26
+ await this.boot(port, dontStart);
27
+ }, Number(process.env.APP_PORT ?? defaultPort), this);
28
+ }
29
+ };
30
+ //#endregion
31
+ export { ArkstackKitContract, ArkstackKitDriver, ArkstackRouterAwareCore };
16
32
 
17
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/kits.ts"],"sourcesContent":["import { ArkstackMiddlewareConfig } from './http'\nimport { PromiseOrValue } from './core'\n\n/**\n * The ArkstackKitDriver class defines the contract for a driver \n * that can be used with the ArkstackKitContract. \n */\nexport abstract class ArkstackKitDriver<TApp, TMiddleware> {\n abstract readonly name: string;\n abstract createApp (): TApp;\n abstract mountPublicAssets (app: TApp, publicPath: string): PromiseOrValue<void>;\n abstract bindRouter (app: TApp): PromiseOrValue<void>;\n abstract applyMiddleware (app: TApp, middleware: ArkstackMiddlewareConfig<TMiddleware>): PromiseOrValue<void>;\n abstract applyMiddleware (app: TApp, middleware: TMiddleware): PromiseOrValue<void>;\n registerErrorHandler (_app: TApp): PromiseOrValue<void> {\n return\n }\n abstract start (app: TApp, port: number): PromiseOrValue<void>;\n}\n\n/**\n * The ArkstackKitContract class defines the contract for an \n * application that uses the ArkstackKitDriver.\n */\nexport abstract class ArkstackKitContract<TApp, TMiddleware> {\n abstract app: TApp;\n abstract driver: ArkstackKitDriver<TApp, TMiddleware>;\n abstract middleware: ArkstackMiddlewareConfig<TMiddleware>;\n abstract boot (port: number): Promise<void>;\n abstract shutdown (): Promise<void>;\n}"],"mappings":";;;;;AAOA,IAAsB,oBAAtB,MAA2D;CAOvD,qBAAsB,MAAkC;;;;;;AAU5D,IAAsB,sBAAtB,MAA6D"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/kits.ts","../src/routing.ts"],"sourcesContent":["import { ArkstackMiddlewareConfig } from './http'\nimport { PromiseOrValue } from './core'\n\n/**\n * The ArkstackKitDriver class defines the contract for a driver \n * that can be used with the ArkstackKitContract. \n */\nexport abstract class ArkstackKitDriver<TApp, TMiddleware> {\n abstract readonly name: string;\n abstract createApp (): TApp;\n abstract mountPublicAssets (app: TApp, publicPath: string): PromiseOrValue<void>;\n abstract bindRouter (app: TApp): PromiseOrValue<void>;\n abstract applyMiddleware (app: TApp, middleware: ArkstackMiddlewareConfig<TMiddleware>): PromiseOrValue<void>;\n abstract applyMiddleware (app: TApp, middleware: TMiddleware): PromiseOrValue<void>;\n registerErrorHandler (_app: TApp): PromiseOrValue<void> {\n return\n }\n abstract start (app: TApp, port: number): PromiseOrValue<void>;\n}\n\n/**\n * The ArkstackKitContract class defines the contract for an \n * application that uses the ArkstackKitDriver.\n */\nexport abstract class ArkstackKitContract<TApp, TMiddleware> {\n abstract app: TApp;\n abstract driver: ArkstackKitDriver<TApp, TMiddleware>;\n abstract middleware: ArkstackMiddlewareConfig<TMiddleware>;\n abstract boot (port: number): Promise<void>;\n abstract shutdown (): Promise<void>;\n}","import { PromiseOrValue } from './core'\n\nexport interface ArkstackRouteListOptions {\n path?: string;\n}\n\nexport interface ArkstackRouterContract<TApp, TRoutes = unknown> {\n bind (app: TApp): PromiseOrValue<unknown>;\n list (options?: ArkstackRouteListOptions, app?: TApp): PromiseOrValue<TRoutes>;\n}\n\nexport abstract class ArkstackRouterAwareCore<TApp, TRoutes = unknown> {\n abstract getAppInstance (): TApp;\n abstract getRouter (): ArkstackRouterContract<TApp, TRoutes>;\n /**\n * Boots the application by mounting public assets, binding the \n * router, applying middleware, and starting the server.\n * \n * @param port The numeric port to run the server on\n * @param dontStart Set to true to skip server startup\n */\n abstract boot (port: number, dontStart?: boolean): Promise<void>\n\n /**\n * Boostrap the app and start up the server\n * \n * @param defaultPort start the server with this port if none is APP_PORT env variable is not set\n * @param dontStart Set to true to skip server startup\n */\n async startup (defaultPort: number = 3000, dontStart?: boolean) {\n const { bootWithDetectedPort } = await import('@arkstack/common')\n await bootWithDetectedPort(async (port) => {\n await this.boot(port, dontStart)\n }, Number(process.env.APP_PORT ?? defaultPort), this)\n }\n}\n"],"mappings":";;;;;AAOA,IAAsB,oBAAtB,MAA2D;CAOvD,qBAAsB,MAAkC;;;;;;AAU5D,IAAsB,sBAAtB,MAA6D;;;ACb7D,IAAsB,0BAAtB,MAAuE;;;;;;;CAkBnE,MAAM,QAAS,cAAsB,KAAM,WAAqB;EAC5D,MAAM,EAAE,yBAAyB,MAAM,OAAO;EAC9C,MAAM,qBAAqB,OAAO,SAAS;GACvC,MAAM,KAAK,KAAK,MAAM,UAAU;KACjC,OAAO,QAAQ,IAAI,YAAY,YAAY,EAAE,KAAK"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkstack/contract",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "type": "module",
5
5
  "description": "Contract module for Arkstack, providing shared interfaces and type contracts used across the framework.",
6
6
  "homepage": "https://arkstack.toneflix.net",