@asapjs/router 0.10.43 → 1.0.0-20
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/decorator/index.d.ts +9 -5
- package/dist/decorator/index.d.ts.map +1 -1
- package/dist/decorator/index.js +5 -8
- package/dist/decorator/index.js.map +1 -1
- package/dist/express/router.d.ts +5 -21
- package/dist/express/router.d.ts.map +1 -1
- package/dist/express/router.js +167 -44
- package/dist/express/router.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -10
- package/dist/index.js.map +1 -1
- package/dist/middleware/errorHandler.d.ts.map +1 -1
- package/dist/middleware/jwtVerification.d.ts +4 -1
- package/dist/middleware/jwtVerification.d.ts.map +1 -1
- package/dist/middleware/jwtVerification.js +2 -2
- package/dist/middleware/jwtVerification.js.map +1 -1
- package/dist/plugin.d.ts +13 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +169 -0
- package/dist/plugin.js.map +1 -0
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +38 -16
- package/dist/router/index.js.map +1 -1
- package/dist/swagger/index.js +2 -2
- package/dist/swagger/index.js.map +1 -1
- package/dist/utils/collectMiddlewareErrors.d.ts +14 -0
- package/dist/utils/collectMiddlewareErrors.d.ts.map +1 -0
- package/dist/utils/collectMiddlewareErrors.js +31 -0
- package/dist/utils/collectMiddlewareErrors.js.map +1 -0
- package/dist/utils/defineConfig.d.ts +46 -0
- package/dist/utils/defineConfig.d.ts.map +1 -0
- package/dist/utils/defineConfig.js +28 -0
- package/dist/utils/defineConfig.js.map +1 -0
- package/dist/utils/defineMiddleware.d.ts +23 -0
- package/dist/utils/defineMiddleware.d.ts.map +1 -0
- package/dist/utils/defineMiddleware.js +15 -0
- package/dist/utils/defineMiddleware.js.map +1 -0
- package/dist/utils/generateSchemeRefWithName.d.ts.map +1 -1
- package/dist/utils/getSchemeNameFromRef.d.ts.map +1 -1
- package/dist/utils/globalRouteDefaults.d.ts +4 -0
- package/dist/utils/globalRouteDefaults.d.ts.map +1 -0
- package/dist/utils/globalRouteDefaults.js +12 -0
- package/dist/utils/globalRouteDefaults.js.map +1 -0
- package/dist/utils/isClass.d.ts.map +1 -1
- package/dist/utils/registeredMiddlewares.d.ts +4 -0
- package/dist/utils/registeredMiddlewares.d.ts.map +1 -0
- package/dist/utils/registeredMiddlewares.js +12 -0
- package/dist/utils/registeredMiddlewares.js.map +1 -0
- package/dist/utils/wrapper.d.ts +14 -6
- package/dist/utils/wrapper.d.ts.map +1 -1
- package/dist/utils/wrapper.js +34 -30
- package/dist/utils/wrapper.js.map +1 -1
- package/package.json +24 -14
- package/.yarnrc.yml +0 -1
- package/tsconfig.json +0 -21
package/dist/plugin.js
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RouterPlugin = void 0;
|
|
16
|
+
const common_1 = require("@asapjs/common");
|
|
17
|
+
const schema_1 = require("@asapjs/schema");
|
|
18
|
+
const body_parser_1 = __importDefault(require("body-parser"));
|
|
19
|
+
const cors_1 = __importDefault(require("cors"));
|
|
20
|
+
const express_1 = __importDefault(require("express"));
|
|
21
|
+
const express_basic_auth_1 = __importDefault(require("express-basic-auth"));
|
|
22
|
+
const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
|
|
23
|
+
const errorHandler_1 = __importDefault(require("./middleware/errorHandler"));
|
|
24
|
+
const swagger_1 = require("./swagger");
|
|
25
|
+
const generateSchemeRefWithName_1 = __importDefault(require("./utils/generateSchemeRefWithName"));
|
|
26
|
+
const registeredMiddlewares_1 = require("./utils/registeredMiddlewares");
|
|
27
|
+
const wrapper_1 = __importDefault(require("./utils/wrapper"));
|
|
28
|
+
class RouterPlugin {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.name = '@asapjs/router';
|
|
31
|
+
}
|
|
32
|
+
init(config, context) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
this.config = config;
|
|
35
|
+
this.app = context.app;
|
|
36
|
+
// Inject swagger functions into sequelize if available
|
|
37
|
+
if (config.extensions.includes('@asapjs/sequelize')) {
|
|
38
|
+
try {
|
|
39
|
+
const { setSwaggerFunctions, registerSequelizeTypes } = require('@asapjs/sequelize');
|
|
40
|
+
if (!schema_1.registry.has('sequelize')) {
|
|
41
|
+
schema_1.registry.register(schema_1.sequelizePlugin);
|
|
42
|
+
}
|
|
43
|
+
registerSequelizeTypes();
|
|
44
|
+
setSwaggerFunctions(swagger_1.addScheme, generateSchemeRefWithName_1.default);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
common_1.logger.error('Failed to inject swagger functions to sequelize', error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Inject addScheme function into error package if available
|
|
51
|
+
if (config.extensions.includes('@asapjs/error')) {
|
|
52
|
+
try {
|
|
53
|
+
const { setAddSchemeFunction } = require('@asapjs/error');
|
|
54
|
+
setAddSchemeFunction(swagger_1.addScheme);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
// @asapjs/error might not be in extensions list
|
|
58
|
+
try {
|
|
59
|
+
const { setAddSchemeFunction } = require('@asapjs/error');
|
|
60
|
+
setAddSchemeFunction(swagger_1.addScheme);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
// Ignore if error package is not available
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
this.initMiddlewares();
|
|
68
|
+
yield this.initRouter(config.dirname);
|
|
69
|
+
this.app.use(errorHandler_1.default);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
initRouter(dirname) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const router = express_1.default.Router();
|
|
75
|
+
const routes = require(`${dirname}/route`).default;
|
|
76
|
+
routes.forEach((route) => {
|
|
77
|
+
this.app.use(`${this.config.basePath ? `/${this.config.basePath}` : ''}${route.basePath}`, route.expressRouter || route.router);
|
|
78
|
+
});
|
|
79
|
+
this.app.use(router);
|
|
80
|
+
this.app.get(`/${this.config.basePath}`, (req, res) => {
|
|
81
|
+
res.send(`${this.config.name || 'AsapJS'} server is working`);
|
|
82
|
+
});
|
|
83
|
+
this.app.get('/health-check', (0, wrapper_1.default)((_a) => __awaiter(this, [_a], void 0, function* ({ req, res }) {
|
|
84
|
+
try {
|
|
85
|
+
if (this.config.extensions.includes('@asapjs/sequelize')) {
|
|
86
|
+
const { healthCheck } = require('@asapjs/sequelize');
|
|
87
|
+
yield healthCheck();
|
|
88
|
+
}
|
|
89
|
+
res.send(`${this.config.name || 'AsapJS'} server is working`);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
res.status(500).send(err);
|
|
93
|
+
}
|
|
94
|
+
})));
|
|
95
|
+
this.setupSwagger();
|
|
96
|
+
this.setupSequelizeRoutes();
|
|
97
|
+
this.setupConsoleRoutes();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
setupSwagger() {
|
|
101
|
+
var _a, _b;
|
|
102
|
+
const swaggerUiPath = `${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger-ui.html`;
|
|
103
|
+
const swaggerUiPaths = [swaggerUiPath, `${swaggerUiPath}/`];
|
|
104
|
+
const options = {
|
|
105
|
+
swaggerOptions: {
|
|
106
|
+
url: `${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger.json`,
|
|
107
|
+
persistAuthorization: true,
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
if (((_a = this.config.swagger) === null || _a === void 0 ? void 0 : _a.useAuth) && ((_b = this.config.swagger) === null || _b === void 0 ? void 0 : _b.userObject)) {
|
|
111
|
+
common_1.logger.info('@router SWAGGER useAuth is Active');
|
|
112
|
+
this.app.use(swaggerUiPaths, (0, express_basic_auth_1.default)({
|
|
113
|
+
users: this.config.swagger.userObject,
|
|
114
|
+
challenge: true,
|
|
115
|
+
realm: 'Developer',
|
|
116
|
+
}), swagger_ui_express_1.default.serveFiles(undefined, options), swagger_ui_express_1.default.setup(undefined, options));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
common_1.logger.warn('@router SWAGGER useAuth is disabled! Please add config.swagger.useAuth & config.swagger.userObject');
|
|
120
|
+
this.app.use(swaggerUiPaths, swagger_ui_express_1.default.serveFiles(undefined, options), swagger_ui_express_1.default.setup(undefined, options));
|
|
121
|
+
}
|
|
122
|
+
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger.json`, (0, wrapper_1.default)((_a) => __awaiter(this, [_a], void 0, function* ({ req }) {
|
|
123
|
+
const swaggerData = (0, swagger_1.getSwaggerData)(req);
|
|
124
|
+
return swaggerData;
|
|
125
|
+
})));
|
|
126
|
+
}
|
|
127
|
+
setupSequelizeRoutes() {
|
|
128
|
+
if (this.config.extensions.includes('@asapjs/sequelize')) {
|
|
129
|
+
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/sync`, (0, wrapper_1.default)(() => __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
const { modelsSync } = require('@asapjs/sequelize');
|
|
131
|
+
yield modelsSync();
|
|
132
|
+
return true;
|
|
133
|
+
})));
|
|
134
|
+
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/generate-dbml`, (0, wrapper_1.default)(() => __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
const { getDBMLData } = require('@asapjs/sequelize');
|
|
136
|
+
const data = yield getDBMLData();
|
|
137
|
+
return true;
|
|
138
|
+
})));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
setupConsoleRoutes() {
|
|
142
|
+
if (this.config.extensions.includes('@asapjs/console')) {
|
|
143
|
+
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/console/data`, (0, wrapper_1.default)(() => __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
const { getConsoleData } = require('@asapjs/sequelize');
|
|
145
|
+
const result = yield getConsoleData();
|
|
146
|
+
console.log('result', result);
|
|
147
|
+
return { result };
|
|
148
|
+
})));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
initMiddlewares() {
|
|
152
|
+
var _a;
|
|
153
|
+
this.app.use((0, cors_1.default)());
|
|
154
|
+
this.app.use(body_parser_1.default.json({ limit: '200mb' }));
|
|
155
|
+
this.app.use(body_parser_1.default.urlencoded({ limit: '200mb', extended: true }));
|
|
156
|
+
this.app.set('trust proxy', true);
|
|
157
|
+
if (this.config.middleware) {
|
|
158
|
+
this.config.middleware.forEach((middleware) => {
|
|
159
|
+
common_1.logger.info(`middleware applied!`);
|
|
160
|
+
this.app.use(middleware);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
if ((_a = this.config.router) === null || _a === void 0 ? void 0 : _a.middleware) {
|
|
164
|
+
(0, registeredMiddlewares_1.setRegisteredMiddlewares)(this.config.router.middleware);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.RouterPlugin = RouterPlugin;
|
|
169
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,SAAS,CAAC;AAW9B,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,MAAM,CAAM;IAEb,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;gBAEpB,OAAO,EAAE,MAAM;IAqB3B,OAAO,CAAC,UAAU;IA0GlB,OAAO,CAAC,eAAe;CAYxB"}
|
package/dist/router/index.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const
|
|
15
|
+
const common_1 = require("@asapjs/common");
|
|
16
16
|
const express_basic_auth_1 = __importDefault(require("express-basic-auth"));
|
|
17
17
|
const express_1 = __importDefault(require("express"));
|
|
18
18
|
const body_parser_1 = __importDefault(require("body-parser"));
|
|
@@ -21,11 +21,24 @@ const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
|
|
|
21
21
|
const errorHandler_1 = __importDefault(require("../middleware/errorHandler"));
|
|
22
22
|
const wrapper_1 = __importDefault(require("../utils/wrapper"));
|
|
23
23
|
const swagger_1 = require("../swagger");
|
|
24
|
-
const
|
|
24
|
+
const schema_1 = require("@asapjs/schema");
|
|
25
|
+
// Sequelize imports will be dynamically loaded when needed
|
|
25
26
|
class RouterModule {
|
|
26
27
|
constructor(dirname) {
|
|
27
|
-
this.config = (0,
|
|
28
|
+
this.config = (0, common_1.getConfig)();
|
|
28
29
|
this.app = (0, express_1.default)();
|
|
30
|
+
if (this.config.extensions.includes('@asapjs/sequelize')) {
|
|
31
|
+
try {
|
|
32
|
+
const { registerSequelizeTypes } = require('@asapjs/sequelize');
|
|
33
|
+
if (!schema_1.registry.has('sequelize')) {
|
|
34
|
+
schema_1.registry.register(schema_1.sequelizePlugin);
|
|
35
|
+
}
|
|
36
|
+
registerSequelizeTypes();
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
common_1.logger.error('Failed to pre-register sequelize schema types in router module', error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
29
42
|
this.initMiddlewares();
|
|
30
43
|
this.initRouter(dirname);
|
|
31
44
|
this.app.use(errorHandler_1.default);
|
|
@@ -34,6 +47,7 @@ class RouterModule {
|
|
|
34
47
|
var _a, _b, _c;
|
|
35
48
|
const router = express_1.default.Router();
|
|
36
49
|
const routes = require(`${dirname}/route`).default;
|
|
50
|
+
console.log('routes', routes);
|
|
37
51
|
routes.forEach((route) => {
|
|
38
52
|
this.app.use(`${this.config.basePath ? `/${this.config.basePath}` : ''}${route.basePath}`, route.expressRouter || route.router);
|
|
39
53
|
});
|
|
@@ -41,9 +55,12 @@ class RouterModule {
|
|
|
41
55
|
this.app.get(`/${this.config.basePath}`, (req, res) => {
|
|
42
56
|
res.send(`${this.config.name} server is working`);
|
|
43
57
|
});
|
|
44
|
-
this.app.get('/health-check', (0, wrapper_1.default)((
|
|
58
|
+
this.app.get('/health-check', (0, wrapper_1.default)((_a) => __awaiter(this, [_a], void 0, function* ({ req, res }) {
|
|
45
59
|
try {
|
|
46
|
-
|
|
60
|
+
if (this.config.extensions.includes('@asapjs/sequelize')) {
|
|
61
|
+
const { healthCheck } = require('@asapjs/sequelize');
|
|
62
|
+
yield healthCheck();
|
|
63
|
+
}
|
|
47
64
|
res.send(`${this.config.name} server is working`);
|
|
48
65
|
}
|
|
49
66
|
catch (err) {
|
|
@@ -56,43 +73,48 @@ class RouterModule {
|
|
|
56
73
|
persistAuthorization: true,
|
|
57
74
|
},
|
|
58
75
|
};
|
|
76
|
+
const swaggerUiPath = `${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger-ui.html`;
|
|
77
|
+
const swaggerUiPaths = [swaggerUiPath, `${swaggerUiPath}/`];
|
|
59
78
|
// conditional Swagger UI password setup logic
|
|
60
|
-
const config = (0,
|
|
79
|
+
const config = (0, common_1.getConfig)();
|
|
61
80
|
if (((_a = config === null || config === void 0 ? void 0 : config.swagger) === null || _a === void 0 ? void 0 : _a.useAuth) && ((_b = config === null || config === void 0 ? void 0 : config.swagger) === null || _b === void 0 ? void 0 : _b.userObject)) {
|
|
62
|
-
|
|
63
|
-
this.app.use(
|
|
81
|
+
common_1.logger.info('@router SWAGGER useAuth is Active');
|
|
82
|
+
this.app.use(swaggerUiPaths, (0, express_basic_auth_1.default)({
|
|
64
83
|
users: (_c = config === null || config === void 0 ? void 0 : config.swagger) === null || _c === void 0 ? void 0 : _c.userObject,
|
|
65
84
|
challenge: true,
|
|
66
85
|
realm: 'Developer',
|
|
67
86
|
}), swagger_ui_express_1.default.serveFiles(undefined, options), swagger_ui_express_1.default.setup(undefined, options));
|
|
68
87
|
// TODO: add authentication header validation for swagger.json (should allow localhost to bypass(React))
|
|
69
88
|
// -> SwaggerUI 가 swagger.json으로 요청할때 별도의 인증헤더를 다는 방법이 없을지?
|
|
70
|
-
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger.json`, (0, wrapper_1.default)((
|
|
89
|
+
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger.json`, (0, wrapper_1.default)((_a) => __awaiter(this, [_a], void 0, function* ({ req }) {
|
|
71
90
|
const swaggerData = (0, swagger_1.getSwaggerData)(req);
|
|
72
91
|
return swaggerData;
|
|
73
92
|
})));
|
|
74
93
|
}
|
|
75
94
|
else {
|
|
76
|
-
|
|
77
|
-
this.app.use(
|
|
78
|
-
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger.json`, (0, wrapper_1.default)((
|
|
95
|
+
common_1.logger.warn('@router SWAGGER useAuth is disabled! Please add config.swagger.useAuth & config.swagger.userObject');
|
|
96
|
+
this.app.use(swaggerUiPaths, swagger_ui_express_1.default.serveFiles(undefined, options), swagger_ui_express_1.default.setup(undefined, options));
|
|
97
|
+
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/swagger.json`, (0, wrapper_1.default)((_a) => __awaiter(this, [_a], void 0, function* ({ req }) {
|
|
79
98
|
const swaggerData = (0, swagger_1.getSwaggerData)(req);
|
|
80
99
|
return swaggerData;
|
|
81
100
|
})));
|
|
82
101
|
}
|
|
83
102
|
if (this.config.extensions.includes('@asapjs/sequelize')) {
|
|
84
103
|
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/sync`, (0, wrapper_1.default)(() => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
|
|
104
|
+
const { modelsSync } = require('@asapjs/sequelize');
|
|
105
|
+
yield modelsSync();
|
|
86
106
|
return true;
|
|
87
107
|
})));
|
|
88
108
|
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/docs/generate-dbml`, (0, wrapper_1.default)(() => __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
const
|
|
109
|
+
const { getDBMLData } = require('@asapjs/sequelize');
|
|
110
|
+
const data = yield getDBMLData();
|
|
90
111
|
return true;
|
|
91
112
|
})));
|
|
92
113
|
}
|
|
93
114
|
if (this.config.extensions.includes('@asapjs/console')) {
|
|
94
115
|
this.app.get(`${this.config.basePath ? `/${this.config.basePath}` : ''}/console/data`, (0, wrapper_1.default)(() => __awaiter(this, void 0, void 0, function* () {
|
|
95
|
-
const
|
|
116
|
+
const { getConsoleData } = require('@asapjs/sequelize');
|
|
117
|
+
const result = yield getConsoleData();
|
|
96
118
|
console.log('result', result);
|
|
97
119
|
return { result };
|
|
98
120
|
})));
|
|
@@ -105,7 +127,7 @@ class RouterModule {
|
|
|
105
127
|
this.app.set('trust proxy', true);
|
|
106
128
|
if (this.config.middleware) {
|
|
107
129
|
this.config.middleware.forEach((middleware) => {
|
|
108
|
-
|
|
130
|
+
common_1.logger.info(`middleware applied!`);
|
|
109
131
|
this.app.use(middleware);
|
|
110
132
|
});
|
|
111
133
|
}
|
package/dist/router/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"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"}
|
package/dist/swagger/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var _a;
|
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.getSwaggerData = exports.addScheme = exports.addPaths = void 0;
|
|
28
28
|
/* eslint-disable no-nested-ternary */
|
|
29
|
-
const
|
|
29
|
+
const common_1 = require("@asapjs/common");
|
|
30
30
|
const default_swagger_json_1 = __importDefault(require("../assets/default-swagger.json"));
|
|
31
31
|
const methods = ['get', 'post', 'put', 'delete'];
|
|
32
32
|
class DocsApplication {
|
|
@@ -43,7 +43,7 @@ class DocsApplication {
|
|
|
43
43
|
});
|
|
44
44
|
this.generateSwaggerData = (req) => {
|
|
45
45
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
46
|
-
const config = (0,
|
|
46
|
+
const config = (0, common_1.getConfig)();
|
|
47
47
|
this.swaggerData.info.title = ((_a = config === null || config === void 0 ? void 0 : config.swagger) === null || _a === void 0 ? void 0 : _a.name) || '';
|
|
48
48
|
this.swaggerData.info.version = ((_b = config === null || config === void 0 ? void 0 : config.swagger) === null || _b === void 0 ? void 0 : _b.version) || '';
|
|
49
49
|
this.swaggerData.info.description = ((_c = config === null || config === void 0 ? void 0 : config.swagger) === null || _c === void 0 ? void 0 : _c.description) || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ErrorCreator } from '@asapjs/error';
|
|
2
|
+
import type { TypedMiddleware } from '@asapjs/types';
|
|
3
|
+
/**
|
|
4
|
+
* 미들웨어 목록에서 현재 routeOptions 기준으로 포함할 에러들을 수집한다.
|
|
5
|
+
* - __errors가 배열이면 그대로 반환
|
|
6
|
+
* - __errors가 함수이면 routeOptions를 넘겨 호출한 결과를 반환
|
|
7
|
+
* - __errors가 없는 기존 미들웨어는 빈 배열 반환 (backward compatible)
|
|
8
|
+
*/
|
|
9
|
+
export declare function collectMiddlewareErrors(middlewares: readonly TypedMiddleware<any, any>[], routeOptions: Record<string, any>): ErrorCreator[];
|
|
10
|
+
/**
|
|
11
|
+
* errorCode 기준으로 중복 에러를 제거한다.
|
|
12
|
+
*/
|
|
13
|
+
export declare function deduplicateErrors(errors: ErrorCreator[]): ErrorCreator[];
|
|
14
|
+
//# sourceMappingURL=collectMiddlewareErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectMiddlewareErrors.d.ts","sourceRoot":"","sources":["../../src/utils/collectMiddlewareErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EACjD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC/B,YAAY,EAAE,CAUhB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAOxE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectMiddlewareErrors = collectMiddlewareErrors;
|
|
4
|
+
exports.deduplicateErrors = deduplicateErrors;
|
|
5
|
+
/**
|
|
6
|
+
* 미들웨어 목록에서 현재 routeOptions 기준으로 포함할 에러들을 수집한다.
|
|
7
|
+
* - __errors가 배열이면 그대로 반환
|
|
8
|
+
* - __errors가 함수이면 routeOptions를 넘겨 호출한 결과를 반환
|
|
9
|
+
* - __errors가 없는 기존 미들웨어는 빈 배열 반환 (backward compatible)
|
|
10
|
+
*/
|
|
11
|
+
function collectMiddlewareErrors(middlewares, routeOptions) {
|
|
12
|
+
return middlewares.flatMap((mw) => {
|
|
13
|
+
const errors = mw.__errors;
|
|
14
|
+
if (!errors)
|
|
15
|
+
return [];
|
|
16
|
+
return typeof errors === 'function' ? errors(routeOptions) : errors;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* errorCode 기준으로 중복 에러를 제거한다.
|
|
21
|
+
*/
|
|
22
|
+
function deduplicateErrors(errors) {
|
|
23
|
+
const seen = new Set();
|
|
24
|
+
return errors.filter((e) => {
|
|
25
|
+
if (seen.has(e._code))
|
|
26
|
+
return false;
|
|
27
|
+
seen.add(e._code);
|
|
28
|
+
return true;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=collectMiddlewareErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectMiddlewareErrors.js","sourceRoot":"","sources":["../../src/utils/collectMiddlewareErrors.ts"],"names":[],"mappings":";;AASA,0DAaC;AAKD,8CAOC;AA/BD;;;;;GAKG;AACH,SAAgB,uBAAuB,CACtC,WAAiD,EACjD,YAAiC;IAEjC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,MAAM,MAAM,GAAI,EAAU,CAAC,QAGf,CAAC;QAEb,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAsB;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AsapJSConfig, InferMiddlewareContext, TypedMiddleware } from '@asapjs/types';
|
|
2
|
+
import type { ExecuteArgs } from './wrapper';
|
|
3
|
+
/**
|
|
4
|
+
* Defines the application config while preserving the exact tuple type of middleware[],
|
|
5
|
+
* enabling TypeScript to infer the merged context type from all registered middleware.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* import { defineConfig, createJwtMiddleware } from '@asapjs/router';
|
|
9
|
+
*
|
|
10
|
+
* export const config = defineConfig({
|
|
11
|
+
* port: 3000,
|
|
12
|
+
* middleware: [createJwtMiddleware(true)],
|
|
13
|
+
* ...
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* // Derive your app-specific ExecuteArgs:
|
|
17
|
+
* export type AppExecuteArgs<P = {}, Q = {}, B = {}> =
|
|
18
|
+
* CreateExecuteArgs<typeof config, P, Q, B>;
|
|
19
|
+
*/
|
|
20
|
+
export declare function defineConfig<M extends readonly TypedMiddleware<any>[]>(config: Omit<AsapJSConfig, 'middleware'> & {
|
|
21
|
+
middleware?: M;
|
|
22
|
+
}): AsapJSConfig & {
|
|
23
|
+
middleware: M;
|
|
24
|
+
};
|
|
25
|
+
export declare function defineRouterConfig<M extends readonly TypedMiddleware<any>[]>(config: {
|
|
26
|
+
middleware?: M;
|
|
27
|
+
}): {
|
|
28
|
+
middleware: M;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Derives a typed ExecuteArgs from your app config, automatically including
|
|
32
|
+
* context fields contributed by each registered global middleware.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* export type AppExecuteArgs<P = {}, Q = {}, B = {}> =
|
|
36
|
+
* CreateExecuteArgs<typeof config, P, Q, B>;
|
|
37
|
+
*
|
|
38
|
+
* // In controller:
|
|
39
|
+
* public getList = async ({ user }: AppExecuteArgs<{}, QueryDto, {}>) => {
|
|
40
|
+
* // user is JwtUserPayload — not any!
|
|
41
|
+
* };
|
|
42
|
+
*/
|
|
43
|
+
export type CreateExecuteArgs<Config extends {
|
|
44
|
+
middleware?: readonly any[];
|
|
45
|
+
}, P = {}, Q = {}, B = {}> = ExecuteArgs<P, Q, B, InferMiddlewareContext<NonNullable<Config['middleware']>>>;
|
|
46
|
+
//# sourceMappingURL=defineConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineConfig.d.ts","sourceRoot":"","sources":["../../src/utils/defineConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,eAAe,CAAC,GAAG,CAAC,EAAE,EACrE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,CAAA;CAAE,GAC3D,YAAY,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAElC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE;IACrF,UAAU,CAAC,EAAE,CAAC,CAAC;CACf,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAEpB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,CAC5B,MAAM,SAAS;IAAE,UAAU,CAAC,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,EAC9C,CAAC,GAAG,EAAE,EACN,CAAC,GAAG,EAAE,EACN,CAAC,GAAG,EAAE,IACH,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineConfig = defineConfig;
|
|
4
|
+
exports.defineRouterConfig = defineRouterConfig;
|
|
5
|
+
/**
|
|
6
|
+
* Defines the application config while preserving the exact tuple type of middleware[],
|
|
7
|
+
* enabling TypeScript to infer the merged context type from all registered middleware.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* import { defineConfig, createJwtMiddleware } from '@asapjs/router';
|
|
11
|
+
*
|
|
12
|
+
* export const config = defineConfig({
|
|
13
|
+
* port: 3000,
|
|
14
|
+
* middleware: [createJwtMiddleware(true)],
|
|
15
|
+
* ...
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* // Derive your app-specific ExecuteArgs:
|
|
19
|
+
* export type AppExecuteArgs<P = {}, Q = {}, B = {}> =
|
|
20
|
+
* CreateExecuteArgs<typeof config, P, Q, B>;
|
|
21
|
+
*/
|
|
22
|
+
function defineConfig(config) {
|
|
23
|
+
return config;
|
|
24
|
+
}
|
|
25
|
+
function defineRouterConfig(config) {
|
|
26
|
+
return config;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=defineConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineConfig.js","sourceRoot":"","sources":["../../src/utils/defineConfig.ts"],"names":[],"mappings":";;AAoBA,oCAIC;AAED,gDAIC;AA3BD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,YAAY,CAC3B,MAA6D;IAE7D,OAAO,MAA0C,CAAC;AACnD,CAAC;AAED,SAAgB,kBAAkB,CAA4C,MAE7E;IACA,OAAO,MAA2B,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ErrorCreator } from '@asapjs/error';
|
|
2
|
+
import type { TypedMiddleware } from '@asapjs/types';
|
|
3
|
+
export declare function defineMiddleware<RouteOptions extends Record<string, any> = {}, Context extends Record<string, any> = {}>(factory: (options: RouteOptions) => (req: any, res: any, next: any) => void, meta?: {
|
|
4
|
+
/**
|
|
5
|
+
* 이 미들웨어가 throw할 수 있는 에러 목록.
|
|
6
|
+
*
|
|
7
|
+
* - 배열: RouteOptions에 관계없이 항상 Swagger에 포함
|
|
8
|
+
* - 함수: RouteOptions를 받아 포함할 에러 목록을 동적으로 결정
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // 항상 포함
|
|
12
|
+
* errors: [AuthErrors.UNAUTHORIZED]
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // auth:true인 라우트에만 401 포함, roles가 있으면 403도 포함
|
|
16
|
+
* errors: (options) => [
|
|
17
|
+
* ...(options.auth !== false ? [AuthErrors.UNAUTHORIZED] : []),
|
|
18
|
+
* ...(options.roles?.length ? [AuthErrors.FORBIDDEN] : []),
|
|
19
|
+
* ]
|
|
20
|
+
*/
|
|
21
|
+
errors?: ErrorCreator[] | ((options: RouteOptions) => ErrorCreator[]);
|
|
22
|
+
}): TypedMiddleware<RouteOptions, Context>;
|
|
23
|
+
//# sourceMappingURL=defineMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineMiddleware.d.ts","sourceRoot":"","sources":["../../src/utils/defineMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,wBAAgB,gBAAgB,CAC/B,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EAC7C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EAExC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,EAC3E,IAAI,CAAC,EAAE;IACN;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,YAAY,EAAE,CAAC,CAAC;CACtE,GACC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CASxC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineMiddleware = defineMiddleware;
|
|
4
|
+
function defineMiddleware(factory, meta) {
|
|
5
|
+
var _a;
|
|
6
|
+
const middleware = factory;
|
|
7
|
+
Object.defineProperty(middleware, '__errors', {
|
|
8
|
+
value: (_a = meta === null || meta === void 0 ? void 0 : meta.errors) !== null && _a !== void 0 ? _a : [],
|
|
9
|
+
writable: false,
|
|
10
|
+
enumerable: false,
|
|
11
|
+
configurable: false,
|
|
12
|
+
});
|
|
13
|
+
return middleware;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=defineMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineMiddleware.js","sourceRoot":"","sources":["../../src/utils/defineMiddleware.ts"],"names":[],"mappings":";;AAGA,4CAkCC;AAlCD,SAAgB,gBAAgB,CAI/B,OAA2E,EAC3E,IAmBC;;IAED,MAAM,UAAU,GAAG,OAAiD,CAAC;IACrE,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE;QAC7C,KAAK,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,EAAE;QACzB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSchemeRefWithName.d.ts","sourceRoot":"","sources":["../../src/utils/generateSchemeRefWithName.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateSchemeRefWithName.d.ts","sourceRoot":"","sources":["../../src/utils/generateSchemeRefWithName.ts"],"names":[],"mappings":"yBAAgB,YAAY,MAAM;AAAlC,wBAA4E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSchemeNameFromRef.d.ts","sourceRoot":"","sources":["../../src/utils/getSchemeNameFromRef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSchemeNameFromRef.d.ts","sourceRoot":"","sources":["../../src/utils/getSchemeNameFromRef.ts"],"names":[],"mappings":"yBAAgB,KAAK,MAAM;AAA3B,wBAAyE"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MiddlewareRouteOptions } from '@asapjs/types';
|
|
2
|
+
export declare function setGlobalRouteDefaults(opts: MiddlewareRouteOptions): void;
|
|
3
|
+
export declare function getGlobalRouteDefaults(): Readonly<MiddlewareRouteOptions>;
|
|
4
|
+
//# sourceMappingURL=globalRouteDefaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalRouteDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/globalRouteDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAI5D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAEzE;AAED,wBAAgB,sBAAsB,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAEzE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setGlobalRouteDefaults = setGlobalRouteDefaults;
|
|
4
|
+
exports.getGlobalRouteDefaults = getGlobalRouteDefaults;
|
|
5
|
+
let defaults = {};
|
|
6
|
+
function setGlobalRouteDefaults(opts) {
|
|
7
|
+
defaults = Object.assign({}, opts);
|
|
8
|
+
}
|
|
9
|
+
function getGlobalRouteDefaults() {
|
|
10
|
+
return defaults;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=globalRouteDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalRouteDefaults.js","sourceRoot":"","sources":["../../src/utils/globalRouteDefaults.ts"],"names":[],"mappings":";;AAIA,wDAEC;AAED,wDAEC;AARD,IAAI,QAAQ,GAA2B,EAAE,CAAC;AAE1C,SAAgB,sBAAsB,CAAC,IAA4B;IAClE,QAAQ,qBAAQ,IAAI,CAAE,CAAC;AACxB,CAAC;AAED,SAAgB,sBAAsB;IACrC,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isClass.d.ts","sourceRoot":"","sources":["../../src/utils/isClass.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isClass.d.ts","sourceRoot":"","sources":["../../src/utils/isClass.ts"],"names":[],"mappings":"yBAAgB,GAAG,GAAG;AAAtB,wBAAmE"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TypedMiddleware } from '@asapjs/types';
|
|
2
|
+
export declare function setRegisteredMiddlewares(mws: readonly TypedMiddleware<any, any>[]): void;
|
|
3
|
+
export declare function getRegisteredMiddlewares(): readonly TypedMiddleware<any, any>[];
|
|
4
|
+
//# sourceMappingURL=registeredMiddlewares.d.ts.map
|