@nmshd/typescript-rest 3.0.5

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.
Files changed (62) hide show
  1. package/.ci/runChecks.sh +7 -0
  2. package/.eslintrc.js +226 -0
  3. package/.github/dependabot.yml +27 -0
  4. package/.github/workflows/publish.yml +33 -0
  5. package/.github/workflows/test.yml +31 -0
  6. package/.prettierrc +27 -0
  7. package/.vscode/settings.json +31 -0
  8. package/LICENSE +22 -0
  9. package/README.md +128 -0
  10. package/dist/decorators/methods.d.ts +165 -0
  11. package/dist/decorators/methods.js +263 -0
  12. package/dist/decorators/methods.js.map +1 -0
  13. package/dist/decorators/parameters.d.ts +295 -0
  14. package/dist/decorators/parameters.js +423 -0
  15. package/dist/decorators/parameters.js.map +1 -0
  16. package/dist/decorators/services.d.ts +199 -0
  17. package/dist/decorators/services.js +367 -0
  18. package/dist/decorators/services.js.map +1 -0
  19. package/dist/server/config.d.ts +4 -0
  20. package/dist/server/config.js +43 -0
  21. package/dist/server/config.js.map +1 -0
  22. package/dist/server/model/errors.d.ts +111 -0
  23. package/dist/server/model/errors.js +178 -0
  24. package/dist/server/model/errors.js.map +1 -0
  25. package/dist/server/model/metadata.d.ts +91 -0
  26. package/dist/server/model/metadata.js +80 -0
  27. package/dist/server/model/metadata.js.map +1 -0
  28. package/dist/server/model/return-types.d.ts +86 -0
  29. package/dist/server/model/return-types.js +110 -0
  30. package/dist/server/model/return-types.js.map +1 -0
  31. package/dist/server/model/server-types.d.ts +118 -0
  32. package/dist/server/model/server-types.js +47 -0
  33. package/dist/server/model/server-types.js.map +1 -0
  34. package/dist/server/parameter-processor.d.ts +13 -0
  35. package/dist/server/parameter-processor.js +84 -0
  36. package/dist/server/parameter-processor.js.map +1 -0
  37. package/dist/server/server-container.d.ts +55 -0
  38. package/dist/server/server-container.js +432 -0
  39. package/dist/server/server-container.js.map +1 -0
  40. package/dist/server/server.d.ts +136 -0
  41. package/dist/server/server.js +278 -0
  42. package/dist/server/server.js.map +1 -0
  43. package/dist/server/service-invoker.d.ts +28 -0
  44. package/dist/server/service-invoker.js +270 -0
  45. package/dist/server/service-invoker.js.map +1 -0
  46. package/dist/typescript-rest.d.ts +9 -0
  47. package/dist/typescript-rest.js +31 -0
  48. package/dist/typescript-rest.js.map +1 -0
  49. package/package.json +113 -0
  50. package/src/decorators/methods.ts +279 -0
  51. package/src/decorators/parameters.ts +442 -0
  52. package/src/decorators/services.ts +390 -0
  53. package/src/server/config.ts +40 -0
  54. package/src/server/model/errors.ts +178 -0
  55. package/src/server/model/metadata.ts +118 -0
  56. package/src/server/model/return-types.ts +109 -0
  57. package/src/server/model/server-types.ts +130 -0
  58. package/src/server/parameter-processor.ts +105 -0
  59. package/src/server/server-container.ts +504 -0
  60. package/src/server/server.ts +340 -0
  61. package/src/server/service-invoker.ts +266 -0
  62. package/src/typescript-rest.ts +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-container.js","sourceRoot":"","sources":["../../src/server/server-container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import * as express from 'express';
2
+ import 'multer';
3
+ import { FileLimits, HttpMethod, ParameterConverter, ServiceAuthenticator, ServiceFactory } from './model/server-types';
4
+ /**
5
+ * The Http server main class.
6
+ */
7
+ export declare class Server {
8
+ /**
9
+ * Create the routes for all classes decorated with our decorators
10
+ */
11
+ static buildServices(router: express.Router, ...types: Array<any>): void;
12
+ /**
13
+ * An alias for Server.loadServices()
14
+ */
15
+ static loadControllers(router: express.Router, patterns: string | Array<string>, baseDir?: string): void;
16
+ /**
17
+ * Load all services from the files that matches the patterns provided
18
+ */
19
+ static loadServices(router: express.Router, patterns: string | Array<string>, baseDir?: string): void;
20
+ /**
21
+ * Makes the server immutable. Any configuration change request to the Server
22
+ * is ignored when immutable is true
23
+ * @param value true to make immutable
24
+ */
25
+ static immutable(value: boolean): void;
26
+ /**
27
+ * Return true if the server is immutable. Any configuration change request to the Server
28
+ * is ignored when immutable is true
29
+ */
30
+ static isImmutable(): boolean;
31
+ /**
32
+ * Retrieve the express router that serves the rest endpoints
33
+ */
34
+ static server(): express.Router;
35
+ /**
36
+ * Return all paths accepted by the Server
37
+ */
38
+ static getPaths(): Array<string>;
39
+ /**
40
+ * Register a custom serviceFactory. It will be used to instantiate the service Objects
41
+ * If You plan to use a custom serviceFactory, You must ensure to call this method before any typescript-rest service declaration.
42
+ */
43
+ static registerServiceFactory(serviceFactory: ServiceFactory | string): void;
44
+ /**
45
+ * Register a service authenticator. It will be used to authenticate users before the service method
46
+ * invocations occurs.
47
+ */
48
+ static registerAuthenticator(authenticator: ServiceAuthenticator, name?: string): void;
49
+ /**
50
+ * Return the set oh HTTP verbs configured for the given path
51
+ * @param servicePath The path to search HTTP verbs
52
+ */
53
+ static getHttpMethods(servicePath: string): Array<HttpMethod>;
54
+ /**
55
+ * A string used for signing cookies. This is optional and if not specified,
56
+ * will not parse signed cookies.
57
+ * @param secret the secret used to sign
58
+ */
59
+ static setCookiesSecret(secret: string): void;
60
+ /**
61
+ * Specifies a function that will be used to decode a cookie's value.
62
+ * This function can be used to decode a previously-encoded cookie value
63
+ * into a JavaScript string.
64
+ * The default function is the global decodeURIComponent, which will decode
65
+ * any URL-encoded sequences into their byte representations.
66
+ *
67
+ * NOTE: if an error is thrown from this function, the original, non-decoded
68
+ * cookie value will be returned as the cookie's value.
69
+ * @param decoder The decoder function
70
+ */
71
+ static setCookiesDecoder(decoder: (val: string) => string): void;
72
+ /**
73
+ * Set where to store the uploaded files
74
+ * @param dest Destination folder
75
+ */
76
+ static setFileDest(dest: string): void;
77
+ /**
78
+ * Set a Function to control which files are accepted to upload
79
+ * @param filter The filter function
80
+ */
81
+ static setFileFilter(filter: (req: Express.Request, file: Express.Multer.File, callback: (error: Error, acceptFile: boolean) => void) => void): void;
82
+ /**
83
+ * Set the limits of uploaded data
84
+ * @param limit The data limit
85
+ */
86
+ static setFileLimits(limit: FileLimits): void;
87
+ /**
88
+ * Adds a converter for param values to have an ability to intercept the type that actually will be passed to service
89
+ * @param converter The converter
90
+ * @param type The target type that needs to be converted
91
+ */
92
+ static addParameterConverter(converter: ParameterConverter, type: Function): void;
93
+ /**
94
+ * Remove the converter associated with the given type.
95
+ * @param type The target type that needs to be converted
96
+ */
97
+ static removeParameterConverter(type: Function): void;
98
+ /**
99
+ * Makes the server ignore next middlewares for all endpoints.
100
+ * It has the same effect than add @IgnoreNextMiddlewares to all
101
+ * services.
102
+ * @param value - true to ignore next middlewares.
103
+ */
104
+ static ignoreNextMiddlewares(value: boolean): void;
105
+ /**
106
+ * Creates and endpoint to publish the swagger documentation.
107
+ * @param router Express router
108
+ * @param options Options for swagger endpoint
109
+ */
110
+ static swagger(router: express.Router, options?: SwaggerOptions): void;
111
+ private static locked;
112
+ private static loadSwaggerDocument;
113
+ private static getOptions;
114
+ }
115
+ export interface SwaggerOptions {
116
+ /**
117
+ * The path to a swagger file (json or yaml)
118
+ */
119
+ filePath?: string;
120
+ /**
121
+ * Where to publish the docs
122
+ */
123
+ endpoint?: string;
124
+ /**
125
+ * The hostname of the service
126
+ */
127
+ host?: string;
128
+ /**
129
+ * The schemes used by the server
130
+ */
131
+ schemes?: Array<string>;
132
+ /**
133
+ * Options to send to swagger-ui
134
+ */
135
+ swaggerUiOptions?: object;
136
+ }
@@ -0,0 +1,278 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Server = void 0;
4
+ const debug = require("debug");
5
+ const fs = require("fs-extra");
6
+ const _ = require("lodash");
7
+ require("multer");
8
+ const path = require("path");
9
+ const YAML = require("yamljs");
10
+ const server_container_1 = require("./server-container");
11
+ const serverDebugger = debug('typescript-rest:server:build');
12
+ /**
13
+ * The Http server main class.
14
+ */
15
+ class Server {
16
+ /**
17
+ * Create the routes for all classes decorated with our decorators
18
+ */
19
+ static buildServices(router, ...types) {
20
+ if (!Server.locked) {
21
+ serverDebugger('Creating typescript-rest services handlers');
22
+ const serverContainer = server_container_1.ServerContainer.get();
23
+ serverContainer.router = router;
24
+ serverContainer.buildServices(types);
25
+ }
26
+ }
27
+ /**
28
+ * An alias for Server.loadServices()
29
+ */
30
+ static loadControllers(router, patterns, baseDir) {
31
+ Server.loadServices(router, patterns, baseDir);
32
+ }
33
+ /**
34
+ * Load all services from the files that matches the patterns provided
35
+ */
36
+ static loadServices(router, patterns, baseDir) {
37
+ if (!Server.locked) {
38
+ serverDebugger('Loading typescript-rest services %j. BaseDir: %s', patterns, baseDir);
39
+ const importedTypes = [];
40
+ const requireGlob = require('require-glob');
41
+ baseDir = baseDir || process.cwd();
42
+ const loadedModules = requireGlob.sync(patterns, {
43
+ cwd: baseDir
44
+ });
45
+ _.values(loadedModules).forEach((serviceModule) => {
46
+ _.values(serviceModule)
47
+ .filter((service) => typeof service === 'function')
48
+ .forEach((service) => {
49
+ importedTypes.push(service);
50
+ });
51
+ });
52
+ try {
53
+ Server.buildServices(router, ...importedTypes);
54
+ }
55
+ catch (e) {
56
+ serverDebugger('Error loading services for pattern: %j. Error: %o', patterns, e);
57
+ serverDebugger('ImportedTypes: %o', importedTypes);
58
+ throw new TypeError(`Error loading services for pattern: ${JSON.stringify(patterns)}. Error: ${e.message}`);
59
+ }
60
+ }
61
+ }
62
+ /**
63
+ * Makes the server immutable. Any configuration change request to the Server
64
+ * is ignored when immutable is true
65
+ * @param value true to make immutable
66
+ */
67
+ static immutable(value) {
68
+ Server.locked = value;
69
+ }
70
+ /**
71
+ * Return true if the server is immutable. Any configuration change request to the Server
72
+ * is ignored when immutable is true
73
+ */
74
+ static isImmutable() {
75
+ return Server.locked;
76
+ }
77
+ /**
78
+ * Retrieve the express router that serves the rest endpoints
79
+ */
80
+ static server() {
81
+ return server_container_1.ServerContainer.get().router;
82
+ }
83
+ /**
84
+ * Return all paths accepted by the Server
85
+ */
86
+ static getPaths() {
87
+ const result = new Array();
88
+ server_container_1.ServerContainer.get()
89
+ .getPaths()
90
+ .forEach((value) => {
91
+ result.push(value);
92
+ });
93
+ return result;
94
+ }
95
+ /**
96
+ * Register a custom serviceFactory. It will be used to instantiate the service Objects
97
+ * If You plan to use a custom serviceFactory, You must ensure to call this method before any typescript-rest service declaration.
98
+ */
99
+ static registerServiceFactory(serviceFactory) {
100
+ if (!Server.locked) {
101
+ let factory;
102
+ if (typeof serviceFactory === 'string') {
103
+ const mod = require(serviceFactory);
104
+ factory = mod.default ? mod.default : mod;
105
+ }
106
+ else {
107
+ factory = serviceFactory;
108
+ }
109
+ serverDebugger('Registering a new serviceFactory');
110
+ server_container_1.ServerContainer.get().serviceFactory = factory;
111
+ }
112
+ }
113
+ /**
114
+ * Register a service authenticator. It will be used to authenticate users before the service method
115
+ * invocations occurs.
116
+ */
117
+ static registerAuthenticator(authenticator, name = 'default') {
118
+ if (!Server.locked) {
119
+ serverDebugger('Registering a new authenticator with name %s', name);
120
+ server_container_1.ServerContainer.get().authenticator.set(name, authenticator);
121
+ }
122
+ }
123
+ /**
124
+ * Return the set oh HTTP verbs configured for the given path
125
+ * @param servicePath The path to search HTTP verbs
126
+ */
127
+ static getHttpMethods(servicePath) {
128
+ const result = new Array();
129
+ server_container_1.ServerContainer.get()
130
+ .getHttpMethods(servicePath)
131
+ .forEach((value) => {
132
+ result.push(value);
133
+ });
134
+ return result;
135
+ }
136
+ /**
137
+ * A string used for signing cookies. This is optional and if not specified,
138
+ * will not parse signed cookies.
139
+ * @param secret the secret used to sign
140
+ */
141
+ static setCookiesSecret(secret) {
142
+ if (!Server.locked) {
143
+ serverDebugger('Setting a new secret for cookies: %s', secret);
144
+ server_container_1.ServerContainer.get().cookiesSecret = secret;
145
+ }
146
+ }
147
+ /**
148
+ * Specifies a function that will be used to decode a cookie's value.
149
+ * This function can be used to decode a previously-encoded cookie value
150
+ * into a JavaScript string.
151
+ * The default function is the global decodeURIComponent, which will decode
152
+ * any URL-encoded sequences into their byte representations.
153
+ *
154
+ * NOTE: if an error is thrown from this function, the original, non-decoded
155
+ * cookie value will be returned as the cookie's value.
156
+ * @param decoder The decoder function
157
+ */
158
+ static setCookiesDecoder(decoder) {
159
+ if (!Server.locked) {
160
+ serverDebugger('Setting a new secret decoder');
161
+ server_container_1.ServerContainer.get().cookiesDecoder = decoder;
162
+ }
163
+ }
164
+ /**
165
+ * Set where to store the uploaded files
166
+ * @param dest Destination folder
167
+ */
168
+ static setFileDest(dest) {
169
+ if (!Server.locked) {
170
+ serverDebugger('Setting a new destination for files: %s', dest);
171
+ server_container_1.ServerContainer.get().fileDest = dest;
172
+ }
173
+ }
174
+ /**
175
+ * Set a Function to control which files are accepted to upload
176
+ * @param filter The filter function
177
+ */
178
+ static setFileFilter(filter) {
179
+ if (!Server.locked) {
180
+ serverDebugger('Setting a new filter for files');
181
+ server_container_1.ServerContainer.get().fileFilter = filter;
182
+ }
183
+ }
184
+ /**
185
+ * Set the limits of uploaded data
186
+ * @param limit The data limit
187
+ */
188
+ static setFileLimits(limit) {
189
+ if (!Server.locked) {
190
+ serverDebugger('Setting a new fileLimits: %j', limit);
191
+ server_container_1.ServerContainer.get().fileLimits = limit;
192
+ }
193
+ }
194
+ /**
195
+ * Adds a converter for param values to have an ability to intercept the type that actually will be passed to service
196
+ * @param converter The converter
197
+ * @param type The target type that needs to be converted
198
+ */
199
+ static addParameterConverter(converter, type) {
200
+ if (!Server.locked) {
201
+ serverDebugger('Adding a new parameter converter');
202
+ server_container_1.ServerContainer.get().paramConverters.set(type, converter);
203
+ }
204
+ }
205
+ /**
206
+ * Remove the converter associated with the given type.
207
+ * @param type The target type that needs to be converted
208
+ */
209
+ static removeParameterConverter(type) {
210
+ if (!Server.locked) {
211
+ serverDebugger('Removing a parameter converter');
212
+ server_container_1.ServerContainer.get().paramConverters.delete(type);
213
+ }
214
+ }
215
+ /**
216
+ * Makes the server ignore next middlewares for all endpoints.
217
+ * It has the same effect than add @IgnoreNextMiddlewares to all
218
+ * services.
219
+ * @param value - true to ignore next middlewares.
220
+ */
221
+ static ignoreNextMiddlewares(value) {
222
+ if (!Server.locked) {
223
+ serverDebugger('Ignoring next middlewares: %b', value);
224
+ server_container_1.ServerContainer.get().ignoreNextMiddlewares = value;
225
+ }
226
+ }
227
+ /**
228
+ * Creates and endpoint to publish the swagger documentation.
229
+ * @param router Express router
230
+ * @param options Options for swagger endpoint
231
+ */
232
+ static swagger(router, options) {
233
+ if (!Server.locked) {
234
+ const swaggerUi = require('swagger-ui-express');
235
+ options = Server.getOptions(options);
236
+ serverDebugger('Configuring open api documentation endpoints for options: %j', options);
237
+ const swaggerDocument = Server.loadSwaggerDocument(options);
238
+ if (options.host) {
239
+ swaggerDocument.host = options.host;
240
+ }
241
+ if (options.schemes) {
242
+ swaggerDocument.schemes = options.schemes;
243
+ }
244
+ router.get(path.posix.join('/', options.endpoint, 'json'), (req, res) => {
245
+ res.send(swaggerDocument);
246
+ });
247
+ router.get(path.posix.join('/', options.endpoint, 'yaml'), (req, res) => {
248
+ res.set('Content-Type', 'text/vnd.yaml');
249
+ res.send(YAML.stringify(swaggerDocument, 1000));
250
+ });
251
+ router.use(path.posix.join('/', options.endpoint), swaggerUi.serve, swaggerUi.setup(swaggerDocument, options.swaggerUiOptions));
252
+ }
253
+ }
254
+ static loadSwaggerDocument(options) {
255
+ let swaggerDocument;
256
+ if (_.endsWith(options.filePath, '.yml') || _.endsWith(options.filePath, '.yaml')) {
257
+ swaggerDocument = YAML.load(options.filePath);
258
+ }
259
+ else {
260
+ swaggerDocument = fs.readJSONSync(options.filePath);
261
+ }
262
+ serverDebugger('Loaded swagger configurations: %j', swaggerDocument);
263
+ return swaggerDocument;
264
+ }
265
+ static getOptions(options) {
266
+ options = _.defaults(options, {
267
+ endpoint: 'api-docs',
268
+ filePath: './swagger.json'
269
+ });
270
+ if (_.startsWith(options.filePath, '.')) {
271
+ options.filePath = path.join(process.cwd(), options.filePath);
272
+ }
273
+ return options;
274
+ }
275
+ }
276
+ exports.Server = Server;
277
+ Server.locked = false;
278
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ServiceClass, ServiceMethod } from './model/metadata';
2
+ import { ServiceContext } from './model/server-types';
3
+ export declare class ServiceInvoker {
4
+ private serviceClass;
5
+ private serviceMethod;
6
+ private preProcessors;
7
+ private postProcessors;
8
+ private debugger;
9
+ constructor(serviceClass: ServiceClass, serviceMethod: ServiceMethod);
10
+ callService(context: ServiceContext): Promise<void>;
11
+ private mustCallNext;
12
+ private runPreProcessors;
13
+ private runPostProcessors;
14
+ private callTargetEndPoint;
15
+ private getMethodToCall;
16
+ private checkAcceptance;
17
+ private identifyAcceptedLanguage;
18
+ private identifyAcceptedType;
19
+ private createService;
20
+ private buildArgumentsList;
21
+ private processParameter;
22
+ private processResponseHeaders;
23
+ private sendValue;
24
+ private sendComplexValue;
25
+ private sendReferencedResource;
26
+ private sendFile;
27
+ private downloadResToPromise;
28
+ }