@nsshunt/stsappframework 4.0.6 → 4.0.7
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/exampleapp/app.js +29 -13
- package/dist/exampleapp/app.js.map +1 -1
- package/dist/plugins/stsexpresscontrollerplugin.js +42 -15
- package/dist/plugins/stsexpresscontrollerplugin.js.map +1 -1
- package/package.json +1 -1
- package/types/exampleapp/app.d.ts +8 -1
- package/types/exampleapp/app.d.ts.map +1 -1
- package/types/plugins/stsexpresscontrollerplugin.d.ts +40 -8
- package/types/plugins/stsexpresscontrollerplugin.d.ts.map +1 -1
package/dist/exampleapp/app.js
CHANGED
|
@@ -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), {
|
|
214
|
+
routers: [
|
|
215
|
+
{
|
|
216
|
+
router: STSResourceRoute,
|
|
217
|
+
mountPath: goptions.rest01apiroot,
|
|
218
|
+
},
|
|
219
|
+
],
|
|
207
220
|
routes: [
|
|
208
221
|
{
|
|
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;
|
|
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
|
|
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,60 @@ export class STSExpressControllerPlugin {
|
|
|
16
14
|
return injector.runInContext(() => handler(req, res, next));
|
|
17
15
|
};
|
|
18
16
|
};
|
|
17
|
+
#RegisterRouters = (injector, expressServer, routers) => {
|
|
18
|
+
for (const routerDefinition of routers) {
|
|
19
|
+
const routerInstance = injector.runInContext(() => new routerDefinition.router());
|
|
20
|
+
if (routerDefinition.mountPath) {
|
|
21
|
+
const router = express.Router();
|
|
22
|
+
router.use(routerDefinition.mountPath, routerInstance.router);
|
|
23
|
+
expressServer.Use(router);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
expressServer.Use(routerInstance.router);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
#RegisterRoutes = (injector, expressServer, routes) => {
|
|
30
|
+
const router = express.Router();
|
|
31
|
+
for (const route of routes) {
|
|
32
|
+
const handlers = route.handlers.map((handler) => this.#RunInInjectionContext(injector, handler));
|
|
33
|
+
router[route.method](route.mountPath, ...handlers);
|
|
34
|
+
}
|
|
35
|
+
expressServer.Use(router);
|
|
36
|
+
};
|
|
19
37
|
install = (injector, options) => {
|
|
20
38
|
if (!options) {
|
|
21
39
|
throw new Error("STSExpressControllerPlugin requires options");
|
|
22
40
|
}
|
|
23
|
-
if (
|
|
24
|
-
throw new Error(`STSExpressControllerPlugin: Server type:
|
|
41
|
+
if (this.server.GetServerType() !== "EXPRESS") {
|
|
42
|
+
throw new Error(`STSExpressControllerPlugin: Server type: ` +
|
|
43
|
+
`[${this.server.GetServerType()}] ` +
|
|
44
|
+
`must be an express server`);
|
|
25
45
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
46
|
+
if ((!options.routers || options.routers.length === 0) &&
|
|
47
|
+
(!options.routes || options.routes.length === 0)) {
|
|
48
|
+
throw new Error("STSExpressControllerPlugin requires at least one router or route");
|
|
49
|
+
}
|
|
50
|
+
const expressServer = this.server;
|
|
51
|
+
if (options.routers?.length) {
|
|
52
|
+
this.#RegisterRouters(injector, expressServer, options.routers);
|
|
53
|
+
}
|
|
54
|
+
if (options.routes?.length) {
|
|
55
|
+
this.#RegisterRoutes(injector, expressServer, options.routes);
|
|
30
56
|
}
|
|
31
|
-
this.server.Use(router);
|
|
32
57
|
injector.register({
|
|
33
58
|
provide: STSExpressControllerPluginToken,
|
|
34
59
|
useValue: this.expressController,
|
|
35
60
|
});
|
|
36
61
|
};
|
|
37
62
|
Start = async () => {
|
|
38
|
-
this.logger.info(`${process.pid}
|
|
39
|
-
|
|
63
|
+
this.logger.info(`${process.pid} ` +
|
|
64
|
+
`STSExpressControllerPlugin: Start() Starting ...`);
|
|
65
|
+
this.logger.info(`${process.pid} ` + `STSExpressControllerPlugin: Start() Started`);
|
|
40
66
|
};
|
|
41
67
|
Stop = async () => {
|
|
42
|
-
this.logger.info(`${process.pid}
|
|
43
|
-
|
|
68
|
+
this.logger.info(`${process.pid} ` +
|
|
69
|
+
`STSExpressControllerPlugin: Stop() Stopping ...`);
|
|
70
|
+
this.logger.info(`${process.pid} ` + `STSExpressControllerPlugin: Stop() Stopped`);
|
|
44
71
|
};
|
|
45
72
|
}
|
|
46
73
|
//# 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,
|
|
1
|
+
{"version":3,"file":"stsexpresscontrollerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
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,47 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
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
|
+
export interface ISTSExpressRouterDefinition {
|
|
12
|
+
router: STSExpressRouterConstructor;
|
|
13
|
+
mountPath?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ISTSExpressRouteDefinition {
|
|
16
|
+
method: STSExpressRouteMethod;
|
|
17
|
+
mountPath: string;
|
|
18
|
+
handlers: RequestHandler[];
|
|
19
|
+
}
|
|
7
20
|
export interface ISTSExpressControllerPluginOptions {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Router classes created inside the plugin injection context.
|
|
23
|
+
*
|
|
24
|
+
* Example:
|
|
25
|
+
*
|
|
26
|
+
* routers: [
|
|
27
|
+
* {
|
|
28
|
+
* router: STSResourceRoute,
|
|
29
|
+
* mountPath: "/api/v1",
|
|
30
|
+
* },
|
|
31
|
+
* {
|
|
32
|
+
* router: STSHealthRoute,
|
|
33
|
+
* mountPath: "/",
|
|
34
|
+
* },
|
|
35
|
+
* ]
|
|
36
|
+
*/
|
|
37
|
+
routers?: ISTSExpressRouterDefinition[];
|
|
38
|
+
/**
|
|
39
|
+
* Declarative route definitions.
|
|
40
|
+
*
|
|
41
|
+
* Maintained for simple controller registrations where a
|
|
42
|
+
* dedicated Router class is not required.
|
|
43
|
+
*/
|
|
44
|
+
routes?: ISTSExpressRouteDefinition[];
|
|
13
45
|
}
|
|
14
46
|
export interface ISTSExpressController {
|
|
15
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stsexpresscontrollerplugin.d.ts","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":";AAGA,
|
|
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,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,2BAA2B,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kCAAkC;IAC/C;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAExC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,0BAA0B,EAAE,CAAC;CACzC;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;IAqD/D,OAAO,GACH,UAAU,QAAQ,EAClB,UAAU,kCAAkC,KAC7C,IAAI,CAoCL;IAEF,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAS7B;IAEF,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAS5B;CACL"}
|