jimpex 7.0.2 → 8.0.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/CHANGELOG.md +80 -0
- package/LICENSE +1 -1
- package/README.md +446 -434
- package/dist/app/index.d.ts +13 -0
- package/dist/app/index.js +19 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/jimpex.d.ts +13 -0
- package/dist/app/jimpex.js +440 -0
- package/dist/app/jimpex.js.map +1 -0
- package/dist/controllers/common/config.d.ts +78 -0
- package/dist/controllers/common/config.js +89 -0
- package/dist/controllers/common/config.js.map +1 -0
- package/dist/controllers/common/health.d.ts +82 -0
- package/dist/controllers/common/health.js +97 -0
- package/dist/controllers/common/health.js.map +1 -0
- package/dist/controllers/common/index.d.ts +21 -0
- package/dist/controllers/common/index.js +21 -0
- package/dist/controllers/common/index.js.map +1 -0
- package/dist/controllers/common/statics.d.ts +215 -0
- package/dist/controllers/common/statics.js +202 -0
- package/dist/controllers/common/statics.js.map +1 -0
- package/dist/controllers/index.d.ts +24 -0
- package/dist/controllers/index.js +20 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/controllers/utils/gateway.d.ts +724 -0
- package/dist/controllers/utils/gateway.js +425 -0
- package/dist/controllers/utils/gateway.js.map +1 -0
- package/dist/controllers/utils/index.d.ts +16 -0
- package/dist/controllers/utils/index.js +19 -0
- package/dist/controllers/utils/index.js.map +1 -0
- package/dist/esm/app/index.js +2 -0
- package/dist/esm/app/index.js.map +1 -0
- package/dist/esm/app/jimpex.js +415 -0
- package/dist/esm/app/jimpex.js.map +1 -0
- package/dist/esm/chunk-T2T6Q22Z.js +11 -0
- package/dist/esm/chunk-T2T6Q22Z.js.map +1 -0
- package/dist/esm/controllers/common/config.js +62 -0
- package/dist/esm/controllers/common/config.js.map +1 -0
- package/dist/esm/controllers/common/health.js +70 -0
- package/dist/esm/controllers/common/health.js.map +1 -0
- package/dist/esm/controllers/common/index.js +4 -0
- package/dist/esm/controllers/common/index.js.map +1 -0
- package/dist/esm/controllers/common/statics.js +173 -0
- package/dist/esm/controllers/common/statics.js.map +1 -0
- package/dist/esm/controllers/index.js +3 -0
- package/dist/esm/controllers/index.js.map +1 -0
- package/dist/esm/controllers/utils/gateway.js +404 -0
- package/dist/esm/controllers/utils/gateway.js.map +1 -0
- package/dist/esm/controllers/utils/index.js +2 -0
- package/dist/esm/controllers/utils/index.js.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/middlewares/common/errorHandler.js +92 -0
- package/dist/esm/middlewares/common/errorHandler.js.map +1 -0
- package/dist/esm/middlewares/common/forceHTTPS.js +41 -0
- package/dist/esm/middlewares/common/forceHTTPS.js.map +1 -0
- package/dist/esm/middlewares/common/hsts.js +53 -0
- package/dist/esm/middlewares/common/hsts.js.map +1 -0
- package/dist/esm/middlewares/common/index.js +4 -0
- package/dist/esm/middlewares/common/index.js.map +1 -0
- package/dist/esm/middlewares/html/fastHTML.js +104 -0
- package/dist/esm/middlewares/html/fastHTML.js.map +1 -0
- package/dist/esm/middlewares/html/index.js +3 -0
- package/dist/esm/middlewares/html/index.js.map +1 -0
- package/dist/esm/middlewares/html/showHTML.js +68 -0
- package/dist/esm/middlewares/html/showHTML.js.map +1 -0
- package/dist/esm/middlewares/index.js +4 -0
- package/dist/esm/middlewares/index.js.map +1 -0
- package/dist/esm/middlewares/utils/index.js +2 -0
- package/dist/esm/middlewares/utils/index.js.map +1 -0
- package/dist/esm/middlewares/utils/versionValidator.js +101 -0
- package/dist/esm/middlewares/utils/versionValidator.js.map +1 -0
- package/dist/esm/services/common/appError.js +52 -0
- package/dist/esm/services/common/appError.js.map +1 -0
- package/dist/esm/services/common/httpError.js +19 -0
- package/dist/esm/services/common/httpError.js.map +1 -0
- package/dist/esm/services/common/index.js +17 -0
- package/dist/esm/services/common/index.js.map +1 -0
- package/dist/esm/services/common/sendFile.js +27 -0
- package/dist/esm/services/common/sendFile.js.map +1 -0
- package/dist/esm/services/frontend/frontendFs.js +38 -0
- package/dist/esm/services/frontend/frontendFs.js.map +1 -0
- package/dist/esm/services/frontend/index.js +11 -0
- package/dist/esm/services/frontend/index.js.map +1 -0
- package/dist/esm/services/html/htmlGenerator.js +144 -0
- package/dist/esm/services/html/htmlGenerator.js.map +1 -0
- package/dist/esm/services/html/index.js +11 -0
- package/dist/esm/services/html/index.js.map +1 -0
- package/dist/esm/services/http/apiClient.js +71 -0
- package/dist/esm/services/http/apiClient.js.map +1 -0
- package/dist/esm/services/http/http.js +125 -0
- package/dist/esm/services/http/http.js.map +1 -0
- package/dist/esm/services/http/index.js +17 -0
- package/dist/esm/services/http/index.js.map +1 -0
- package/dist/esm/services/http/responsesBuilder.js +105 -0
- package/dist/esm/services/http/responsesBuilder.js.map +1 -0
- package/dist/esm/services/index.js +6 -0
- package/dist/esm/services/index.js.map +1 -0
- package/dist/esm/services/utils/ensureBearerToken.js +78 -0
- package/dist/esm/services/utils/ensureBearerToken.js.map +1 -0
- package/dist/esm/services/utils/index.js +11 -0
- package/dist/esm/services/utils/index.js.map +1 -0
- package/dist/esm/types/events.js +1 -0
- package/dist/esm/types/events.js.map +1 -0
- package/dist/esm/types/express.js +1 -0
- package/dist/esm/types/express.js.map +1 -0
- package/dist/esm/types/http.js +1 -0
- package/dist/esm/types/http.js.map +1 -0
- package/dist/esm/types/index.js +7 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/options.js +1 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/types/utils.js +1 -0
- package/dist/esm/types/utils.js.map +1 -0
- package/dist/esm/types/wootils.js +1 -0
- package/dist/esm/types/wootils.js.map +1 -0
- package/dist/esm/utils/fns/index.js +5 -0
- package/dist/esm/utils/fns/index.js.map +1 -0
- package/dist/esm/utils/fns/others.js +6 -0
- package/dist/esm/utils/fns/others.js.map +1 -0
- package/dist/esm/utils/fns/routes.js +25 -0
- package/dist/esm/utils/fns/routes.js.map +1 -0
- package/dist/esm/utils/fns/statuses.js +6 -0
- package/dist/esm/utils/fns/statuses.js.map +1 -0
- package/dist/esm/utils/fns/text.js +6 -0
- package/dist/esm/utils/fns/text.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/wrappers.js +41 -0
- package/dist/esm/utils/wrappers.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/jimpex-7eaee271.d.ts +1278 -0
- package/dist/middlewares/common/errorHandler.d.ts +131 -0
- package/dist/middlewares/common/errorHandler.js +119 -0
- package/dist/middlewares/common/errorHandler.js.map +1 -0
- package/dist/middlewares/common/forceHTTPS.d.ts +68 -0
- package/dist/middlewares/common/forceHTTPS.js +68 -0
- package/dist/middlewares/common/forceHTTPS.js.map +1 -0
- package/dist/middlewares/common/hsts.d.ts +109 -0
- package/dist/middlewares/common/hsts.js +80 -0
- package/dist/middlewares/common/hsts.js.map +1 -0
- package/dist/middlewares/common/index.d.ts +21 -0
- package/dist/middlewares/common/index.js +21 -0
- package/dist/middlewares/common/index.js.map +1 -0
- package/dist/middlewares/html/fastHTML.d.ts +180 -0
- package/dist/middlewares/html/fastHTML.js +131 -0
- package/dist/middlewares/html/fastHTML.js.map +1 -0
- package/dist/middlewares/html/index.d.ts +21 -0
- package/dist/middlewares/html/index.js +20 -0
- package/dist/middlewares/html/index.js.map +1 -0
- package/dist/middlewares/html/showHTML.d.ts +127 -0
- package/dist/middlewares/html/showHTML.js +95 -0
- package/dist/middlewares/html/showHTML.js.map +1 -0
- package/dist/middlewares/index.d.ts +30 -0
- package/dist/middlewares/index.js +21 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/utils/index.d.ts +19 -0
- package/dist/middlewares/utils/index.js +19 -0
- package/dist/middlewares/utils/index.js.map +1 -0
- package/dist/middlewares/utils/versionValidator.d.ts +214 -0
- package/dist/middlewares/utils/versionValidator.js +128 -0
- package/dist/middlewares/utils/versionValidator.js.map +1 -0
- package/dist/services/common/appError.d.ts +138 -0
- package/dist/services/common/appError.js +80 -0
- package/dist/services/common/appError.js.map +1 -0
- package/dist/services/common/httpError.d.ts +79 -0
- package/dist/services/common/httpError.js +44 -0
- package/dist/services/common/httpError.js.map +1 -0
- package/dist/services/common/index.d.ts +47 -0
- package/dist/services/common/index.js +41 -0
- package/dist/services/common/index.js.map +1 -0
- package/dist/services/common/sendFile.d.ts +102 -0
- package/dist/services/common/sendFile.js +51 -0
- package/dist/services/common/sendFile.js.map +1 -0
- package/dist/services/frontend/frontendFs.d.ts +96 -0
- package/dist/services/frontend/frontendFs.js +71 -0
- package/dist/services/frontend/frontendFs.js.map +1 -0
- package/dist/services/frontend/index.d.ts +40 -0
- package/dist/services/frontend/index.js +35 -0
- package/dist/services/frontend/index.js.map +1 -0
- package/dist/services/html/htmlGenerator.d.ts +237 -0
- package/dist/services/html/htmlGenerator.js +171 -0
- package/dist/services/html/htmlGenerator.js.map +1 -0
- package/dist/services/html/index.d.ts +43 -0
- package/dist/services/html/index.js +35 -0
- package/dist/services/html/index.js.map +1 -0
- package/dist/services/http/apiClient.d.ts +169 -0
- package/dist/services/http/apiClient.js +96 -0
- package/dist/services/http/apiClient.js.map +1 -0
- package/dist/services/http/http.d.ts +175 -0
- package/dist/services/http/http.js +158 -0
- package/dist/services/http/http.js.map +1 -0
- package/dist/services/http/index.d.ts +50 -0
- package/dist/services/http/index.js +41 -0
- package/dist/services/http/index.js.map +1 -0
- package/dist/services/http/responsesBuilder.d.ts +178 -0
- package/dist/services/http/responsesBuilder.js +132 -0
- package/dist/services/http/responsesBuilder.js.map +1 -0
- package/dist/services/index.d.ts +33 -0
- package/dist/services/index.js +23 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/utils/ensureBearerToken.d.ts +157 -0
- package/dist/services/utils/ensureBearerToken.js +105 -0
- package/dist/services/utils/ensureBearerToken.js.map +1 -0
- package/dist/services/utils/index.d.ts +43 -0
- package/dist/services/utils/index.js +35 -0
- package/dist/services/utils/index.js.map +1 -0
- package/dist/types/events.d.ts +13 -0
- package/dist/types/events.js +17 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/express.d.ts +10 -0
- package/dist/types/express.js +17 -0
- package/dist/types/express.js.map +1 -0
- package/dist/types/http.d.ts +79 -0
- package/dist/types/http.js +17 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/options.d.ts +13 -0
- package/dist/types/options.js +17 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/utils.d.ts +48 -0
- package/dist/types/utils.js +17 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/types/wootils.d.ts +4 -0
- package/dist/types/wootils.js +17 -0
- package/dist/types/wootils.js.map +1 -0
- package/dist/utils/fns/index.d.ts +5 -0
- package/dist/utils/fns/index.js +22 -0
- package/dist/utils/fns/index.js.map +1 -0
- package/dist/utils/fns/others.d.ts +17 -0
- package/dist/utils/fns/others.js +29 -0
- package/dist/utils/fns/others.js.map +1 -0
- package/dist/utils/fns/routes.d.ts +39 -0
- package/dist/utils/fns/routes.js +51 -0
- package/dist/utils/fns/routes.js.map +1 -0
- package/dist/utils/fns/statuses.d.ts +45 -0
- package/dist/utils/fns/statuses.js +35 -0
- package/dist/utils/fns/statuses.js.map +1 -0
- package/dist/utils/fns/text.d.ts +9 -0
- package/dist/utils/fns/text.js +29 -0
- package/dist/utils/fns/text.js.map +1 -0
- package/dist/utils/index.d.ts +18 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/wrappers.d.ts +13 -0
- package/dist/utils/wrappers.js +68 -0
- package/dist/utils/wrappers.js.map +1 -0
- package/examples/basic/404.html +12 -0
- package/examples/basic/README.md +30 -0
- package/examples/basic/app.ts +18 -0
- package/examples/basic/controller.ts +45 -0
- package/examples/basic/index.ts +19 -0
- package/examples/basic/middleware.ts +13 -0
- package/examples/basic/service.ts +11 -0
- package/package.json +59 -38
- package/src/app/index.ts +1 -0
- package/src/app/jimpex.ts +743 -0
- package/src/controllers/common/config.ts +115 -0
- package/src/controllers/common/health.ts +128 -0
- package/src/controllers/common/index.ts +3 -0
- package/src/controllers/common/statics.ts +380 -0
- package/src/controllers/index.ts +2 -0
- package/src/controllers/utils/gateway.ts +1186 -0
- package/src/controllers/utils/index.ts +1 -0
- package/src/index.ts +6 -0
- package/src/middlewares/common/errorHandler.ts +203 -0
- package/src/middlewares/common/forceHTTPS.ts +83 -0
- package/src/middlewares/common/hsts.ts +135 -0
- package/src/middlewares/common/index.ts +3 -0
- package/src/middlewares/html/fastHTML.ts +255 -0
- package/src/middlewares/html/index.ts +2 -0
- package/src/middlewares/html/showHTML.ts +165 -0
- package/src/middlewares/index.ts +3 -0
- package/src/middlewares/utils/index.ts +1 -0
- package/src/middlewares/utils/versionValidator.ts +289 -0
- package/src/services/common/appError.ts +158 -0
- package/src/services/common/httpError.ts +74 -0
- package/src/services/common/index.ts +29 -0
- package/src/services/common/sendFile.ts +106 -0
- package/src/services/frontend/frontendFs.ts +101 -0
- package/src/services/frontend/index.ts +21 -0
- package/src/services/html/htmlGenerator.ts +356 -0
- package/src/services/html/index.ts +21 -0
- package/src/services/http/apiClient.ts +221 -0
- package/src/services/http/http.ts +286 -0
- package/src/services/http/index.ts +29 -0
- package/src/services/http/responsesBuilder.ts +265 -0
- package/src/services/index.ts +5 -0
- package/src/services/utils/ensureBearerToken.ts +202 -0
- package/src/services/utils/index.ts +21 -0
- package/src/types/events.ts +303 -0
- package/src/types/express.ts +21 -0
- package/src/types/http.ts +77 -0
- package/src/types/index.ts +6 -0
- package/src/types/options.ts +248 -0
- package/src/types/utils.ts +52 -0
- package/src/types/wootils.ts +4 -0
- package/src/utils/fns/index.ts +4 -0
- package/src/utils/fns/others.ts +15 -0
- package/src/utils/fns/routes.ts +64 -0
- package/src/utils/fns/statuses.ts +44 -0
- package/src/utils/fns/text.ts +8 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/wrappers.ts +537 -0
- package/tsconfig.json +5 -8
- package/tsup.config.ts +10 -0
- package/src/app/index.js +0 -692
- package/src/constants/eventNames.js +0 -48
- package/src/constants/index.js +0 -7
- package/src/controllers/common/configuration.js +0 -116
- package/src/controllers/common/health.js +0 -79
- package/src/controllers/common/index.js +0 -7
- package/src/controllers/common/statics.js +0 -336
- package/src/controllers/index.js +0 -9
- package/src/controllers/utils/gateway.js +0 -1039
- package/src/controllers/utils/index.js +0 -3
- package/src/index.js +0 -30
- package/src/middlewares/common/errorHandler.js +0 -185
- package/src/middlewares/common/forceHTTPS.js +0 -80
- package/src/middlewares/common/hsts.js +0 -122
- package/src/middlewares/common/index.js +0 -7
- package/src/middlewares/html/fastHTML.js +0 -298
- package/src/middlewares/html/index.js +0 -5
- package/src/middlewares/html/showHTML.js +0 -167
- package/src/middlewares/index.js +0 -11
- package/src/middlewares/utils/index.js +0 -3
- package/src/middlewares/utils/versionValidator.js +0 -261
- package/src/services/common/appError.js +0 -136
- package/src/services/common/httpError.js +0 -60
- package/src/services/common/index.js +0 -25
- package/src/services/common/sendFile.js +0 -68
- package/src/services/frontend/frontendFs.js +0 -85
- package/src/services/frontend/index.js +0 -17
- package/src/services/html/htmlGenerator.js +0 -391
- package/src/services/html/index.js +0 -17
- package/src/services/http/apiClient.js +0 -148
- package/src/services/http/http.js +0 -256
- package/src/services/http/index.js +0 -25
- package/src/services/http/responsesBuilder.js +0 -193
- package/src/services/index.js +0 -15
- package/src/services/utils/ensureBearerToken.js +0 -147
- package/src/services/utils/index.js +0 -19
- package/src/types.js +0 -377
- package/src/utils/functions.js +0 -78
- package/src/utils/wrappers.js +0 -131
- package/types/app/index.d.ts +0 -417
- package/types/constants/eventNames.d.ts +0 -93
- package/types/constants/index.d.ts +0 -2
- package/types/controllers/common/configuration.d.ts +0 -71
- package/types/controllers/common/health.d.ts +0 -55
- package/types/controllers/common/index.d.ts +0 -4
- package/types/controllers/common/statics.d.ts +0 -271
- package/types/controllers/index.d.ts +0 -3
- package/types/controllers/utils/gateway.d.ts +0 -947
- package/types/controllers/utils/index.d.ts +0 -2
- package/types/index.d.ts +0 -15
- package/types/middlewares/common/errorHandler.d.ts +0 -143
- package/types/middlewares/common/forceHTTPS.d.ts +0 -64
- package/types/middlewares/common/hsts.d.ts +0 -111
- package/types/middlewares/common/index.d.ts +0 -4
- package/types/middlewares/html/fastHTML.d.ts +0 -238
- package/types/middlewares/html/index.d.ts +0 -3
- package/types/middlewares/html/showHTML.d.ts +0 -128
- package/types/middlewares/index.d.ts +0 -4
- package/types/middlewares/utils/index.d.ts +0 -2
- package/types/middlewares/utils/versionValidator.d.ts +0 -247
- package/types/services/common/appError.d.ts +0 -89
- package/types/services/common/httpError.d.ts +0 -37
- package/types/services/common/index.d.ts +0 -18
- package/types/services/common/sendFile.d.ts +0 -56
- package/types/services/frontend/frontendFs.d.ts +0 -72
- package/types/services/frontend/index.d.ts +0 -3
- package/types/services/html/htmlGenerator.d.ts +0 -298
- package/types/services/html/index.d.ts +0 -3
- package/types/services/http/apiClient.d.ts +0 -141
- package/types/services/http/http.d.ts +0 -159
- package/types/services/http/index.d.ts +0 -18
- package/types/services/http/responsesBuilder.d.ts +0 -140
- package/types/services/index.d.ts +0 -6
- package/types/services/utils/ensureBearerToken.d.ts +0 -137
- package/types/services/utils/index.d.ts +0 -16
- package/types/types.d.ts +0 -280
- package/types/utils/functions.d.ts +0 -55
- package/types/utils/wrappers.d.ts +0 -127
package/src/types.js
DELETED
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('jimple')} Jimple
|
|
3
|
-
* @external Jimple
|
|
4
|
-
* @see https://yarnpkg.com/en/package/jimple
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// ==============================================
|
|
8
|
-
// Externals - Wootils
|
|
9
|
-
// ==============================================
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @typedef {import('wootils/esm/node/appConfiguration').AppConfiguration} AppConfiguration
|
|
13
|
-
* @external AppConfiguration
|
|
14
|
-
* @see https://homer0.github.io/wootils/module-node_appConfiguration.AppConfiguration.html
|
|
15
|
-
* @prettierignore
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @typedef {import('wootils/esm/shared/apiClient')} APIClientBase
|
|
20
|
-
* @external APIClientBase
|
|
21
|
-
* @see https://homer0.github.io/wootils/module-shared_apiClient.APIClient.html
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @typedef {import('wootils/esm/shared/apiClient').APIClientEndpoints} APIClientEndpoints
|
|
26
|
-
* @external APIClientEndpoints
|
|
27
|
-
* @see https://homer0.github.io/wootils/module-shared_apiClient.html#.APIClientEndpoints
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @typedef {import('wootils/esm/node/pathUtils').PathUtils} PathUtils
|
|
32
|
-
* @external PathUtils
|
|
33
|
-
* @see https://homer0.github.io/wootils/module-node_pathUtils.PathUtils.html
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @typedef {import('wootils/esm/node/logger').Logger} Logger
|
|
38
|
-
* @external Logger
|
|
39
|
-
* @see https://homer0.github.io/wootils/module-node_logger.Logger.html
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @typedef {import('wootils/esm/node/environmentUtils').EnvironmentUtils} EnvironmentUtils
|
|
44
|
-
* @external EnvironmentUtils
|
|
45
|
-
* @see https://homer0.github.io/wootils/module-node_environmentUtils.EnvironmentUtils.html
|
|
46
|
-
* @prettierignore
|
|
47
|
-
*/
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* @typedef {import('wootils/esm/shared/eventsHub')} EventsHub
|
|
51
|
-
* @external EventsHub
|
|
52
|
-
* @see https://homer0.github.io/wootils/module-shared_eventsHub.html
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @typedef {import('wootils/esm/shared/jimpleFns').Provider} Provider
|
|
57
|
-
* @external Provider
|
|
58
|
-
* @see https://homer0.github.io/wootils/module-shared_jimpleFns.html#.Provider
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @typedef {import('wootils/esm/shared/jimpleFns').Providers} Providers
|
|
63
|
-
* @external Providers
|
|
64
|
-
* @see https://homer0.github.io/wootils/module-shared_jimpleFns.html#.Providers
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @typedef {import('wootils/esm/shared/jimpleFns').ProviderCreator<O>} ProviderCreator<O>
|
|
69
|
-
* @template O
|
|
70
|
-
* @external ProviderCreator
|
|
71
|
-
* @see https://homer0.github.io/wootils/module-shared_jimpleFns.html#~providerCreator
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
// ==============================================
|
|
75
|
-
// Externals - Express/Server
|
|
76
|
-
// ==============================================
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @typedef {import('express').Express} Express
|
|
80
|
-
* @external Express
|
|
81
|
-
* @see https://expressjs.com/en/4x/api.html
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* @typedef {import('http').Server} HTTPServer
|
|
86
|
-
* @external HTTPServer
|
|
87
|
-
* @see https://nodejs.org/docs/latest-v12.x/api/http.html#http_class_http_server
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* @typedef {import('spdy').Server} SpdyServer
|
|
92
|
-
* @external SpdyServer
|
|
93
|
-
* @see https://github.com/spdy-http2/node-spdy
|
|
94
|
-
*/
|
|
95
|
-
/**
|
|
96
|
-
* @typedef {import('spdy').ServerOptions} SpdyOptions
|
|
97
|
-
* @external SpdyOptions
|
|
98
|
-
* @see https://github.com/spdy-http2/node-spdy#options
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* @typedef {HTTPServer | SpdyServer} Server
|
|
103
|
-
*/
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* @typedef {import('express').RequestHandler} RequestHandler
|
|
107
|
-
* @typedef {import('express').ErrorRequestHandler} ErrorRequestHandler
|
|
108
|
-
*/
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* @typedef {RequestHandler | ErrorRequestHandler} ExpressMiddleware
|
|
112
|
-
* @external ExpressMiddleware
|
|
113
|
-
* @see http://expressjs.com/en/guide/using-middleware.html
|
|
114
|
-
*/
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* @typedef {import('express').Request} ExpressRequest
|
|
118
|
-
* @external ExpressRequest
|
|
119
|
-
* @see https://expressjs.com/en/4x/api.html#req
|
|
120
|
-
*/
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* @typedef {import('express').Response} ExpressResponse
|
|
124
|
-
* @external ExpressResponse
|
|
125
|
-
* @see https://expressjs.com/en/4x/api.html#res
|
|
126
|
-
*/
|
|
127
|
-
/**
|
|
128
|
-
* @typedef {import('express').NextFunction} ExpressNext
|
|
129
|
-
* @external ExpressNext
|
|
130
|
-
* @see https://expressjs.com/en/guide/writing-middleware.html
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* @typedef {import('express').Router} ExpressRouter
|
|
135
|
-
* @external Router
|
|
136
|
-
* @see https://expressjs.com/en/4x/api.html#router
|
|
137
|
-
*/
|
|
138
|
-
|
|
139
|
-
// ==============================================
|
|
140
|
-
// Jimpex - Global classes
|
|
141
|
-
// ==============================================
|
|
142
|
-
|
|
143
|
-
/* eslint-disable jsdoc/valid-types */
|
|
144
|
-
/**
|
|
145
|
-
* @typedef {import('./services/common/httpError')['HTTPError']} ClassHTTPError
|
|
146
|
-
* @typedef {import('./services/common/appError')['AppError']} ClassAppError
|
|
147
|
-
*/
|
|
148
|
-
/* eslint-enable jsdoc/valid-types */
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* @typedef {import('./app').Jimpex} Jimpex
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
// ==============================================
|
|
155
|
-
// Jimpex
|
|
156
|
-
// ==============================================
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* @callback JimpexStartCallback
|
|
160
|
-
* @param {AppConfiguration} appConfiguration The service that handles the application
|
|
161
|
-
* configuration.
|
|
162
|
-
*/
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* @typedef {Object} JimpexConfigurationOptions
|
|
166
|
-
* @property {?Object} default The app default configuration.
|
|
167
|
-
* Default `null`.
|
|
168
|
-
* @property {string} name The name of the app, used for the
|
|
169
|
-
* configuration files. Default `'app'`.
|
|
170
|
-
* @property {string} path The path to the configuration files
|
|
171
|
-
* directory,
|
|
172
|
-
* relative to the project root
|
|
173
|
-
* directory. Default `'config/'`.
|
|
174
|
-
* @property {boolean} hasFolder Whether the configurations are inside
|
|
175
|
-
* a sub directory or not. If `true`, a
|
|
176
|
-
* configuration path would be
|
|
177
|
-
* `config/[app-name]/[file]`.
|
|
178
|
-
* Default `true`.
|
|
179
|
-
* @property {string} environmentVariable The name of the environment variable
|
|
180
|
-
* that will be used to set the active
|
|
181
|
-
* configuration.
|
|
182
|
-
* Default `'CONFIG'`.
|
|
183
|
-
* @property {boolean} loadFromEnvironment Whether or not to check for the
|
|
184
|
-
* environment variable and load a
|
|
185
|
-
* configuration based on its value.
|
|
186
|
-
* Default `true`.
|
|
187
|
-
* @property {boolean} loadVersionFromConfiguration If `true`, the app `version` will be
|
|
188
|
-
* taken from the loaded configuration,
|
|
189
|
-
* otherwise, when a configuration is
|
|
190
|
-
* loaded, the app will copy the version
|
|
191
|
-
* it has into the configuration.
|
|
192
|
-
* Default `true`.
|
|
193
|
-
* @property {string} filenameFormat The name format the configuration
|
|
194
|
-
* files have.
|
|
195
|
-
* Default:
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
* `[app-name].[configuration-name].config.js`.
|
|
199
|
-
*/
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* @typedef {Object} JimpexStaticsOptions
|
|
203
|
-
* @property {boolean} enabled Whether or not to include the middleware for static files.
|
|
204
|
-
* Default `true`.
|
|
205
|
-
* @property {boolean} onHome If `true`, the path to the statics folder will be relative
|
|
206
|
-
* to the project root directory, otherwise, it will be
|
|
207
|
-
* relative to the directory where the app executable file is
|
|
208
|
-
* located. Default `false`.
|
|
209
|
-
* @property {string} route The name of both the route and the folder, relative to
|
|
210
|
-
* whatever you defined with the `onHome` option. Default
|
|
211
|
-
* `'static'`.
|
|
212
|
-
* @property {string} folder By default, the folder will be the same as the `route`,
|
|
213
|
-
* but you can use this option to define a relative path that
|
|
214
|
-
* won't affect the route. Default `''`.
|
|
215
|
-
*/
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* @typedef {Object} JimpexExpressOptions
|
|
219
|
-
* @property {boolean} trustProxy Whether or not to enable the `trust proxy`
|
|
220
|
-
* option.
|
|
221
|
-
* Default `true`.
|
|
222
|
-
* @property {boolean} disableXPoweredBy Whether or not to remove the `x-powered-by`
|
|
223
|
-
* header.
|
|
224
|
-
* Default `true`.
|
|
225
|
-
* @property {boolean} compression Whether or not to add the `compression`
|
|
226
|
-
* middleware.
|
|
227
|
-
* Default `true`.
|
|
228
|
-
* @property {boolean} bodyParser Whether or not to add the `body-parser`
|
|
229
|
-
* middleware.
|
|
230
|
-
* Default `true`.
|
|
231
|
-
* @property {boolean} multer Whether or not to add the `multer` middleware.
|
|
232
|
-
* Default `true`.
|
|
233
|
-
*/
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* @typedef {Object} JimpexDefaultServicesOptions
|
|
237
|
-
* @property {boolean} common Whether or not to register all the `common` service
|
|
238
|
-
* providers.
|
|
239
|
-
* Default `true`.
|
|
240
|
-
* @property {boolean} http Whether or not to register all the `http` service
|
|
241
|
-
* providers.
|
|
242
|
-
* Default `true`.
|
|
243
|
-
* @property {boolean} utils Whether or not to register all the `utils` service
|
|
244
|
-
* providers.
|
|
245
|
-
* Default `true`.
|
|
246
|
-
*/
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* @typedef {Object} JimpexOptions
|
|
250
|
-
* @property {string} version
|
|
251
|
-
* The app version. To be used on the configuration. Default `'0.0.0'`.
|
|
252
|
-
* @property {string} filesizeLimit
|
|
253
|
-
* The size limit for the requests payload. Default `'15MB'`.
|
|
254
|
-
* @property {boolean} boot
|
|
255
|
-
* Whether or not to automatically call the `boot` method after initialization.
|
|
256
|
-
* Default `true`.
|
|
257
|
-
* @property {boolean} proxy
|
|
258
|
-
* Whether or not to enable the proxy mode, so all providers, controllers and middlewares
|
|
259
|
-
* will receive a proxied reference of the container, in which they can set and get
|
|
260
|
-
* resources using dot notation.
|
|
261
|
-
* @property {JimpexConfigurationOptions} configuration
|
|
262
|
-
* The options for the app configuration service.
|
|
263
|
-
* @property {JimpexStaticsOptions} statics
|
|
264
|
-
* The options for the app static `middleware`.
|
|
265
|
-
* @property {JimpexExpressOptions} express
|
|
266
|
-
* The options for the Express app.
|
|
267
|
-
* @property {JimpexDefaultServicesOptions} defaultServices
|
|
268
|
-
* To tell the app which services should be registered when instantiated.
|
|
269
|
-
*/
|
|
270
|
-
|
|
271
|
-
// ==============================================
|
|
272
|
-
// Jimpex - Custom wrappers
|
|
273
|
-
// ==============================================
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* An object that when mounted on Jimpex will take care of handling a list of specific
|
|
277
|
-
* routes. The method Jimpex uses to mount a controller is {@link Jimpex#mount}.
|
|
278
|
-
*
|
|
279
|
-
* @typedef {Object} Controller
|
|
280
|
-
* @property {ControllerConnectFn} connect The function Jimpex calls when mounting the
|
|
281
|
-
* controller.
|
|
282
|
-
* @property {boolean} controller A flag set to `true` to identify the
|
|
283
|
-
* resource as a routes controller.
|
|
284
|
-
*/
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* @callback ControllerProviderRegisterFn
|
|
288
|
-
* @param {Jimpex} app The instance of the application container.
|
|
289
|
-
* @param {string} route The route where the controller will be mounted.
|
|
290
|
-
* @returns {Controller}
|
|
291
|
-
*/
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* This is a special kind of controller that not only registers routes but also adds
|
|
295
|
-
* resources to the container, and to avoid doing it during the mount process, it
|
|
296
|
-
* registers the resources first and then returns the actuall controller.
|
|
297
|
-
*
|
|
298
|
-
* @typedef {Object} ControllerProvider
|
|
299
|
-
* @property {ControllerProviderRegisterFn} register The function Jimpex calls when
|
|
300
|
-
* registering the provider and the one
|
|
301
|
-
* that has to generate the controller.
|
|
302
|
-
*/
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* The function called by the application container in order to mount a routes controller.
|
|
306
|
-
*
|
|
307
|
-
* @callback ControllerConnectFn
|
|
308
|
-
* @param {Jimpex} app The instance of the application container.
|
|
309
|
-
* @param {string} route The route where the controller will be mounted.
|
|
310
|
-
* @returns {Router} The controller router.
|
|
311
|
-
*/
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* A function called in order to generate a {@link Controller}. They usually have
|
|
315
|
-
* different options that will be sent to the controller creation.
|
|
316
|
-
*
|
|
317
|
-
* @callback ControllerCreatorFn
|
|
318
|
-
* @returns {ControllerConnectFn}
|
|
319
|
-
*/
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* A special kind of {@link Controller} that can be used with {@link Jimpex#mount} as a
|
|
323
|
-
* regular controller, or it can be called as a function with custom parameters in order
|
|
324
|
-
* to obtain a "configured {@link Controller}".
|
|
325
|
-
*
|
|
326
|
-
* @callback ControllerCreator
|
|
327
|
-
* @param {Partial<O>} [options={}] The options to create the controller.
|
|
328
|
-
* @returns {Controller | ControllerProvider}
|
|
329
|
-
* @template O
|
|
330
|
-
*/
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* An object that when mounted on Jimpex add an {@link ExpressMiddleware} to the app. The
|
|
334
|
-
* method Jimpex uses to mount a middleware is {@link Jimpex#use}.
|
|
335
|
-
*
|
|
336
|
-
* @typedef {Object} Middleware
|
|
337
|
-
* @property {MiddlewareConnectFn} connect The function Jimpex calls when mounting the
|
|
338
|
-
* middleware.
|
|
339
|
-
* @property {boolean} middleware A flag set to `true` to identify the
|
|
340
|
-
* resource as a middleware.
|
|
341
|
-
*/
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* The function called by the application container in order to use a middleware.
|
|
345
|
-
*
|
|
346
|
-
* @callback MiddlewareConnectFn
|
|
347
|
-
* @param {Jimpex} app The instance of the application container.
|
|
348
|
-
* @returns {?ExpressMiddleware} A middleware for Express to use. It can also return
|
|
349
|
-
* `null` in case there's a reason for the middleware not to
|
|
350
|
-
* be active.
|
|
351
|
-
*/
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* A function called in order to generate a {@link Middleware}. They usually have
|
|
355
|
-
* different options that will be sent to the middleware creation.
|
|
356
|
-
*
|
|
357
|
-
* @callback MiddlewareCreatorFn
|
|
358
|
-
* @returns {MiddlewareConnectFn}
|
|
359
|
-
*/
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* A special kind of {@link Middleware} that can be used with {@link Jimpex#use} as a
|
|
363
|
-
* regular middleware, or it can be called as a function with custom parameters in order
|
|
364
|
-
* to obtain a "configured {@link Middleware}".
|
|
365
|
-
*
|
|
366
|
-
* @callback MiddlewareCreator
|
|
367
|
-
* @param {Partial<O>} [options={}] The options to create the controller.
|
|
368
|
-
* @returns {Middleware}
|
|
369
|
-
* @template O
|
|
370
|
-
*/
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* @typedef {Middleware | ExpressMiddleware} MiddlewareLike
|
|
374
|
-
*/
|
|
375
|
-
|
|
376
|
-
// eslint-disable-next-line
|
|
377
|
-
export {};
|
package/src/utils/functions.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Removes any leading slash from a URL.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} url The URL to format.
|
|
9
|
-
* @returns {string}
|
|
10
|
-
* @parent module:functions
|
|
11
|
-
*/
|
|
12
|
-
const removeLeadingSlash = (url) => url.replace(/^\/+/, '');
|
|
13
|
-
/**
|
|
14
|
-
* Removes any trailing slash from a URL.
|
|
15
|
-
*
|
|
16
|
-
* @param {string} url The URL to format.
|
|
17
|
-
* @returns {string}
|
|
18
|
-
* @parent module:functions
|
|
19
|
-
*/
|
|
20
|
-
const removeTrailingSlash = (url) => url.replace(/\/+$/, '');
|
|
21
|
-
/**
|
|
22
|
-
* Remove any leading and trailing slash from a URL.
|
|
23
|
-
*
|
|
24
|
-
* @param {string} url The URL to format.
|
|
25
|
-
* @param {boolean} [leading=true] Whether or not to remove any leading slash.
|
|
26
|
-
* @param {boolean} [trailing=true] Whether or not to remove the trailing slash.
|
|
27
|
-
* @returns {string}
|
|
28
|
-
* @parent module:functions
|
|
29
|
-
*/
|
|
30
|
-
const removeSlashes = (url, leading = true, trailing = true) => {
|
|
31
|
-
const newUrl = leading ? removeLeadingSlash(url) : url;
|
|
32
|
-
return trailing ? removeTrailingSlash(newUrl) : newUrl;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Escapes a string to be used on `new RegExp(...)`.
|
|
36
|
-
*
|
|
37
|
-
* @param {string} text The text to escape.
|
|
38
|
-
* @returns {string}
|
|
39
|
-
* @parent module:functions
|
|
40
|
-
*/
|
|
41
|
-
const escapeForRegExp = (text) => text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
|
42
|
-
/**
|
|
43
|
-
* Given a server route definition, this function creates a regular expression to match
|
|
44
|
-
* it: The expression replaces the routes parameters with placeholders so it can be
|
|
45
|
-
* compared with real routes.
|
|
46
|
-
*
|
|
47
|
-
* @param {string} route The route from which the expression will be
|
|
48
|
-
* created.
|
|
49
|
-
* @param {boolean} [leadingSlash=true] Whether or not the expression should match a
|
|
50
|
-
* leading slash.
|
|
51
|
-
* @param {boolean} [trailingSlash=false] Whether or not the expression should match a
|
|
52
|
-
* trailing slash. The reason this is `false` by
|
|
53
|
-
* default is because these expressions are often
|
|
54
|
-
* used to match against incoming requests, and
|
|
55
|
-
* they don't have a trailing slash.
|
|
56
|
-
* @returns {RegExp}
|
|
57
|
-
* @parent module:functions
|
|
58
|
-
*/
|
|
59
|
-
const createRouteExpression = (route, leadingSlash = true, trailingSlash = false) => {
|
|
60
|
-
let expression = removeSlashes(route)
|
|
61
|
-
.split('/')
|
|
62
|
-
.map((part) => (part.startsWith(':') ? '(?:([^\\/]+?))' : escapeForRegExp(part)))
|
|
63
|
-
.join('\\/');
|
|
64
|
-
if (leadingSlash) {
|
|
65
|
-
expression = `\\/${expression}`;
|
|
66
|
-
}
|
|
67
|
-
if (trailingSlash) {
|
|
68
|
-
expression = `${expression}\\/`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return new RegExp(expression);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
module.exports.createRouteExpression = createRouteExpression;
|
|
75
|
-
module.exports.escapeForRegExp = escapeForRegExp;
|
|
76
|
-
module.exports.removeLeadingSlash = removeLeadingSlash;
|
|
77
|
-
module.exports.removeSlashes = removeSlashes;
|
|
78
|
-
module.exports.removeTrailingSlash = removeTrailingSlash;
|
package/src/utils/wrappers.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
const {
|
|
2
|
-
provider,
|
|
3
|
-
providerCreator,
|
|
4
|
-
providers,
|
|
5
|
-
resource,
|
|
6
|
-
resourceCreator,
|
|
7
|
-
} = require('wootils/shared/jimpleFns');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @typedef {import('../types').Controller} Controller
|
|
11
|
-
* @typedef {import('../types').Middleware} Middleware
|
|
12
|
-
* @typedef {import('../types').ControllerConnectFn} ControllerConnectFn
|
|
13
|
-
* @typedef {import('../types').ControllerCreatorFn} ControllerCreatorFn
|
|
14
|
-
* @typedef {import('../types').MiddlewareConnectFn} MiddlewareConnectFn
|
|
15
|
-
* @typedef {import('../types').MiddlewareCreatorFn} MiddlewareCreatorFn
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @typedef {import('../types').ControllerCreator<O>} ControllerCreator<O>
|
|
20
|
-
* @template O
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @typedef {import('../types').MiddlewareCreator<O>} MiddlewareCreator<O>
|
|
25
|
-
* @template O
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @module wrappers
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Generates a routes controller for the application container to mount.
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
*
|
|
37
|
-
* const myController = controller((app) => {
|
|
38
|
-
* const router = app.get('router');
|
|
39
|
-
* const ctrl = new MyController();
|
|
40
|
-
* return router.get('...', ctrl.doSomething()).post('...', ctrl.doSomethingElse());
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* @param {ControllerConnectFn} connectFn A function that will be called the moment the
|
|
44
|
-
* app mounts the controller.
|
|
45
|
-
* @returns {Controller}
|
|
46
|
-
* @parent module:wrappers
|
|
47
|
-
*/
|
|
48
|
-
const controller = (connectFn) => resource('controller', 'connect', connectFn);
|
|
49
|
-
/**
|
|
50
|
-
* Generates a configurable routes controller for the application to mount. It's
|
|
51
|
-
* configurable because the creator, instead of just being sent to the container to mount,
|
|
52
|
-
* it can also be called as a function with custom parameters the controller can receive.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
*
|
|
56
|
-
* const myController = controllerCreator((options = {}) => (app) => {
|
|
57
|
-
* const router = app.get('router');
|
|
58
|
-
* const ctrl = new MyController(options);
|
|
59
|
-
* return router.get('...', ctrl.doSomething()).post('...', ctrl.doSomethingElse());
|
|
60
|
-
* });
|
|
61
|
-
*
|
|
62
|
-
* @param {ControllerCreatorFn} creatorFn The function that generates the controller.
|
|
63
|
-
* @returns {ControllerCreator<any>}
|
|
64
|
-
* @parent module:wrappers
|
|
65
|
-
*/
|
|
66
|
-
const controllerCreator = (creatorFn) =>
|
|
67
|
-
resourceCreator('controller', 'connect', creatorFn);
|
|
68
|
-
/**
|
|
69
|
-
* Generates a middleware for the app to use.
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
*
|
|
73
|
-
* const myMiddleware = middleware((app) => (req, res, next) => {
|
|
74
|
-
* if (req.query.greet !== 'true') {
|
|
75
|
-
* return next();
|
|
76
|
-
* }
|
|
77
|
-
*
|
|
78
|
-
* app.get('responsesBuilder').json(res, {
|
|
79
|
-
* hello: 'world',
|
|
80
|
-
* });
|
|
81
|
-
* });
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
*
|
|
85
|
-
* <caption>Disable the middleware base on a configuration option</caption>
|
|
86
|
-
*
|
|
87
|
-
* const myMiddleware = middleware((app) => {
|
|
88
|
-
* if (app.get('appConfiguration').get('someOption') !== true) {
|
|
89
|
-
* return null;
|
|
90
|
-
* }
|
|
91
|
-
*
|
|
92
|
-
* return (req, res, next) => {
|
|
93
|
-
* if (req.query.hello !== 'world') return next();
|
|
94
|
-
* app.get('responsesBuilder').json(res, {
|
|
95
|
-
* hello: 'world',
|
|
96
|
-
* });
|
|
97
|
-
* };
|
|
98
|
-
* });
|
|
99
|
-
*
|
|
100
|
-
* @param {MiddlewareConnectFn} connectFn A function that will be called the moment the
|
|
101
|
-
* app mounts the middleware.
|
|
102
|
-
* @returns {Middleware}
|
|
103
|
-
* @parent module:wrappers
|
|
104
|
-
*/
|
|
105
|
-
const middleware = (connectFn) => resource('middleware', 'connect', connectFn);
|
|
106
|
-
/**
|
|
107
|
-
* Generates a configurable middleware for the app to use. It's configurable because the
|
|
108
|
-
* creator,
|
|
109
|
-
* instead of just being sent to the container to use, it can also be called as a function
|
|
110
|
-
* with custom parameters the middleware can receive.
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
*
|
|
114
|
-
* const myMiddleware = middlewareCreator((options = {}) => (app) =>
|
|
115
|
-
* options.enabled ? (req, res, next) => {} : null,
|
|
116
|
-
* );
|
|
117
|
-
*
|
|
118
|
-
* @param {MiddlewareCreatorFn} creatorFn The function that generates the middleware.
|
|
119
|
-
* @returns {MiddlewareCreator<any>}
|
|
120
|
-
* @parent module:wrappers
|
|
121
|
-
*/
|
|
122
|
-
const middlewareCreator = (creatorFn) =>
|
|
123
|
-
resourceCreator('middleware', 'connect', creatorFn);
|
|
124
|
-
|
|
125
|
-
module.exports.provider = provider;
|
|
126
|
-
module.exports.providerCreator = providerCreator;
|
|
127
|
-
module.exports.providers = providers;
|
|
128
|
-
module.exports.controller = controller;
|
|
129
|
-
module.exports.controllerCreator = controllerCreator;
|
|
130
|
-
module.exports.middleware = middleware;
|
|
131
|
-
module.exports.middlewareCreator = middlewareCreator;
|