@expressots/core 2.1.0 → 2.2.0
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/CHANGELOG.md +30 -5
- package/lib/cjs/middleware/interfaces/serve-favicon.interface.js +2 -0
- package/lib/cjs/middleware/middleware-resolver.js +1 -0
- package/lib/cjs/middleware/middleware-service.js +94 -17
- package/lib/cjs/types/middleware/index.d.ts +1 -0
- package/lib/cjs/types/middleware/index.d.ts.map +1 -1
- package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts +12 -0
- package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts.map +1 -0
- package/lib/cjs/types/middleware/middleware-resolver.d.ts.map +1 -1
- package/lib/cjs/types/middleware/middleware-service.d.ts +64 -7
- package/lib/cjs/types/middleware/middleware-service.d.ts.map +1 -1
- package/lib/esm/middleware/interfaces/serve-favicon.interface.js +2 -0
- package/lib/esm/middleware/middleware-resolver.js +1 -0
- package/lib/esm/middleware/middleware-service.js +91 -17
- package/lib/esm/types/middleware/index.d.ts +1 -0
- package/lib/esm/types/middleware/index.d.ts.map +1 -1
- package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts +12 -0
- package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts.map +1 -0
- package/lib/esm/types/middleware/middleware-resolver.d.ts.map +1 -1
- package/lib/esm/types/middleware/middleware-service.d.ts +64 -7
- package/lib/esm/types/middleware/middleware-service.d.ts.map +1 -1
- package/lib/package.json +10 -8
- package/package.json +10 -8
package/lib/CHANGELOG.md
CHANGED
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
## [2.
|
|
3
|
+
## [2.2.0](https://github.com/expressots/expressots/compare/2.1.0...2.2.0) (2023-09-21)
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
### Features
|
|
7
7
|
|
|
8
|
-
* add
|
|
9
|
-
* add
|
|
10
|
-
* add
|
|
11
|
-
* add cookie-session middleware ([60ac1fa](https://github.com/expressots/expressots/commit/60ac1fa36b2a8388983be0ab8f2d8a1696089d78))
|
|
8
|
+
* add middleware based routing ([3d7720e](https://github.com/expressots/expressots/commit/3d7720e21807117333d60e7f2b7bb01789b96060))
|
|
9
|
+
* add serve-favicon middleware ([024bdc4](https://github.com/expressots/expressots/commit/024bdc4d8d4f9890175975d052ca09c5b4e245cf))
|
|
10
|
+
* add serve-favicon middleware ([0733697](https://github.com/expressots/expressots/commit/0733697ed66a7133e60ec6fa09bdaeb0bf1985d7))
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
### Bug Fixes
|
|
15
14
|
|
|
15
|
+
* add chore message to pre-commit hook ([45ae428](https://github.com/expressots/expressots/commit/45ae428652bb6e4f49cb2a6334686be0dee3669d))
|
|
16
|
+
* add middleware validation based on path ([7035153](https://github.com/expressots/expressots/commit/7035153dededd3ca7c5159544f4ab79baee2c4d7))
|
|
17
|
+
* re-write cp, mv and rm improving performance ([68d68ad](https://github.com/expressots/expressots/commit/68d68ad11385ca783fa5c51e3092937a6f898ac6))
|
|
18
|
+
* update contribute_howto doc ([4bf6e12](https://github.com/expressots/expressots/commit/4bf6e121091e894a7675ff78959ab4647ec04f6d))
|
|
19
|
+
* update contribute_howto doc ([fbbe47d](https://github.com/expressots/expressots/commit/fbbe47d6df76211fadd736fab864aa41e0313ec9))
|
|
20
|
+
* update templates for v2 scaffold ([74811f3](https://github.com/expressots/expressots/commit/74811f3ac54610be7367de75f37363dc0c107dbc))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Build System
|
|
24
|
+
|
|
25
|
+
* **scripts:** add cross platform build scripts ([e6cecbc](https://github.com/expressots/expressots/commit/e6cecbc6b7a309f00aa6cd60f6d8207dc8d4c5cb))
|
|
26
|
+
* **scripts:** add cross platform build scripts ([8b5c133](https://github.com/expressots/expressots/commit/8b5c133e4e28d67b8a7edca5b04bfe04a6d12540))
|
|
27
|
+
|
|
28
|
+
## [2.1.0](https://github.com/expressots/expressots/compare/2.0.0...2.1.0) (2023-09-16)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* add cookie-parser middleware ([2fe9377](https://github.com/expressots/expressots/commit/2fe93776423355503211a0d96f2b1952e3bc6320))
|
|
34
|
+
* add cookie-parser middleware ([a53a0c2](https://github.com/expressots/expressots/commit/a53a0c2e23dafc188286cd0ff5a6145cf3416ad0))
|
|
35
|
+
* add cookie-session middleware ([323c2d3](https://github.com/expressots/expressots/commit/323c2d32c5e4a9c78f19fe47807f323139fb306a))
|
|
36
|
+
* add cookie-session middleware ([60ac1fa](https://github.com/expressots/expressots/commit/60ac1fa36b2a8388983be0ab8f2d8a1696089d78))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
16
41
|
* create folder for interface and print pck name instead of curated name ([2a47508](https://github.com/expressots/expressots/commit/2a47508f5170950ddd8b471fffc8d43a8fb57e32))
|
|
17
42
|
|
|
18
43
|
## [2.0.0](https://github.com/expressots/expressots/compare/1.9.1...2.0.0) (2023-09-14)
|
|
@@ -25,7 +25,7 @@ const middleware_resolver_1 = require("./middleware-resolver");
|
|
|
25
25
|
*/
|
|
26
26
|
let Middleware = Middleware_1 = class Middleware {
|
|
27
27
|
constructor() {
|
|
28
|
-
this.
|
|
28
|
+
this.middlewarePipeline = [];
|
|
29
29
|
this.logger = new logger_service_1.Logger();
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
@@ -36,8 +36,12 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
36
36
|
* @returns A boolean value indicating whether the middleware exists or not.
|
|
37
37
|
*/
|
|
38
38
|
middlewareExists(middlewareName) {
|
|
39
|
-
const
|
|
40
|
-
|
|
39
|
+
const middlewareIndex = this.middlewarePipeline.findIndex((m) => {
|
|
40
|
+
var _a;
|
|
41
|
+
return typeof m.middleware === "object"
|
|
42
|
+
? m.middleware.middlewares.some((mw) => (mw === null || mw === void 0 ? void 0 : mw.name) === middlewareName)
|
|
43
|
+
: ((_a = m.middleware) === null || _a === void 0 ? void 0 : _a.name) === middlewareName;
|
|
44
|
+
});
|
|
41
45
|
return middlewareIndex !== -1;
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
@@ -51,7 +55,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
51
55
|
this.logger.warn(`[jsonParser] already exists. Skipping...`, "configure-service");
|
|
52
56
|
}
|
|
53
57
|
else {
|
|
54
|
-
this.
|
|
58
|
+
this.middlewarePipeline.push({
|
|
59
|
+
timestamp: new Date(),
|
|
60
|
+
middleware: express_1.default.json(options),
|
|
61
|
+
});
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
64
|
/**
|
|
@@ -63,7 +70,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
63
70
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("cors", options);
|
|
64
71
|
const middlewareExist = this.middlewareExists("cors");
|
|
65
72
|
if (middleware && !middlewareExist) {
|
|
66
|
-
this.
|
|
73
|
+
this.middlewarePipeline.push({
|
|
74
|
+
timestamp: new Date(),
|
|
75
|
+
middleware,
|
|
76
|
+
});
|
|
67
77
|
}
|
|
68
78
|
}
|
|
69
79
|
/**
|
|
@@ -75,7 +85,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
75
85
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("compression", options);
|
|
76
86
|
const middlewareExist = this.middlewareExists("compression");
|
|
77
87
|
if (middleware && !middlewareExist) {
|
|
78
|
-
this.
|
|
88
|
+
this.middlewarePipeline.push({
|
|
89
|
+
timestamp: new Date(),
|
|
90
|
+
middleware,
|
|
91
|
+
});
|
|
79
92
|
}
|
|
80
93
|
}
|
|
81
94
|
/**
|
|
@@ -88,7 +101,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
88
101
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("cookieParser", secret, options);
|
|
89
102
|
const middlewareExist = this.middlewareExists("cookieParser");
|
|
90
103
|
if (middleware && !middlewareExist) {
|
|
91
|
-
this.
|
|
104
|
+
this.middlewarePipeline.push({
|
|
105
|
+
timestamp: new Date(),
|
|
106
|
+
middleware,
|
|
107
|
+
});
|
|
92
108
|
}
|
|
93
109
|
}
|
|
94
110
|
/**
|
|
@@ -100,7 +116,27 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
100
116
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("cookieSession", options);
|
|
101
117
|
const middlewareExist = this.middlewareExists("cookieSession");
|
|
102
118
|
if (middleware && !middlewareExist) {
|
|
103
|
-
this.
|
|
119
|
+
this.middlewarePipeline.push({
|
|
120
|
+
timestamp: new Date(),
|
|
121
|
+
middleware,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Adds a middleware to serve the favicon to the middleware collection.
|
|
127
|
+
* The favicon is the icon that is displayed in the browser tab for the application.
|
|
128
|
+
*
|
|
129
|
+
* @param path - The path to the favicon file.
|
|
130
|
+
* @param options - Optional configuration options for serving the favicon. Defines the behavior of the favicon middleware like cache control, custom headers, etc.
|
|
131
|
+
*/
|
|
132
|
+
addServeFavicon(path, options) {
|
|
133
|
+
const middleware = (0, middleware_resolver_1.middlewareResolver)("serveFavicon", path, options);
|
|
134
|
+
const middlewareExist = this.middlewareExists("serveFavicon");
|
|
135
|
+
if (middleware && !middlewareExist) {
|
|
136
|
+
this.middlewarePipeline.push({
|
|
137
|
+
timestamp: new Date(),
|
|
138
|
+
middleware,
|
|
139
|
+
});
|
|
104
140
|
}
|
|
105
141
|
}
|
|
106
142
|
/**
|
|
@@ -129,7 +165,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
129
165
|
this.logger.warn(`[serveStatic] already exists. Skipping...`, "configure-service");
|
|
130
166
|
}
|
|
131
167
|
else {
|
|
132
|
-
this.
|
|
168
|
+
this.middlewarePipeline.push({
|
|
169
|
+
timestamp: new Date(),
|
|
170
|
+
middleware: express_1.default.static(root, options),
|
|
171
|
+
});
|
|
133
172
|
}
|
|
134
173
|
}
|
|
135
174
|
/**
|
|
@@ -138,22 +177,60 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
138
177
|
* @param middleware - The Express request handler function to be added to the middleware collection.
|
|
139
178
|
*
|
|
140
179
|
*/
|
|
141
|
-
addMiddleware(middleware) {
|
|
142
|
-
|
|
143
|
-
if (
|
|
144
|
-
|
|
180
|
+
addMiddleware(...middleware) {
|
|
181
|
+
let config;
|
|
182
|
+
if (typeof middleware[0] === "string") {
|
|
183
|
+
const [path, ...middlewares] = middleware;
|
|
184
|
+
config = {
|
|
185
|
+
path,
|
|
186
|
+
middlewares: middlewares,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
191
|
+
config = {
|
|
192
|
+
middlewares: middleware,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
if (config.path) {
|
|
196
|
+
// verify if middleware if path already exists
|
|
197
|
+
const middlewareIndex = this.middlewarePipeline.findIndex((m) => typeof m.middleware === "object" && m.middleware.path === config.path);
|
|
198
|
+
if (middlewareIndex !== -1) {
|
|
199
|
+
this.logger.warn(`[${config.path}] route already exists. Skipping...`, "configure-service");
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
this.middlewarePipeline.push({
|
|
203
|
+
timestamp: new Date(),
|
|
204
|
+
middleware: config,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
145
207
|
}
|
|
146
208
|
else {
|
|
147
|
-
|
|
209
|
+
config.middlewares.forEach((m) => {
|
|
210
|
+
const middlewareName = (m === null || m === void 0 ? void 0 : m.name) || "anonymous";
|
|
211
|
+
const middlewareExist = this.middlewareExists(middlewareName);
|
|
212
|
+
console.log(middlewareExist);
|
|
213
|
+
if (middlewareExist) {
|
|
214
|
+
this.logger.warn(`[${middlewareName}] already exists. Skipping...`, "configure-service");
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
this.middlewarePipeline.push({
|
|
218
|
+
timestamp: new Date(),
|
|
219
|
+
middleware: config,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
});
|
|
148
223
|
}
|
|
149
224
|
}
|
|
150
225
|
/**
|
|
151
|
-
* Retrieves
|
|
226
|
+
* Retrieves middleware pipeline in the order they were added.
|
|
152
227
|
*
|
|
153
228
|
* @returns An array of Express request handlers representing the middlewares.
|
|
154
229
|
*/
|
|
155
|
-
|
|
156
|
-
return this.
|
|
230
|
+
getMiddlewarePipeline() {
|
|
231
|
+
return this.middlewarePipeline.sort((a, b) => {
|
|
232
|
+
return a.timestamp.getTime() - b.timestamp.getTime();
|
|
233
|
+
});
|
|
157
234
|
}
|
|
158
235
|
/**
|
|
159
236
|
* Gets the configured error handler middleware.
|
|
@@ -5,4 +5,5 @@ export { CompressionOptions } from "./interfaces/compression.interface";
|
|
|
5
5
|
export { CookieSessionOptions } from "./interfaces/cookie-session/cookie-session.interface";
|
|
6
6
|
export { Keygrip } from "./interfaces/cookie-session/keygrip.interface";
|
|
7
7
|
export { CookieParserOptions } from "./interfaces/cookie-parser.interface";
|
|
8
|
+
export { ServeFaviconOptions } from "./interfaces/serve-favicon.interface";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServeFaviconOptions defines the available options for configuring the serve-favicon middleware.
|
|
3
|
+
*/
|
|
4
|
+
interface ServeFaviconOptions {
|
|
5
|
+
/**
|
|
6
|
+
* The cache-control max-age directive in ms, defaulting to 1 year.
|
|
7
|
+
* This can also be a string accepted by the `ms` module.
|
|
8
|
+
*/
|
|
9
|
+
maxAge?: number | string | undefined;
|
|
10
|
+
}
|
|
11
|
+
export { ServeFaviconOptions };
|
|
12
|
+
//# sourceMappingURL=serve-favicon.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-favicon.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/middleware/interfaces/serve-favicon.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,UAAU,mBAAmB;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-resolver.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-resolver.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware-resolver.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-resolver.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAsE9B;;;;;;;GAOG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,EAClB,GAAG,OAAO,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,GAAG,IAAI,CAG/B;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import express from "express";
|
|
2
3
|
import { OptionsJson } from "./interfaces/body-parser.interface";
|
|
3
4
|
import { CompressionOptions } from "./interfaces/compression.interface";
|
|
@@ -5,7 +6,47 @@ import { CorsOptions } from "./interfaces/cors.interface";
|
|
|
5
6
|
import { CookieParserOptions } from "./interfaces/cookie-parser.interface";
|
|
6
7
|
import { ServeStaticOptions } from "./interfaces/serve-static.interface";
|
|
7
8
|
import { CookieSessionOptions } from "./interfaces/cookie-session/cookie-session.interface";
|
|
9
|
+
import { ServeFaviconOptions } from "./interfaces/serve-favicon.interface";
|
|
10
|
+
/**
|
|
11
|
+
* ExpressHandler Type
|
|
12
|
+
*
|
|
13
|
+
* The ExpressHandler type is a union type that represents various types of Express middleware functions.
|
|
14
|
+
* It can be one of the following types:
|
|
15
|
+
* - express.ErrorRequestHandler: Handles errors in the middleware pipeline.
|
|
16
|
+
* - express.RequestParamHandler: Handles parameters in the middleware pipeline.
|
|
17
|
+
* - express.RequestHandler: General request handler.
|
|
18
|
+
* - undefined: Represents the absence of a handler.
|
|
19
|
+
*/
|
|
8
20
|
type ExpressHandler = express.ErrorRequestHandler | express.RequestParamHandler | express.RequestHandler | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* MiddlewareArgs Type
|
|
23
|
+
*
|
|
24
|
+
* The MiddlewareArgs type represents arguments that can be passed to a middleware function.
|
|
25
|
+
* It can either be a string (a route or path) or an instance of ExpressHandler.
|
|
26
|
+
*/
|
|
27
|
+
type MiddlewareArgs = string | ExpressHandler;
|
|
28
|
+
/**
|
|
29
|
+
* MiddlewareConfig Interface
|
|
30
|
+
*
|
|
31
|
+
* The MiddlewareConfig interface specifies the structure for middleware configuration objects.
|
|
32
|
+
* - path: Optional. The route path for which the middleware is configured.
|
|
33
|
+
* - middlewares: An array of ExpressHandler types that make up the middleware pipeline for the route specified by 'path'.
|
|
34
|
+
*/
|
|
35
|
+
type MiddlewareConfig = {
|
|
36
|
+
path?: string;
|
|
37
|
+
middlewares: Array<ExpressHandler>;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* MiddlewarePipeline Interface
|
|
41
|
+
*
|
|
42
|
+
* The MiddlewarePipeline interface represents the metadata and actual middleware to be executed in a middleware pipeline.
|
|
43
|
+
* - timestamp: The date and time at which the middleware was added to the pipeline.
|
|
44
|
+
* - middleware: Can be either an ExpressHandler function or a MiddlewareConfig object defining a more complex middleware setup.
|
|
45
|
+
*/
|
|
46
|
+
interface MiddlewarePipeline {
|
|
47
|
+
timestamp: Date;
|
|
48
|
+
middleware: ExpressHandler | MiddlewareConfig;
|
|
49
|
+
}
|
|
9
50
|
/**
|
|
10
51
|
* Interface for configuring and managing middlewares in the application.
|
|
11
52
|
* Provides methods to be added automatically in the application without the need to import packages.
|
|
@@ -43,6 +84,14 @@ interface IMiddleware {
|
|
|
43
84
|
* @param options - Optional configuration options for Cookie Session. Defines the behavior of cookie sessions like the name of the cookie, keys to sign the cookie, etc.
|
|
44
85
|
*/
|
|
45
86
|
addCookieSession(options: CookieSessionOptions): void;
|
|
87
|
+
/**
|
|
88
|
+
* Adds a middleware to serve the favicon to the middleware collection.
|
|
89
|
+
* The favicon is the icon that is displayed in the browser tab for the application.
|
|
90
|
+
*
|
|
91
|
+
* @param path - The path to the favicon file.
|
|
92
|
+
* @param options - Optional configuration options for serving the favicon. Defines the behavior of the favicon middleware like cache control, custom headers, etc.
|
|
93
|
+
*/
|
|
94
|
+
addServeFavicon(path: string | Buffer, options?: ServeFaviconOptions): void;
|
|
46
95
|
/**
|
|
47
96
|
* Configures the error handling middleware for the application.
|
|
48
97
|
*
|
|
@@ -63,13 +112,13 @@ interface IMiddleware {
|
|
|
63
112
|
* @param middleware - The Express request handler function to be added to the middleware collection.
|
|
64
113
|
*
|
|
65
114
|
*/
|
|
66
|
-
addMiddleware(middleware:
|
|
115
|
+
addMiddleware(...middleware: Array<MiddlewareArgs>): void;
|
|
67
116
|
/**
|
|
68
|
-
* Retrieves
|
|
117
|
+
* Retrieves middleware pipeline in the order they were added.
|
|
69
118
|
*
|
|
70
119
|
* @returns An array of Express request handlers representing the middlewares.
|
|
71
120
|
*/
|
|
72
|
-
|
|
121
|
+
getMiddlewarePipeline(): Array<MiddlewarePipeline>;
|
|
73
122
|
/**
|
|
74
123
|
* Gets the configured error handler middleware.
|
|
75
124
|
*
|
|
@@ -85,7 +134,7 @@ interface IMiddleware {
|
|
|
85
134
|
* @see IConfigure
|
|
86
135
|
*/
|
|
87
136
|
declare class Middleware implements IMiddleware {
|
|
88
|
-
private
|
|
137
|
+
private middlewarePipeline;
|
|
89
138
|
private errorHandler;
|
|
90
139
|
private logger;
|
|
91
140
|
/**
|
|
@@ -127,6 +176,14 @@ declare class Middleware implements IMiddleware {
|
|
|
127
176
|
* @param options - Optional configuration options for Cookie Session. Defines the behavior of cookie sessions like the name of the cookie, keys to sign the cookie, etc.
|
|
128
177
|
*/
|
|
129
178
|
addCookieSession(options: CookieSessionOptions): void;
|
|
179
|
+
/**
|
|
180
|
+
* Adds a middleware to serve the favicon to the middleware collection.
|
|
181
|
+
* The favicon is the icon that is displayed in the browser tab for the application.
|
|
182
|
+
*
|
|
183
|
+
* @param path - The path to the favicon file.
|
|
184
|
+
* @param options - Optional configuration options for serving the favicon. Defines the behavior of the favicon middleware like cache control, custom headers, etc.
|
|
185
|
+
*/
|
|
186
|
+
addServeFavicon(path: string | Buffer, options?: ServeFaviconOptions): void;
|
|
130
187
|
/**
|
|
131
188
|
* Configures the error handling middleware for the application.
|
|
132
189
|
*
|
|
@@ -147,13 +204,13 @@ declare class Middleware implements IMiddleware {
|
|
|
147
204
|
* @param middleware - The Express request handler function to be added to the middleware collection.
|
|
148
205
|
*
|
|
149
206
|
*/
|
|
150
|
-
addMiddleware(middleware:
|
|
207
|
+
addMiddleware(...middleware: Array<MiddlewareArgs>): void;
|
|
151
208
|
/**
|
|
152
|
-
* Retrieves
|
|
209
|
+
* Retrieves middleware pipeline in the order they were added.
|
|
153
210
|
*
|
|
154
211
|
* @returns An array of Express request handlers representing the middlewares.
|
|
155
212
|
*/
|
|
156
|
-
|
|
213
|
+
getMiddlewarePipeline(): Array<MiddlewarePipeline>;
|
|
157
214
|
/**
|
|
158
215
|
* Gets the configured error handler middleware.
|
|
159
216
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-service.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware-service.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ const middleware_resolver_1 = require("./middleware-resolver");
|
|
|
24
24
|
* @see IConfigure
|
|
25
25
|
*/
|
|
26
26
|
let Middleware = Middleware_1 = class Middleware {
|
|
27
|
-
|
|
27
|
+
middlewarePipeline = [];
|
|
28
28
|
errorHandler;
|
|
29
29
|
logger = new logger_service_1.Logger();
|
|
30
30
|
/**
|
|
@@ -35,8 +35,9 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
35
35
|
* @returns A boolean value indicating whether the middleware exists or not.
|
|
36
36
|
*/
|
|
37
37
|
middlewareExists(middlewareName) {
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const middlewareIndex = this.middlewarePipeline.findIndex((m) => typeof m.middleware === "object"
|
|
39
|
+
? m.middleware.middlewares.some((mw) => mw?.name === middlewareName)
|
|
40
|
+
: m.middleware?.name === middlewareName);
|
|
40
41
|
return middlewareIndex !== -1;
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
@@ -50,7 +51,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
50
51
|
this.logger.warn(`[jsonParser] already exists. Skipping...`, "configure-service");
|
|
51
52
|
}
|
|
52
53
|
else {
|
|
53
|
-
this.
|
|
54
|
+
this.middlewarePipeline.push({
|
|
55
|
+
timestamp: new Date(),
|
|
56
|
+
middleware: express_1.default.json(options),
|
|
57
|
+
});
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
@@ -62,7 +66,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
62
66
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("cors", options);
|
|
63
67
|
const middlewareExist = this.middlewareExists("cors");
|
|
64
68
|
if (middleware && !middlewareExist) {
|
|
65
|
-
this.
|
|
69
|
+
this.middlewarePipeline.push({
|
|
70
|
+
timestamp: new Date(),
|
|
71
|
+
middleware,
|
|
72
|
+
});
|
|
66
73
|
}
|
|
67
74
|
}
|
|
68
75
|
/**
|
|
@@ -74,7 +81,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
74
81
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("compression", options);
|
|
75
82
|
const middlewareExist = this.middlewareExists("compression");
|
|
76
83
|
if (middleware && !middlewareExist) {
|
|
77
|
-
this.
|
|
84
|
+
this.middlewarePipeline.push({
|
|
85
|
+
timestamp: new Date(),
|
|
86
|
+
middleware,
|
|
87
|
+
});
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
/**
|
|
@@ -87,7 +97,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
87
97
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("cookieParser", secret, options);
|
|
88
98
|
const middlewareExist = this.middlewareExists("cookieParser");
|
|
89
99
|
if (middleware && !middlewareExist) {
|
|
90
|
-
this.
|
|
100
|
+
this.middlewarePipeline.push({
|
|
101
|
+
timestamp: new Date(),
|
|
102
|
+
middleware,
|
|
103
|
+
});
|
|
91
104
|
}
|
|
92
105
|
}
|
|
93
106
|
/**
|
|
@@ -99,7 +112,27 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
99
112
|
const middleware = (0, middleware_resolver_1.middlewareResolver)("cookieSession", options);
|
|
100
113
|
const middlewareExist = this.middlewareExists("cookieSession");
|
|
101
114
|
if (middleware && !middlewareExist) {
|
|
102
|
-
this.
|
|
115
|
+
this.middlewarePipeline.push({
|
|
116
|
+
timestamp: new Date(),
|
|
117
|
+
middleware,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Adds a middleware to serve the favicon to the middleware collection.
|
|
123
|
+
* The favicon is the icon that is displayed in the browser tab for the application.
|
|
124
|
+
*
|
|
125
|
+
* @param path - The path to the favicon file.
|
|
126
|
+
* @param options - Optional configuration options for serving the favicon. Defines the behavior of the favicon middleware like cache control, custom headers, etc.
|
|
127
|
+
*/
|
|
128
|
+
addServeFavicon(path, options) {
|
|
129
|
+
const middleware = (0, middleware_resolver_1.middlewareResolver)("serveFavicon", path, options);
|
|
130
|
+
const middlewareExist = this.middlewareExists("serveFavicon");
|
|
131
|
+
if (middleware && !middlewareExist) {
|
|
132
|
+
this.middlewarePipeline.push({
|
|
133
|
+
timestamp: new Date(),
|
|
134
|
+
middleware,
|
|
135
|
+
});
|
|
103
136
|
}
|
|
104
137
|
}
|
|
105
138
|
/**
|
|
@@ -128,7 +161,10 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
128
161
|
this.logger.warn(`[serveStatic] already exists. Skipping...`, "configure-service");
|
|
129
162
|
}
|
|
130
163
|
else {
|
|
131
|
-
this.
|
|
164
|
+
this.middlewarePipeline.push({
|
|
165
|
+
timestamp: new Date(),
|
|
166
|
+
middleware: express_1.default.static(root, options),
|
|
167
|
+
});
|
|
132
168
|
}
|
|
133
169
|
}
|
|
134
170
|
/**
|
|
@@ -137,22 +173,60 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
137
173
|
* @param middleware - The Express request handler function to be added to the middleware collection.
|
|
138
174
|
*
|
|
139
175
|
*/
|
|
140
|
-
addMiddleware(middleware) {
|
|
141
|
-
|
|
142
|
-
if (
|
|
143
|
-
|
|
176
|
+
addMiddleware(...middleware) {
|
|
177
|
+
let config;
|
|
178
|
+
if (typeof middleware[0] === "string") {
|
|
179
|
+
const [path, ...middlewares] = middleware;
|
|
180
|
+
config = {
|
|
181
|
+
path,
|
|
182
|
+
middlewares: middlewares,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
187
|
+
config = {
|
|
188
|
+
middlewares: middleware,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
if (config.path) {
|
|
192
|
+
// verify if middleware if path already exists
|
|
193
|
+
const middlewareIndex = this.middlewarePipeline.findIndex((m) => typeof m.middleware === "object" && m.middleware.path === config.path);
|
|
194
|
+
if (middlewareIndex !== -1) {
|
|
195
|
+
this.logger.warn(`[${config.path}] route already exists. Skipping...`, "configure-service");
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
this.middlewarePipeline.push({
|
|
199
|
+
timestamp: new Date(),
|
|
200
|
+
middleware: config,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
144
203
|
}
|
|
145
204
|
else {
|
|
146
|
-
|
|
205
|
+
config.middlewares.forEach((m) => {
|
|
206
|
+
const middlewareName = m?.name || "anonymous";
|
|
207
|
+
const middlewareExist = this.middlewareExists(middlewareName);
|
|
208
|
+
console.log(middlewareExist);
|
|
209
|
+
if (middlewareExist) {
|
|
210
|
+
this.logger.warn(`[${middlewareName}] already exists. Skipping...`, "configure-service");
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this.middlewarePipeline.push({
|
|
214
|
+
timestamp: new Date(),
|
|
215
|
+
middleware: config,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
});
|
|
147
219
|
}
|
|
148
220
|
}
|
|
149
221
|
/**
|
|
150
|
-
* Retrieves
|
|
222
|
+
* Retrieves middleware pipeline in the order they were added.
|
|
151
223
|
*
|
|
152
224
|
* @returns An array of Express request handlers representing the middlewares.
|
|
153
225
|
*/
|
|
154
|
-
|
|
155
|
-
return this.
|
|
226
|
+
getMiddlewarePipeline() {
|
|
227
|
+
return this.middlewarePipeline.sort((a, b) => {
|
|
228
|
+
return a.timestamp.getTime() - b.timestamp.getTime();
|
|
229
|
+
});
|
|
156
230
|
}
|
|
157
231
|
/**
|
|
158
232
|
* Gets the configured error handler middleware.
|
|
@@ -5,4 +5,5 @@ export { CompressionOptions } from "./interfaces/compression.interface";
|
|
|
5
5
|
export { CookieSessionOptions } from "./interfaces/cookie-session/cookie-session.interface";
|
|
6
6
|
export { Keygrip } from "./interfaces/cookie-session/keygrip.interface";
|
|
7
7
|
export { CookieParserOptions } from "./interfaces/cookie-parser.interface";
|
|
8
|
+
export { ServeFaviconOptions } from "./interfaces/serve-favicon.interface";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServeFaviconOptions defines the available options for configuring the serve-favicon middleware.
|
|
3
|
+
*/
|
|
4
|
+
interface ServeFaviconOptions {
|
|
5
|
+
/**
|
|
6
|
+
* The cache-control max-age directive in ms, defaulting to 1 year.
|
|
7
|
+
* This can also be a string accepted by the `ms` module.
|
|
8
|
+
*/
|
|
9
|
+
maxAge?: number | string | undefined;
|
|
10
|
+
}
|
|
11
|
+
export { ServeFaviconOptions };
|
|
12
|
+
//# sourceMappingURL=serve-favicon.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-favicon.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/middleware/interfaces/serve-favicon.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,UAAU,mBAAmB;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-resolver.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-resolver.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware-resolver.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-resolver.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAsE9B;;;;;;;GAOG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,EAClB,GAAG,OAAO,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,GAAG,IAAI,CAG/B;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import express from "express";
|
|
2
3
|
import { OptionsJson } from "./interfaces/body-parser.interface";
|
|
3
4
|
import { CompressionOptions } from "./interfaces/compression.interface";
|
|
@@ -5,7 +6,47 @@ import { CorsOptions } from "./interfaces/cors.interface";
|
|
|
5
6
|
import { CookieParserOptions } from "./interfaces/cookie-parser.interface";
|
|
6
7
|
import { ServeStaticOptions } from "./interfaces/serve-static.interface";
|
|
7
8
|
import { CookieSessionOptions } from "./interfaces/cookie-session/cookie-session.interface";
|
|
9
|
+
import { ServeFaviconOptions } from "./interfaces/serve-favicon.interface";
|
|
10
|
+
/**
|
|
11
|
+
* ExpressHandler Type
|
|
12
|
+
*
|
|
13
|
+
* The ExpressHandler type is a union type that represents various types of Express middleware functions.
|
|
14
|
+
* It can be one of the following types:
|
|
15
|
+
* - express.ErrorRequestHandler: Handles errors in the middleware pipeline.
|
|
16
|
+
* - express.RequestParamHandler: Handles parameters in the middleware pipeline.
|
|
17
|
+
* - express.RequestHandler: General request handler.
|
|
18
|
+
* - undefined: Represents the absence of a handler.
|
|
19
|
+
*/
|
|
8
20
|
type ExpressHandler = express.ErrorRequestHandler | express.RequestParamHandler | express.RequestHandler | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* MiddlewareArgs Type
|
|
23
|
+
*
|
|
24
|
+
* The MiddlewareArgs type represents arguments that can be passed to a middleware function.
|
|
25
|
+
* It can either be a string (a route or path) or an instance of ExpressHandler.
|
|
26
|
+
*/
|
|
27
|
+
type MiddlewareArgs = string | ExpressHandler;
|
|
28
|
+
/**
|
|
29
|
+
* MiddlewareConfig Interface
|
|
30
|
+
*
|
|
31
|
+
* The MiddlewareConfig interface specifies the structure for middleware configuration objects.
|
|
32
|
+
* - path: Optional. The route path for which the middleware is configured.
|
|
33
|
+
* - middlewares: An array of ExpressHandler types that make up the middleware pipeline for the route specified by 'path'.
|
|
34
|
+
*/
|
|
35
|
+
type MiddlewareConfig = {
|
|
36
|
+
path?: string;
|
|
37
|
+
middlewares: Array<ExpressHandler>;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* MiddlewarePipeline Interface
|
|
41
|
+
*
|
|
42
|
+
* The MiddlewarePipeline interface represents the metadata and actual middleware to be executed in a middleware pipeline.
|
|
43
|
+
* - timestamp: The date and time at which the middleware was added to the pipeline.
|
|
44
|
+
* - middleware: Can be either an ExpressHandler function or a MiddlewareConfig object defining a more complex middleware setup.
|
|
45
|
+
*/
|
|
46
|
+
interface MiddlewarePipeline {
|
|
47
|
+
timestamp: Date;
|
|
48
|
+
middleware: ExpressHandler | MiddlewareConfig;
|
|
49
|
+
}
|
|
9
50
|
/**
|
|
10
51
|
* Interface for configuring and managing middlewares in the application.
|
|
11
52
|
* Provides methods to be added automatically in the application without the need to import packages.
|
|
@@ -43,6 +84,14 @@ interface IMiddleware {
|
|
|
43
84
|
* @param options - Optional configuration options for Cookie Session. Defines the behavior of cookie sessions like the name of the cookie, keys to sign the cookie, etc.
|
|
44
85
|
*/
|
|
45
86
|
addCookieSession(options: CookieSessionOptions): void;
|
|
87
|
+
/**
|
|
88
|
+
* Adds a middleware to serve the favicon to the middleware collection.
|
|
89
|
+
* The favicon is the icon that is displayed in the browser tab for the application.
|
|
90
|
+
*
|
|
91
|
+
* @param path - The path to the favicon file.
|
|
92
|
+
* @param options - Optional configuration options for serving the favicon. Defines the behavior of the favicon middleware like cache control, custom headers, etc.
|
|
93
|
+
*/
|
|
94
|
+
addServeFavicon(path: string | Buffer, options?: ServeFaviconOptions): void;
|
|
46
95
|
/**
|
|
47
96
|
* Configures the error handling middleware for the application.
|
|
48
97
|
*
|
|
@@ -63,13 +112,13 @@ interface IMiddleware {
|
|
|
63
112
|
* @param middleware - The Express request handler function to be added to the middleware collection.
|
|
64
113
|
*
|
|
65
114
|
*/
|
|
66
|
-
addMiddleware(middleware:
|
|
115
|
+
addMiddleware(...middleware: Array<MiddlewareArgs>): void;
|
|
67
116
|
/**
|
|
68
|
-
* Retrieves
|
|
117
|
+
* Retrieves middleware pipeline in the order they were added.
|
|
69
118
|
*
|
|
70
119
|
* @returns An array of Express request handlers representing the middlewares.
|
|
71
120
|
*/
|
|
72
|
-
|
|
121
|
+
getMiddlewarePipeline(): Array<MiddlewarePipeline>;
|
|
73
122
|
/**
|
|
74
123
|
* Gets the configured error handler middleware.
|
|
75
124
|
*
|
|
@@ -85,7 +134,7 @@ interface IMiddleware {
|
|
|
85
134
|
* @see IConfigure
|
|
86
135
|
*/
|
|
87
136
|
declare class Middleware implements IMiddleware {
|
|
88
|
-
private
|
|
137
|
+
private middlewarePipeline;
|
|
89
138
|
private errorHandler;
|
|
90
139
|
private logger;
|
|
91
140
|
/**
|
|
@@ -127,6 +176,14 @@ declare class Middleware implements IMiddleware {
|
|
|
127
176
|
* @param options - Optional configuration options for Cookie Session. Defines the behavior of cookie sessions like the name of the cookie, keys to sign the cookie, etc.
|
|
128
177
|
*/
|
|
129
178
|
addCookieSession(options: CookieSessionOptions): void;
|
|
179
|
+
/**
|
|
180
|
+
* Adds a middleware to serve the favicon to the middleware collection.
|
|
181
|
+
* The favicon is the icon that is displayed in the browser tab for the application.
|
|
182
|
+
*
|
|
183
|
+
* @param path - The path to the favicon file.
|
|
184
|
+
* @param options - Optional configuration options for serving the favicon. Defines the behavior of the favicon middleware like cache control, custom headers, etc.
|
|
185
|
+
*/
|
|
186
|
+
addServeFavicon(path: string | Buffer, options?: ServeFaviconOptions): void;
|
|
130
187
|
/**
|
|
131
188
|
* Configures the error handling middleware for the application.
|
|
132
189
|
*
|
|
@@ -147,13 +204,13 @@ declare class Middleware implements IMiddleware {
|
|
|
147
204
|
* @param middleware - The Express request handler function to be added to the middleware collection.
|
|
148
205
|
*
|
|
149
206
|
*/
|
|
150
|
-
addMiddleware(middleware:
|
|
207
|
+
addMiddleware(...middleware: Array<MiddlewareArgs>): void;
|
|
151
208
|
/**
|
|
152
|
-
* Retrieves
|
|
209
|
+
* Retrieves middleware pipeline in the order they were added.
|
|
153
210
|
*
|
|
154
211
|
* @returns An array of Express request handlers representing the middlewares.
|
|
155
212
|
*/
|
|
156
|
-
|
|
213
|
+
getMiddlewarePipeline(): Array<MiddlewarePipeline>;
|
|
157
214
|
/**
|
|
158
215
|
* Gets the configured error handler middleware.
|
|
159
216
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-service.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware-service.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/middleware/middleware-service.ts"],"names":[],"mappings":"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"}
|
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expressots/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Expressots - modern, fast, lightweight nodejs web framework (@core)",
|
|
5
5
|
"author": "Richard Zampieri",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -51,13 +51,11 @@
|
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"prepare": "husky install",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"build:
|
|
59
|
-
"build:linux": "npm run linux-clean && npm run build:esm && npm run build:cjs && npm run linux-cpy",
|
|
60
|
-
"build:esm": "tsc -p tsconfig.esm.json && mv lib/esm/index.js lib/esm/index.mjs ",
|
|
54
|
+
"clean": "node scripts/rm.js lib",
|
|
55
|
+
"copy": "node scripts/copy.js package.json README.md CHANGELOG.md lib",
|
|
56
|
+
"rename:esm": "node scripts/mv.js lib/esm/index.js lib/esm/index.mjs",
|
|
57
|
+
"build": "npm run clean && npm run build:esm && npm run build:cjs && npm run copy",
|
|
58
|
+
"build:esm": "tsc -p tsconfig.esm.json && npm run rename:esm",
|
|
61
59
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
62
60
|
"release": "release-it",
|
|
63
61
|
"coverage": "vitest run --coverage",
|
|
@@ -145,6 +143,10 @@
|
|
|
145
143
|
{
|
|
146
144
|
"type": "ci",
|
|
147
145
|
"section": "Continuous Integrations"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "chore",
|
|
149
|
+
"hidden": true
|
|
148
150
|
}
|
|
149
151
|
]
|
|
150
152
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expressots/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Expressots - modern, fast, lightweight nodejs web framework (@core)",
|
|
5
5
|
"author": "Richard Zampieri",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -51,13 +51,11 @@
|
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"prepare": "husky install",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"build:
|
|
59
|
-
"build:linux": "npm run linux-clean && npm run build:esm && npm run build:cjs && npm run linux-cpy",
|
|
60
|
-
"build:esm": "tsc -p tsconfig.esm.json && mv lib/esm/index.js lib/esm/index.mjs ",
|
|
54
|
+
"clean": "node scripts/rm.js lib",
|
|
55
|
+
"copy": "node scripts/copy.js package.json README.md CHANGELOG.md lib",
|
|
56
|
+
"rename:esm": "node scripts/mv.js lib/esm/index.js lib/esm/index.mjs",
|
|
57
|
+
"build": "npm run clean && npm run build:esm && npm run build:cjs && npm run copy",
|
|
58
|
+
"build:esm": "tsc -p tsconfig.esm.json && npm run rename:esm",
|
|
61
59
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
62
60
|
"release": "release-it",
|
|
63
61
|
"coverage": "vitest run --coverage",
|
|
@@ -145,6 +143,10 @@
|
|
|
145
143
|
{
|
|
146
144
|
"type": "ci",
|
|
147
145
|
"section": "Continuous Integrations"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "chore",
|
|
149
|
+
"hidden": true
|
|
148
150
|
}
|
|
149
151
|
]
|
|
150
152
|
}
|