@nsshunt/stsappframework 4.0.6 → 4.0.8

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.
@@ -4,6 +4,7 @@ import os from "node:os";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import cluster from "node:cluster";
6
6
  import chalk from "chalk";
7
+ import { Router } from "express";
7
8
  import { StatusCodes } from "http-status-codes";
8
9
  import { inject, emptyLogger, SetInjectionContextStore, } from "@nsshunt/stsutils";
9
10
  import { NodeInjectionContextStore } from "@nsshunt/stsutils/node";
@@ -48,6 +49,25 @@ const outputLogs = (app) => {
48
49
  // We are in nodejs, so use the async local storage version of the injector. This ensure that we
49
50
  // can use inject in async code before or after any awaits
50
51
  SetInjectionContextStore(new NodeInjectionContextStore());
52
+ const stslatencyController = async (_req, res, next) => {
53
+ try {
54
+ const retVal = {
55
+ data: `Ping Completed At: ${Date.now()}`,
56
+ pid: process.pid,
57
+ ppid: process.ppid,
58
+ };
59
+ return res.status(StatusCodes.OK).send(retVal);
60
+ }
61
+ catch (error) {
62
+ next(error);
63
+ }
64
+ };
65
+ export class STSResourceRoute {
66
+ router = Router();
67
+ constructor() {
68
+ this.router.get("/latency", stslatencyController);
69
+ }
70
+ }
51
71
  if (cluster.isPrimary) {
52
72
  const serviceProcessContext = CreateServiceProcessContext(goptions.rest01servicename, goptions.rest01serviceversion, randomUUID(), os.hostname(), process.pid, process.pid);
53
73
  const app = new STSApp();
@@ -190,35 +210,31 @@ else {
190
210
  }
191
211
  };
192
212
  */
193
- const stslatencyController = async (_req, res, next) => {
194
- try {
195
- const retVal = {
196
- data: `Ping Completed At: ${Date.now()}`,
197
- pid: process.pid,
198
- ppid: process.ppid,
199
- };
200
- return res.status(StatusCodes.OK).send(retVal);
201
- }
202
- catch (error) {
203
- next(error);
204
- }
205
- };
206
213
  app.use(app.createPlugin(STSExpressControllerPlugin), {
207
- routes: [
214
+ registrations: [
208
215
  {
216
+ type: "router",
217
+ router: STSResourceRoute,
218
+ mountPath: goptions.rest01apiroot,
219
+ },
220
+ {
221
+ type: "route",
209
222
  method: "get",
210
223
  mountPath: `${goptions.rest01apiroot}/`,
211
224
  handlers: [stslatencyController],
212
225
  },
226
+ /*
213
227
  {
214
228
  method: "get",
215
229
  mountPath: `${goptions.rest01apiroot}/latency`,
216
230
  handlers: [
217
231
  // Use below for debugging only ...
218
232
  //stslatencyMiddlewareController,
233
+
219
234
  stslatencyController,
220
235
  ],
221
236
  },
237
+ */
222
238
  ],
223
239
  });
224
240
  outputLogs(app);
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/exampleapp/app.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,wFAAwF,CAAC,UAAU;AACnG,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACH,MAAM,EACN,WAAW,EACX,wBAAwB,GAE3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACH,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,6BAA6B,EAC7B,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,GACT,MAAM,eAAe,CAAC;AAEvB,iDAAiD;AACjD,yDAAyD;AAEzD,IAAI,SAAS,GAAQ,SAAS,CAAC;AAE/B,MAAM,YAAY,GAAG,GAAG,EAAE;IACtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1C,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAEvD,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;IAC/B,IAAI,IAAI,GAAQ,SAAS,CAAC;IAC1B,IAAI,MAAM,GAAW,CAAC,CAAC;IACvB,IAAI,SAAS,GAAW,CAAC,CAAC;IAE1B,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAE5C,MAAM,CAAC,IAAI,CACP,YAAY,EAAE,CACV,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,wBAAwB,CACvG,CACJ,CAAC;YAEF,MAAM,IAAI,SAAS,CAAC;YACpB,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAChB,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,SAAS,GAAG,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvB,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACrB,aAAa,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,YAAY;AACZ,gGAAgG;AAChG,0DAA0D;AAC1D,wBAAwB,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;AAE1D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IACpB,MAAM,qBAAqB,GAAG,2BAA2B,CACrD,QAAQ,CAAC,iBAAiB,EAC1B,QAAQ,CAAC,oBAAoB,EAC7B,UAAU,EAAE,EACZ,EAAE,CAAC,QAAQ,EAAE,EACb,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,GAAG,CACd,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;IAEzB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;IAE3C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;QACvC,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;QAC1D,WAAW,EAAE,qBAAqB,CAAC,WAAW;QAC9C,cAAc,EAAE,qBAAqB,CAAC,cAAc;QACpD,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,WAAW;KAClC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,6BAA6B,CAAC,EAAE;QACrD,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,cAAc,CAAC,SAAS,CAAC;QAChD,iBAAiB,EAAE,IAAI;QACvB,qBAAqB,EAAE,qBAAqB;QAC5C,MAAM,EAAE,WAAW;KACtB,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;QACxC,WAAW,EAAE,QAAQ,CAAC,iBAAiB;KAC1C,CAAC,CAAC;IAEH,+BAA+B;IAC/B,qEAAqE;IAErE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;QACxC,OAAO,EAAE,QAAQ,CAAC,aAAa;QAC/B,QAAQ,EAAE,QAAQ,CAAC,cAAc;QACjC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC1C,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,6BAA6B,CAAC,EAAE;QACrD,qBAAqB,EAAE;YACnB,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;SAC7D;KACJ,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;KAAM,CAAC;IACJ,MAAM,qBAAqB,GAAe,IAAI,CAAC,KAAK,CAChD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAW,CACzB,CAAC;IAEhB,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;IAEnE,MAAM,qBAAqB,GAAG,2BAA2B,CACrD,QAAQ,CAAC,iBAAiB,EAC1B,QAAQ,CAAC,oBAAoB,EAC7B,kBAAkB,EAClB,EAAE,CAAC,QAAQ,EAAE,EACb,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,IAAI,CACf,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;IAEzB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;IAE3C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;QACvC,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;QAC1D,WAAW,EAAE,qBAAqB,CAAC,WAAW;QAC9C,cAAc,EAAE,qBAAqB,CAAC,cAAc;QACpD,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,WAAW;KAClC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,6BAA6B,CAAC,EAAE;QACrD,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,cAAc,CAAC,SAAS,CAAC;QAChD,iBAAiB,EAAE,IAAI;QACvB,qBAAqB,EAAE,qBAAqB;QAC5C,MAAM,EAAE,WAAW;KACtB,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;QACxC,WAAW,EAAE,qBAAqB,CAAC,WAAW;KACjD,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,CAAC,kBAA2B,EAAE,EAAE;QAC5D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,kBAAkB,EAAE,CAAC;gBACrB,OAAO,KAAK;qBACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACV,OAAO,gBAAgB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI,WAAW,CAAC;gBACrF,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACJ,OAAO,KAAK;qBACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACV,OAAO,gBAAgB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACjG,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE;QAC9C,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,CAAC;QACX,oBAAoB,EAAE,uBAAuB,CAAC,KAAK,CAAC;KACvD,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;QACvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,0BAA0B,EAAE,QAAQ,CAAC,mBAAmB;QACxD,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC7C,QAAQ,EAAE,QAAQ,CAAC,cAAc;QACjC,OAAO,EAAE,QAAQ,CAAC,aAAa;QAC/B,MAAM,EAAE,WAAW;KACtB,CAAC,CAAC;IAEH,mCAAmC;IACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiDE;IAEF,MAAM,oBAAoB,GAAmB,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACnE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG;gBACX,IAAI,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACxC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;aACrB,CAAC;YAEF,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;IACL,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,0BAA0B,CAAC,EAAE;QAClD,MAAM,EAAE;YACJ;gBACI,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,GAAG,QAAQ,CAAC,aAAa,GAAG;gBACvC,QAAQ,EAAE,CAAC,oBAAoB,CAAC;aACnC;YACD;gBACI,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,GAAG,QAAQ,CAAC,aAAa,UAAU;gBAC9C,QAAQ,EAAE;oBACN,mCAAmC;oBACnC,iCAAiC;oBAEjC,oBAAoB;iBACvB;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhB,GAAG,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/exampleapp/app.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
2
  /* eslint @typescript-eslint/no-empty-object-type: 0 */
3
- import { InjectionToken } from "@nsshunt/stsutils";
4
- import { inject } from "@nsshunt/stsutils";
3
+ import express from "express";
4
+ import { InjectionToken, inject } from "@nsshunt/stsutils";
5
5
  import { STSLoggerPluginToken } from "./stsloggerplugin.js";
6
6
  import { STSServerPluginToken } from "./stsserverplugin.js";
7
- import express from "express";
8
7
  export const STSExpressControllerPluginToken = new InjectionToken("__STSPlugin__ExpressController");
9
- // STSOptions
10
8
  export class STSExpressControllerPlugin {
11
9
  logger = inject(STSLoggerPluginToken);
12
10
  server = inject(STSServerPluginToken);
@@ -16,31 +14,79 @@ export class STSExpressControllerPlugin {
16
14
  return injector.runInContext(() => handler(req, res, next));
17
15
  };
18
16
  };
19
- install = (injector, options) => {
20
- if (!options) {
21
- throw new Error("STSExpressControllerPlugin requires options");
17
+ #Register = (injector, expressServer, registrations) => {
18
+ for (const registration of registrations) {
19
+ switch (registration.type) {
20
+ case "route": {
21
+ const router = express.Router();
22
+ const handlers = registration.handlers.map((handler) => this.#RunInInjectionContext(injector, handler));
23
+ router[registration.method](registration.mountPath, ...handlers);
24
+ expressServer.Use(router);
25
+ break;
26
+ }
27
+ case "router": {
28
+ const routerInstance = injector.runInContext(() => new registration.router());
29
+ if (registration.mountPath) {
30
+ const router = express.Router();
31
+ router.use(registration.mountPath, routerInstance.router);
32
+ expressServer.Use(router);
33
+ }
34
+ else {
35
+ expressServer.Use(routerInstance.router);
36
+ }
37
+ break;
38
+ }
39
+ }
22
40
  }
23
- if (!(this.server.GetServerType() === "EXPRESS")) {
24
- throw new Error(`STSExpressControllerPlugin: Server type: [${this.server.GetServerType()}] must be an express server`);
41
+ };
42
+ #RegisterRouters = (injector, expressServer, routers) => {
43
+ for (const routerDefinition of routers) {
44
+ const routerInstance = injector.runInContext(() => new routerDefinition.router());
45
+ if (routerDefinition.mountPath) {
46
+ const router = express.Router();
47
+ router.use(routerDefinition.mountPath, routerInstance.router);
48
+ expressServer.Use(router);
49
+ continue;
50
+ }
51
+ expressServer.Use(routerInstance.router);
25
52
  }
53
+ };
54
+ #RegisterRoutes = (injector, expressServer, routes) => {
26
55
  const router = express.Router();
27
- for (const route of options.routes) {
56
+ for (const route of routes) {
28
57
  const handlers = route.handlers.map((handler) => this.#RunInInjectionContext(injector, handler));
29
58
  router[route.method](route.mountPath, ...handlers);
30
59
  }
31
- this.server.Use(router);
60
+ expressServer.Use(router);
61
+ };
62
+ install = (injector, options) => {
63
+ if (!options) {
64
+ throw new Error("STSExpressControllerPlugin requires options");
65
+ }
66
+ if (this.server.GetServerType() !== "EXPRESS") {
67
+ throw new Error(`STSExpressControllerPlugin: Server type: ` +
68
+ `[${this.server.GetServerType()}] ` +
69
+ `must be an express server`);
70
+ }
71
+ if (!options.registrations || options.registrations.length === 0) {
72
+ throw new Error("STSExpressControllerPlugin requires at least one registration");
73
+ }
74
+ const expressServer = this.server;
75
+ this.#Register(injector, expressServer, options.registrations);
32
76
  injector.register({
33
77
  provide: STSExpressControllerPluginToken,
34
78
  useValue: this.expressController,
35
79
  });
36
80
  };
37
81
  Start = async () => {
38
- this.logger.info(`${process.pid} STSExpressControllerPlugin: Start() Starting ...`);
39
- this.logger.info(`${process.pid} STSExpressControllerPlugin: Start() Started`);
82
+ this.logger.info(`${process.pid} ` +
83
+ `STSExpressControllerPlugin: Start() Starting ...`);
84
+ this.logger.info(`${process.pid} ` + `STSExpressControllerPlugin: Start() Started`);
40
85
  };
41
86
  Stop = async () => {
42
- this.logger.info(`${process.pid} STSServerPlugin: Stop() Stopping ...`);
43
- this.logger.info(`${process.pid} STSServerPlugin: Stop() Stopped`);
87
+ this.logger.info(`${process.pid} ` +
88
+ `STSExpressControllerPlugin: Stop() Stopping ...`);
89
+ this.logger.info(`${process.pid} ` + `STSExpressControllerPlugin: Stop() Stopped`);
44
90
  };
45
91
  }
46
92
  //# sourceMappingURL=stsexpresscontrollerplugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stsexpresscontrollerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,uDAAuD;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAY,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,OAA2B,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,+BAA+B,GACxC,IAAI,cAAc,CAAwB,gCAAgC,CAAC,CAAC;AAYhF,aAAa;AACb,MAAM,OAAO,0BAA0B;IAClB,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtC,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEtC,iBAAiB,GAA0B,EAAE,CAAC;IAE/D,sBAAsB,GAAG,CACrB,QAAkB,EAClB,OAAuB,EACT,EAAE;QAChB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACtB,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,GAAG,CACN,QAAkB,EAClB,OAA4C,EACxC,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACX,6CAA6C,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,6BAA6B,CACxG,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CACjD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;QACA,IAAI,CAAC,MAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9C,QAAQ,CAAC,QAAQ,CAAC;YACd,OAAO,EAAE,+BAA+B;YACxC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;SACnC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,KAAK,GAAG,KAAK,IAAI,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,mDAAmD,CACpE,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,8CAA8C,CAC/D,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAI,EAAE;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,uCAAuC,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,kCAAkC,CAAC,CAAC;IACvE,CAAC,CAAC;CACL"}
1
+ {"version":3,"file":"stsexpresscontrollerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "4.0.6",
3
+ "version": "4.0.8",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,2 +1,9 @@
1
- export {};
1
+ import { Router } from "express";
2
+ export interface ISTSExpressRouter {
3
+ router: Router;
4
+ }
5
+ export declare class STSResourceRoute implements ISTSExpressRouter {
6
+ readonly router: import("express-serve-static-core").Router;
7
+ constructor();
8
+ }
2
9
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/exampleapp/app.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/exampleapp/app.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAkB,MAAM,SAAS,CAAC;AAgGjD,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,QAAQ,CAAC,MAAM,6CAAY;;CAK9B"}
@@ -1,15 +1,49 @@
1
1
 
2
- import { InjectionToken } from "@nsshunt/stsutils";
2
+ import { RequestHandler, Router } from "express";
3
+ import { InjectionToken, Injector } from "@nsshunt/stsutils";
3
4
  import { IPlugin } from "./../commonTypes.js";
4
- import { Injector } from "@nsshunt/stsutils";
5
- import { RequestHandler } from "express";
6
5
  export declare const STSExpressControllerPluginToken: InjectionToken<ISTSExpressController>;
6
+ export type STSExpressRouteMethod = "get" | "post" | "put" | "patch" | "delete";
7
+ export interface ISTSExpressRouter {
8
+ router: Router;
9
+ }
10
+ export type STSExpressRouterConstructor<T extends ISTSExpressRouter = ISTSExpressRouter> = new () => T;
11
+ /**
12
+ * Declarative route definitions.
13
+ *
14
+ * Maintained for simple controller registrations where a
15
+ * dedicated Router class is not required.
16
+ */
17
+ export interface ISTSExpressRouteDefinition {
18
+ type: "route";
19
+ method: STSExpressRouteMethod;
20
+ mountPath: string;
21
+ handlers: RequestHandler[];
22
+ }
23
+ /**
24
+ * Router classes created inside the plugin injection context.
25
+ *
26
+ * Example:
27
+ *
28
+ * routers: [
29
+ * {
30
+ * router: STSResourceRoute,
31
+ * mountPath: "/api/v1",
32
+ * },
33
+ * {
34
+ * router: STSHealthRoute,
35
+ * mountPath: "/",
36
+ * },
37
+ * ]
38
+ */
39
+ export interface ISTSExpressRouterDefinition {
40
+ type: "router";
41
+ router: STSExpressRouterConstructor;
42
+ mountPath?: string;
43
+ }
44
+ export type ISTSExpressControllerRegistration = ISTSExpressRouteDefinition | ISTSExpressRouterDefinition;
7
45
  export interface ISTSExpressControllerPluginOptions {
8
- routes: {
9
- method: "get" | "post" | "put" | "patch" | "delete";
10
- mountPath: string;
11
- handlers: RequestHandler[];
12
- }[];
46
+ registrations: ISTSExpressControllerRegistration[];
13
47
  }
14
48
  export interface ISTSExpressController {
15
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stsexpresscontrollerplugin.d.ts","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAU,MAAM,mBAAmB,CAAC;AAOrD,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,+BAA+B,uCACmC,CAAC;AAEhF,MAAM,WAAW,kCAAkC;IAC/C,MAAM,EAAE;QACJ,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;KAC9B,EAAE,CAAC;CACP;AAED,MAAM,WAAW,qBAAqB;CAAG;AAGzC,qBAAa,0BAA2B,YAAW,OAAO,CAAC,kCAAkC,CAAC;;IAC1F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAW/D,OAAO,GACH,UAAU,QAAQ,EAClB,UAAU,kCAAkC,KAC7C,IAAI,CAyBL;IAEF,KAAK,sBAOH;IAEF,IAAI,sBAGF;CACL"}
1
+ {"version":3,"file":"stsexpresscontrollerplugin.d.ts","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":";AAGA,OAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAU,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO9C,eAAO,MAAM,+BAA+B,uCACmC,CAAC;AAEhF,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,2BAA2B,CACnC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IAC/C,UAAU,CAAC,CAAC;AAEhB;;;;;GAKG;AAEH,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,2BAA2B;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,2BAA2B,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,iCAAiC,GACvC,0BAA0B,GAC1B,2BAA2B,CAAC;AAElC,MAAM,WAAW,kCAAkC;IAC/C,aAAa,EAAE,iCAAiC,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,qBAAqB;CAAG;AAEzC,qBAAa,0BAA2B,YAAW,OAAO,CAAC,kCAAkC,CAAC;;IAC1F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAqG/D,OAAO,GACH,UAAU,QAAQ,EAClB,UAAU,kCAAkC,KAC7C,IAAI,CA2BL;IAEF,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAS7B;IAEF,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAS5B;CACL"}