@forklaunch/core 0.2.3 → 0.2.6
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/LICENSE +21 -0
- package/lib/dist/cache/index.d.ts +4 -0
- package/lib/dist/cache/index.d.ts.map +1 -0
- package/lib/dist/cache/interfaces/ttlCache.interface.d.ts +2 -0
- package/lib/dist/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
- package/lib/dist/cache/redisTtlCache.d.ts +353 -0
- package/lib/dist/cache/redisTtlCache.d.ts.map +1 -0
- package/{dist → lib/dist}/cache/redisTtlCache.js +1 -4
- package/lib/dist/cache/types/ttlCacheRecord.types.d.ts +2 -0
- package/lib/dist/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
- package/lib/dist/controllers/index.d.ts +2 -0
- package/lib/dist/controllers/index.d.ts.map +1 -0
- package/lib/dist/controllers/interfaces/controller.interface.d.ts +2 -0
- package/lib/dist/controllers/interfaces/controller.interface.d.ts.map +1 -0
- package/lib/dist/database/index.d.ts +2 -0
- package/lib/dist/database/index.d.ts.map +1 -0
- package/lib/dist/database/mikro/models/entities/base.entity.d.ts +26 -0
- package/lib/dist/database/mikro/models/entities/base.entity.d.ts.map +1 -0
- package/lib/dist/database/mikro/models/entities/base.entity.js +46 -0
- package/lib/dist/entityMapper/index.d.ts +3 -0
- package/lib/dist/entityMapper/index.d.ts.map +1 -0
- package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts +2 -0
- package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts.map +1 -0
- package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts +63 -0
- package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts.map +1 -0
- package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts +58 -0
- package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts.map +1 -0
- package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts +56 -0
- package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts.map +1 -0
- package/lib/dist/entityMapper/types/entityMapper.types.d.ts +2 -0
- package/lib/dist/entityMapper/types/entityMapper.types.d.ts.map +1 -0
- package/lib/dist/http/guards/isHttpContractDetails.d.ts +5 -0
- package/lib/dist/http/guards/isHttpContractDetails.d.ts.map +1 -0
- package/lib/dist/http/guards/isHttpContractDetails.js +6 -0
- package/lib/dist/http/guards/isResponseShape.d.ts +2 -0
- package/lib/dist/http/guards/isResponseShape.d.ts.map +1 -0
- package/lib/dist/http/guards/isResponseShape.js +7 -0
- package/lib/dist/http/index.d.ts +6 -0
- package/lib/dist/http/index.d.ts.map +1 -0
- package/{dist → lib/dist}/http/index.js +1 -2
- package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts +12 -0
- package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts.map +1 -0
- package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts +103 -0
- package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
- package/lib/dist/http/interfaces/expressLikeRouter.interface.js +336 -0
- package/lib/dist/http/interfaces/index.d.ts +3 -0
- package/lib/dist/http/interfaces/index.d.ts.map +1 -0
- package/lib/dist/http/interfaces/index.js +2 -0
- package/lib/dist/http/middleware/index.d.ts +3 -0
- package/lib/dist/http/middleware/index.d.ts.map +1 -0
- package/lib/dist/http/middleware/request.middleware.d.ts +69 -0
- package/lib/dist/http/middleware/request.middleware.d.ts.map +1 -0
- package/{dist → lib/dist}/http/middleware/request.middleware.js +55 -117
- package/lib/dist/http/middleware/response.middleware.d.ts +27 -0
- package/lib/dist/http/middleware/response.middleware.d.ts.map +1 -0
- package/lib/dist/http/middleware/response.middleware.js +52 -0
- package/lib/dist/http/openApiV3Generator/index.d.ts +2 -0
- package/lib/dist/http/openApiV3Generator/index.d.ts.map +1 -0
- package/lib/dist/http/openApiV3Generator/index.js +1 -0
- package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts +11 -0
- package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
- package/{dist/http → lib/dist/http/openApiV3Generator}/openApiV3Generator.js +2 -24
- package/lib/dist/http/types/apiDefinition.types.d.ts +2 -0
- package/lib/dist/http/types/apiDefinition.types.d.ts.map +1 -0
- package/lib/dist/http/types/contractDetails.types.d.ts +2 -0
- package/lib/dist/http/types/contractDetails.types.d.ts.map +1 -0
- package/lib/dist/http/types/index.d.ts +4 -0
- package/lib/dist/http/types/index.d.ts.map +1 -0
- package/lib/dist/http/types/index.js +3 -0
- package/lib/dist/http/types/router.types.d.ts +2 -0
- package/lib/dist/http/types/router.types.d.ts.map +1 -0
- package/lib/dist/http/utils/enrichExpressLikeSend.d.ts +28 -0
- package/lib/dist/http/utils/enrichExpressLikeSend.d.ts.map +1 -0
- package/lib/dist/http/utils/enrichExpressLikeSend.js +50 -0
- package/lib/dist/http/utils/httpStatusCodes.d.ts +986 -0
- package/lib/dist/http/utils/httpStatusCodes.d.ts.map +1 -0
- package/lib/dist/http/utils/index.d.ts +3 -0
- package/lib/dist/http/utils/index.d.ts.map +1 -0
- package/lib/dist/http/utils/index.js +2 -0
- package/lib/dist/index.d.ts +7 -0
- package/lib/dist/index.d.ts.map +1 -0
- package/lib/dist/jest.config.d.ts +15 -0
- package/lib/dist/jest.config.d.ts.map +1 -0
- package/lib/dist/jest.config.js +21 -0
- package/lib/dist/lib/index.d.ts +7 -0
- package/lib/dist/lib/index.d.ts.map +1 -0
- package/lib/dist/lib/index.js +6 -0
- package/lib/dist/lib/jest.config.d.ts +15 -0
- package/lib/dist/lib/jest.config.d.ts.map +1 -0
- package/lib/dist/lib/jest.config.js +21 -0
- package/lib/dist/lib/src/cache/index.d.ts +4 -0
- package/lib/dist/lib/src/cache/index.d.ts.map +1 -0
- package/lib/dist/lib/src/cache/index.js +3 -0
- package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts +2 -0
- package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
- package/lib/dist/lib/src/cache/redisTtlCache.d.ts +353 -0
- package/lib/dist/lib/src/cache/redisTtlCache.d.ts.map +1 -0
- package/lib/dist/lib/src/cache/redisTtlCache.js +98 -0
- package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts +2 -0
- package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
- package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.js +1 -0
- package/lib/dist/lib/src/controllers/index.d.ts +2 -0
- package/lib/dist/lib/src/controllers/index.d.ts.map +1 -0
- package/lib/dist/lib/src/controllers/index.js +1 -0
- package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts +2 -0
- package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts.map +1 -0
- package/lib/dist/lib/src/controllers/interfaces/controller.interface.js +1 -0
- package/lib/dist/lib/src/database/index.d.ts +2 -0
- package/lib/dist/lib/src/database/index.d.ts.map +1 -0
- package/lib/dist/lib/src/database/index.js +1 -0
- package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts +26 -0
- package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts.map +1 -0
- package/lib/dist/lib/src/database/mikro/models/entities/base.entity.js +46 -0
- package/lib/dist/lib/src/domainMapper/index.d.ts +3 -0
- package/lib/dist/lib/src/domainMapper/index.d.ts.map +1 -0
- package/lib/dist/lib/src/domainMapper/index.js +2 -0
- package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts +2 -0
- package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
- package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.js +1 -0
- package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts +63 -0
- package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +1 -0
- package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.js +75 -0
- package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts +58 -0
- package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +1 -0
- package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.js +70 -0
- package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts +56 -0
- package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +1 -0
- package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.js +65 -0
- package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts +2 -0
- package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +1 -0
- package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.js +1 -0
- package/lib/dist/lib/src/dtoMapper/index.d.ts +3 -0
- package/lib/dist/lib/src/dtoMapper/index.d.ts.map +1 -0
- package/lib/dist/lib/src/dtoMapper/index.js +2 -0
- package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +2 -0
- package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
- package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +1 -0
- package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +63 -0
- package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +1 -0
- package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.js +75 -0
- package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +58 -0
- package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +1 -0
- package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.js +70 -0
- package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +56 -0
- package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +1 -0
- package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.js +65 -0
- package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts +2 -0
- package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +1 -0
- package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.js +1 -0
- package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts +18 -0
- package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts.map +1 -0
- package/lib/dist/lib/src/http/application/expressLikeApplication.js +20 -0
- package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts +5 -0
- package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts.map +1 -0
- package/lib/dist/lib/src/http/guards/isHttpContractDetails.js +6 -0
- package/lib/dist/lib/src/http/guards/isResponseShape.d.ts +2 -0
- package/lib/dist/lib/src/http/guards/isResponseShape.d.ts.map +1 -0
- package/lib/dist/lib/src/http/guards/isResponseShape.js +7 -0
- package/lib/dist/lib/src/http/handler/typedHandler.d.ts +21 -0
- package/lib/dist/lib/src/http/handler/typedHandler.d.ts.map +1 -0
- package/lib/dist/lib/src/http/handler/typedHandler.js +25 -0
- package/lib/dist/lib/src/http/index.d.ts +11 -0
- package/lib/dist/lib/src/http/index.d.ts.map +1 -0
- package/lib/dist/lib/src/http/index.js +10 -0
- package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts +12 -0
- package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +1 -0
- package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.js +14 -0
- package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +2 -0
- package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
- package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.js +1 -0
- package/lib/dist/lib/src/http/interfaces/index.d.ts +3 -0
- package/lib/dist/lib/src/http/interfaces/index.d.ts.map +1 -0
- package/lib/dist/lib/src/http/interfaces/index.js +2 -0
- package/lib/dist/lib/src/http/middleware/index.d.ts +3 -0
- package/lib/dist/lib/src/http/middleware/index.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/index.js +2 -0
- package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts +27 -0
- package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/request/auth.middleware.js +107 -0
- package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts +9 -0
- package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/request/cors.middleware.js +15 -0
- package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts +12 -0
- package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/request/createContext.middleware.js +26 -0
- package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +12 -0
- package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.js +19 -0
- package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts +13 -0
- package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/request/parse.middleware.js +43 -0
- package/lib/dist/lib/src/http/middleware/request.middleware.d.ts +69 -0
- package/lib/dist/lib/src/http/middleware/request.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/request.middleware.js +210 -0
- package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts +27 -0
- package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/response/parse.middleware.js +52 -0
- package/lib/dist/lib/src/http/middleware/response.middleware.d.ts +27 -0
- package/lib/dist/lib/src/http/middleware/response.middleware.d.ts.map +1 -0
- package/lib/dist/lib/src/http/middleware/response.middleware.js +52 -0
- package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts +2 -0
- package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts.map +1 -0
- package/lib/dist/lib/src/http/openApiV3Generator/index.js +1 -0
- package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts +11 -0
- package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
- package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.js +167 -0
- package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts +89 -0
- package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts.map +1 -0
- package/{dist/http/interfaces/forklaunchExpress.router.interface.js → lib/dist/lib/src/http/router/expressLikeRouter.js} +85 -91
- package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts +2 -0
- package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts.map +1 -0
- package/lib/dist/lib/src/http/types/apiDefinition.types.js +1 -0
- package/lib/dist/lib/src/http/types/contractDetails.types.d.ts +2 -0
- package/lib/dist/lib/src/http/types/contractDetails.types.d.ts.map +1 -0
- package/lib/dist/lib/src/http/types/contractDetails.types.js +1 -0
- package/lib/dist/lib/src/http/types/index.d.ts +4 -0
- package/lib/dist/lib/src/http/types/index.d.ts.map +1 -0
- package/lib/dist/lib/src/http/types/index.js +3 -0
- package/lib/dist/lib/src/http/types/router.types.d.ts +2 -0
- package/lib/dist/lib/src/http/types/router.types.d.ts.map +1 -0
- package/lib/dist/lib/src/http/types/router.types.js +1 -0
- package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts +28 -0
- package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +1 -0
- package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.js +50 -0
- package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts +986 -0
- package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts.map +1 -0
- package/lib/dist/lib/src/http/utils/httpStatusCodes.js +1039 -0
- package/lib/dist/lib/src/http/utils/index.d.ts +3 -0
- package/lib/dist/lib/src/http/utils/index.d.ts.map +1 -0
- package/lib/dist/lib/src/http/utils/index.js +2 -0
- package/lib/dist/lib/src/services/index.d.ts +2 -0
- package/lib/dist/lib/src/services/index.d.ts.map +1 -0
- package/lib/dist/lib/src/services/interfaces/baseService.d.ts +2 -0
- package/lib/dist/lib/src/services/interfaces/baseService.d.ts.map +1 -0
- package/lib/dist/lib/src/services/interfaces/baseService.js +1 -0
- package/lib/dist/lib/tests/dtoMapper.test.d.ts +2 -0
- package/lib/dist/lib/tests/dtoMapper.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/dtoMapper.test.js +172 -0
- package/lib/dist/lib/tests/entityMapper.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/entityMapper.test.js +172 -0
- package/lib/dist/lib/tests/expressLikeRouter.test.d.ts +2 -0
- package/lib/dist/lib/tests/expressLikeRouter.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/expressLikeRouter.test.js +3 -0
- package/lib/dist/lib/tests/http.middleware.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/http.middleware.test.js +95 -0
- package/lib/dist/lib/tests/openApiV3Generator.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/openApiV3Generator.test.js +66 -0
- package/lib/dist/lib/tests/redisTtlCache.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/redisTtlCache.test.js +49 -0
- package/lib/dist/lib/tests/typedHandler.test.d.ts +2 -0
- package/lib/dist/lib/tests/typedHandler.test.d.ts.map +1 -0
- package/lib/dist/lib/tests/typedHandler.test.js +3 -0
- package/lib/dist/lib/vitest.config.d.ts +3 -0
- package/lib/dist/lib/vitest.config.d.ts.map +1 -0
- package/lib/dist/lib/vitest.config.js +7 -0
- package/lib/dist/services/index.d.ts +2 -0
- package/lib/dist/services/index.d.ts.map +1 -0
- package/lib/dist/services/index.js +1 -0
- package/lib/dist/services/interfaces/baseService.d.ts +2 -0
- package/lib/dist/services/interfaces/baseService.d.ts.map +1 -0
- package/lib/dist/services/interfaces/baseService.js +1 -0
- package/lib/dist/tests/entityMapper.test.d.ts +2 -0
- package/lib/dist/tests/entityMapper.test.d.ts.map +1 -0
- package/{dist → lib/dist}/tests/entityMapper.test.js +6 -2
- package/lib/dist/tests/http.middleware.test.d.ts +2 -0
- package/lib/dist/tests/http.middleware.test.d.ts.map +1 -0
- package/{dist → lib/dist}/tests/http.middleware.test.js +39 -21
- package/lib/dist/tests/openApiV3Generator.test.d.ts +2 -0
- package/lib/dist/tests/openApiV3Generator.test.d.ts.map +1 -0
- package/{dist → lib/dist}/tests/openApiV3Generator.test.js +1 -1
- package/lib/dist/tests/redisTtlCache.test.d.ts +2 -0
- package/lib/dist/tests/redisTtlCache.test.d.ts.map +1 -0
- package/lib/eslint.config.mjs +10 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +7 -0
- package/lib/jest.config.d.ts +4 -0
- package/lib/jest.config.d.ts.map +1 -0
- package/lib/jest.config.js +21 -0
- package/lib/src/cache/index.d.ts.map +1 -0
- package/lib/src/cache/index.js +3 -0
- package/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
- package/lib/src/cache/interfaces/ttlCache.interface.js +1 -0
- package/lib/src/cache/redisTtlCache.d.ts.map +1 -0
- package/lib/src/cache/redisTtlCache.js +98 -0
- package/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
- package/lib/src/cache/types/ttlCacheRecord.types.js +1 -0
- package/lib/src/controllers/index.d.ts.map +1 -0
- package/lib/src/controllers/index.js +1 -0
- package/lib/src/controllers/interfaces/controller.interface.d.ts.map +1 -0
- package/lib/src/controllers/interfaces/controller.interface.js +1 -0
- package/lib/src/database/index.d.ts.map +1 -0
- package/lib/src/database/index.js +1 -0
- package/lib/src/database/mikro/models/entities/base.entity.d.ts.map +1 -0
- package/lib/src/domainMapper/index.d.ts +3 -0
- package/lib/src/domainMapper/index.d.ts.map +1 -0
- package/lib/src/domainMapper/index.js +2 -0
- package/{dist/entityMapper/interfaces/entityMapper.interface.d.ts → lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts} +3 -3
- package/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
- package/lib/src/domainMapper/interfaces/dtoMapper.interface.js +1 -0
- package/{dist/entityMapper/models/baseEntityMapper.model.d.ts → lib/src/domainMapper/models/baseDtoMapper.model.d.ts} +13 -13
- package/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +1 -0
- package/lib/src/domainMapper/models/baseDtoMapper.model.js +75 -0
- package/{dist/entityMapper/models/requestEntityMapper.model.d.ts → lib/src/domainMapper/models/requestDtoMapper.model.d.ts} +13 -13
- package/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +1 -0
- package/lib/src/domainMapper/models/requestDtoMapper.model.js +70 -0
- package/{dist/entityMapper/models/responseEntityMapper.model.d.ts → lib/src/domainMapper/models/responseDtoMapper.model.d.ts} +12 -12
- package/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +1 -0
- package/lib/src/domainMapper/models/responseDtoMapper.model.js +65 -0
- package/lib/src/domainMapper/types/dtoMapper.types.d.ts +9 -0
- package/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +1 -0
- package/lib/src/domainMapper/types/dtoMapper.types.js +1 -0
- package/lib/src/dtoMapper/index.d.ts +3 -0
- package/lib/src/dtoMapper/index.d.ts.map +1 -0
- package/lib/src/dtoMapper/index.js +2 -0
- package/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +18 -0
- package/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
- package/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +1 -0
- package/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +72 -0
- package/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +1 -0
- package/lib/src/dtoMapper/models/baseDtoMapper.model.js +75 -0
- package/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +68 -0
- package/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +1 -0
- package/lib/src/dtoMapper/models/requestDtoMapper.model.js +70 -0
- package/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +67 -0
- package/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +1 -0
- package/lib/src/dtoMapper/models/responseDtoMapper.model.js +65 -0
- package/lib/src/dtoMapper/types/dtoMapper.types.d.ts +9 -0
- package/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +1 -0
- package/lib/src/dtoMapper/types/dtoMapper.types.js +1 -0
- package/lib/src/http/application/expressLikeApplication.d.ts +22 -0
- package/lib/src/http/application/expressLikeApplication.d.ts.map +1 -0
- package/lib/src/http/application/expressLikeApplication.js +20 -0
- package/lib/src/http/guards/isExpressLikeSchemaHandler.d.ts +5 -0
- package/lib/src/http/guards/isExpressLikeSchemaHandler.d.ts.map +1 -0
- package/lib/src/http/guards/isExpressLikeSchemaHandler.js +9 -0
- package/lib/src/http/guards/isHttpContractDetails.d.ts +7 -0
- package/lib/src/http/guards/isHttpContractDetails.d.ts.map +1 -0
- package/lib/src/http/guards/isHttpContractDetails.js +9 -0
- package/lib/src/http/guards/isPathParamContractDetails.d.ts +4 -0
- package/lib/src/http/guards/isPathParamContractDetails.d.ts.map +1 -0
- package/lib/src/http/guards/isPathParamContractDetails.js +10 -0
- package/lib/src/http/guards/isResponseShape.d.ts +3 -0
- package/lib/src/http/guards/isResponseShape.d.ts.map +1 -0
- package/lib/src/http/guards/isResponseShape.js +7 -0
- package/lib/src/http/guards/isTypedHandler.d.ts +5 -0
- package/lib/src/http/guards/isTypedHandler.d.ts.map +1 -0
- package/lib/src/http/guards/isTypedHandler.js +6 -0
- package/lib/src/http/handler/typedHandler.d.ts +24 -0
- package/lib/src/http/handler/typedHandler.d.ts.map +1 -0
- package/lib/src/http/handler/typedHandler.js +25 -0
- package/lib/src/http/handlers/typedHandler.d.ts +27 -0
- package/lib/src/http/handlers/typedHandler.d.ts.map +1 -0
- package/lib/src/http/handlers/typedHandler.js +30 -0
- package/lib/src/http/index.d.ts +12 -0
- package/lib/src/http/index.d.ts.map +1 -0
- package/lib/src/http/index.js +11 -0
- package/{dist/http/interfaces/forklaunchExpress.application.interface.d.ts → lib/src/http/interfaces/expressLikeApplication.interface.d.ts} +1 -1
- package/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +1 -0
- package/lib/src/http/interfaces/expressLikeApplication.interface.js +14 -0
- package/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +24 -0
- package/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
- package/lib/src/http/interfaces/expressLikeRouter.interface.js +1 -0
- package/lib/src/http/interfaces/index.d.ts +3 -0
- package/lib/src/http/interfaces/index.d.ts.map +1 -0
- package/lib/src/http/interfaces/index.js +2 -0
- package/lib/src/http/middleware/index.d.ts.map +1 -0
- package/lib/src/http/middleware/index.js +2 -0
- package/lib/src/http/middleware/request/auth.middleware.d.ts +31 -0
- package/lib/src/http/middleware/request/auth.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/request/auth.middleware.js +107 -0
- package/lib/src/http/middleware/request/cors.middleware.d.ts +13 -0
- package/lib/src/http/middleware/request/cors.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/request/cors.middleware.js +15 -0
- package/lib/src/http/middleware/request/createContext.middleware.d.ts +15 -0
- package/lib/src/http/middleware/request/createContext.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/request/createContext.middleware.js +26 -0
- package/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +15 -0
- package/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/request/enrichDetails.middleware.js +19 -0
- package/lib/src/http/middleware/request/parse.middleware.d.ts +17 -0
- package/lib/src/http/middleware/request/parse.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/request/parse.middleware.js +43 -0
- package/lib/src/http/middleware/request.middleware.d.ts +73 -0
- package/lib/src/http/middleware/request.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/request.middleware.js +210 -0
- package/lib/src/http/middleware/response/parse.middleware.d.ts +31 -0
- package/lib/src/http/middleware/response/parse.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/response/parse.middleware.js +52 -0
- package/lib/src/http/middleware/response.middleware.d.ts +31 -0
- package/lib/src/http/middleware/response.middleware.d.ts.map +1 -0
- package/lib/src/http/middleware/response.middleware.js +52 -0
- package/lib/src/http/openApiV3Generator/index.d.ts +2 -0
- package/lib/src/http/openApiV3Generator/index.d.ts.map +1 -0
- package/lib/src/http/openApiV3Generator/index.js +1 -0
- package/{dist/http → lib/src/http/openApiV3Generator}/openApiV3Generator.d.ts +1 -1
- package/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
- package/lib/src/http/openApiV3Generator/openApiV3Generator.js +169 -0
- package/lib/src/http/router/expressLikeRouter.d.ts +135 -0
- package/lib/src/http/router/expressLikeRouter.d.ts.map +1 -0
- package/lib/src/http/router/expressLikeRouter.js +438 -0
- package/{dist/http/types/api.types.d.ts → lib/src/http/types/apiDefinition.types.d.ts} +49 -24
- package/lib/src/http/types/apiDefinition.types.d.ts.map +1 -0
- package/lib/src/http/types/apiDefinition.types.js +1 -0
- package/lib/src/http/types/contractDetails.types.d.ts +169 -0
- package/lib/src/http/types/contractDetails.types.d.ts.map +1 -0
- package/lib/src/http/types/contractDetails.types.js +1 -0
- package/lib/src/http/types/expressLikeRouter.types.d.ts +35 -0
- package/lib/src/http/types/expressLikeRouter.types.d.ts.map +1 -0
- package/lib/src/http/types/expressLikeRouter.types.js +1 -0
- package/lib/src/http/types/index.d.ts +4 -0
- package/lib/src/http/types/index.d.ts.map +1 -0
- package/lib/src/http/types/index.js +3 -0
- package/{dist/http/types/forklaunch.types.d.ts → lib/src/http/types/router.types.d.ts} +3 -3
- package/lib/src/http/types/router.types.d.ts.map +1 -0
- package/lib/src/http/types/router.types.js +1 -0
- package/lib/src/http/utils/enrichExpressLikeSend.d.ts +32 -0
- package/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +1 -0
- package/lib/src/http/utils/enrichExpressLikeSend.js +50 -0
- package/lib/src/http/utils/httpStatusCodes.d.ts.map +1 -0
- package/lib/src/http/utils/httpStatusCodes.js +1039 -0
- package/lib/src/http/utils/index.d.ts +3 -0
- package/lib/src/http/utils/index.d.ts.map +1 -0
- package/lib/src/http/utils/index.js +2 -0
- package/lib/src/services/index.d.ts.map +1 -0
- package/lib/src/services/index.js +1 -0
- package/lib/src/services/interfaces/baseService.d.ts.map +1 -0
- package/lib/src/services/interfaces/baseService.js +1 -0
- package/lib/tests/dtoMapper.test.d.ts +2 -0
- package/lib/tests/dtoMapper.test.d.ts.map +1 -0
- package/lib/tests/dtoMapper.test.js +168 -0
- package/lib/tests/entityMapper.test.d.ts +2 -0
- package/lib/tests/entityMapper.test.js +168 -0
- package/lib/tests/expressLikeRouter.test.d.ts +2 -0
- package/lib/tests/expressLikeRouter.test.d.ts.map +1 -0
- package/lib/tests/expressLikeRouter.test.js +3 -0
- package/lib/tests/expressLikeRouterInstantiation.test.d.ts +2 -0
- package/lib/tests/expressLikeRouterInstantiation.test.d.ts.map +1 -0
- package/lib/tests/expressLikeRouterInstantiation.test.js +60 -0
- package/lib/tests/http.middleware.test.d.ts +2 -0
- package/lib/tests/http.middleware.test.js +102 -0
- package/lib/tests/openApiV3Generator.test.d.ts +2 -0
- package/lib/tests/openApiV3Generator.test.js +66 -0
- package/lib/tests/redisTtlCache.test.d.ts +2 -0
- package/lib/tests/redisTtlCache.test.js +49 -0
- package/lib/tests/typedHandler.test.d.ts +2 -0
- package/lib/tests/typedHandler.test.d.ts.map +1 -0
- package/lib/tests/typedHandler.test.js +3 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/vitest.config.d.ts +3 -0
- package/lib/vitest.config.d.ts.map +1 -0
- package/lib/vitest.config.js +7 -0
- package/package.json +52 -30
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
- package/dist/cache/redisTtlCache.d.ts.map +0 -1
- package/dist/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
- package/dist/controllers/index.d.ts.map +0 -1
- package/dist/controllers/interfaces/controller.interface.d.ts.map +0 -1
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/mikro/models/entities/base.entity.d.ts.map +0 -1
- package/dist/entityMapper/index.d.ts +0 -3
- package/dist/entityMapper/index.d.ts.map +0 -1
- package/dist/entityMapper/interfaces/entityMapper.interface.d.ts.map +0 -1
- package/dist/entityMapper/models/baseEntityMapper.model.d.ts.map +0 -1
- package/dist/entityMapper/models/requestEntityMapper.model.d.ts.map +0 -1
- package/dist/entityMapper/models/responseEntityMapper.model.d.ts.map +0 -1
- package/dist/entityMapper/types/entityMapper.types.d.ts +0 -10
- package/dist/entityMapper/types/entityMapper.types.d.ts.map +0 -1
- package/dist/eslint.config.mjs +0 -10
- package/dist/http/httpStatusCodes.d.ts.map +0 -1
- package/dist/http/index.d.ts +0 -7
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/interfaces/forklaunchExpress.application.interface.d.ts.map +0 -1
- package/dist/http/interfaces/forklaunchExpress.router.interface.d.ts +0 -118
- package/dist/http/interfaces/forklaunchExpress.router.interface.d.ts.map +0 -1
- package/dist/http/interfaces/index.d.ts +0 -3
- package/dist/http/interfaces/index.d.ts.map +0 -1
- package/dist/http/interfaces/index.js +0 -2
- package/dist/http/middleware/index.d.ts.map +0 -1
- package/dist/http/middleware/request.middleware.d.ts +0 -111
- package/dist/http/middleware/request.middleware.d.ts.map +0 -1
- package/dist/http/middleware/response.middleware.d.ts +0 -17
- package/dist/http/middleware/response.middleware.d.ts.map +0 -1
- package/dist/http/middleware/response.middleware.js +0 -49
- package/dist/http/openApiV3Generator.d.ts.map +0 -1
- package/dist/http/regex.d.ts +0 -9
- package/dist/http/regex.d.ts.map +0 -1
- package/dist/http/regex.js +0 -111
- package/dist/http/types/api.types.d.ts.map +0 -1
- package/dist/http/types/forklaunch.types.d.ts.map +0 -1
- package/dist/http/types/index.d.ts +0 -4
- package/dist/http/types/index.d.ts.map +0 -1
- package/dist/http/types/index.js +0 -3
- package/dist/http/types/primitive.types.d.ts +0 -110
- package/dist/http/types/primitive.types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/jest.config.d.ts +0 -4
- package/dist/jest.config.d.ts.map +0 -1
- package/dist/jest.config.js +0 -7
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/interfaces/baseService.d.ts.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/{dist → lib/dist}/cache/index.js +0 -0
- /package/{dist → lib/dist}/cache/interfaces/ttlCache.interface.js +0 -0
- /package/{dist → lib/dist}/cache/types/ttlCacheRecord.types.js +0 -0
- /package/{dist → lib/dist}/controllers/index.js +0 -0
- /package/{dist → lib/dist}/controllers/interfaces/controller.interface.js +0 -0
- /package/{dist → lib/dist}/database/index.js +0 -0
- /package/{dist → lib/dist}/entityMapper/index.js +0 -0
- /package/{dist → lib/dist}/entityMapper/interfaces/entityMapper.interface.js +0 -0
- /package/{dist → lib/dist}/entityMapper/models/baseEntityMapper.model.js +0 -0
- /package/{dist → lib/dist}/entityMapper/models/requestEntityMapper.model.js +0 -0
- /package/{dist → lib/dist}/entityMapper/models/responseEntityMapper.model.js +0 -0
- /package/{dist → lib/dist}/entityMapper/types/entityMapper.types.js +0 -0
- /package/{dist/http/interfaces/forklaunchExpress.application.interface.js → lib/dist/http/interfaces/expressLikeApplication.interface.js} +0 -0
- /package/{dist → lib/dist}/http/middleware/index.js +0 -0
- /package/{dist/http/types/api.types.js → lib/dist/http/types/apiDefinition.types.js} +0 -0
- /package/{dist/http/types/forklaunch.types.js → lib/dist/http/types/contractDetails.types.js} +0 -0
- /package/{dist/http/types/primitive.types.js → lib/dist/http/types/router.types.js} +0 -0
- /package/{dist/http → lib/dist/http/utils}/httpStatusCodes.js +0 -0
- /package/{dist → lib/dist}/index.js +0 -0
- /package/{dist/services/interfaces/baseService.js → lib/dist/lib/src/cache/interfaces/ttlCache.interface.js} +0 -0
- /package/{dist → lib/dist/lib/src}/services/index.js +0 -0
- /package/{dist → lib/dist/lib}/tests/entityMapper.test.d.ts +0 -0
- /package/{dist → lib/dist/lib}/tests/http.middleware.test.d.ts +0 -0
- /package/{dist → lib/dist/lib}/tests/openApiV3Generator.test.d.ts +0 -0
- /package/{dist → lib/dist/lib}/tests/redisTtlCache.test.d.ts +0 -0
- /package/{dist → lib/dist}/tests/redisTtlCache.test.js +0 -0
- /package/{dist → lib}/eslint.config.d.mts +0 -0
- /package/{dist → lib}/eslint.config.d.mts.map +0 -0
- /package/{dist → lib/src}/cache/index.d.ts +0 -0
- /package/{dist → lib/src}/cache/interfaces/ttlCache.interface.d.ts +0 -0
- /package/{dist → lib/src}/cache/redisTtlCache.d.ts +0 -0
- /package/{dist → lib/src}/cache/types/ttlCacheRecord.types.d.ts +0 -0
- /package/{dist → lib/src}/controllers/index.d.ts +0 -0
- /package/{dist → lib/src}/controllers/interfaces/controller.interface.d.ts +0 -0
- /package/{dist → lib/src}/database/index.d.ts +0 -0
- /package/{dist → lib/src}/database/mikro/models/entities/base.entity.d.ts +0 -0
- /package/{dist → lib/src}/database/mikro/models/entities/base.entity.js +0 -0
- /package/{dist → lib/src}/http/middleware/index.d.ts +0 -0
- /package/{dist/http → lib/src/http/utils}/httpStatusCodes.d.ts +0 -0
- /package/{dist → lib/src}/services/index.d.ts +0 -0
- /package/{dist → lib/src}/services/interfaces/baseService.d.ts +0 -0
- /package/{dist → lib}/tests/entityMapper.test.d.ts.map +0 -0
- /package/{dist → lib}/tests/http.middleware.test.d.ts.map +0 -0
- /package/{dist → lib}/tests/openApiV3Generator.test.d.ts.map +0 -0
- /package/{dist → lib}/tests/redisTtlCache.test.d.ts.map +0 -0
@@ -0,0 +1,438 @@
|
|
1
|
+
import { isExpressLikeSchemaHandler } from '../guards/isExpressLikeSchemaHandler';
|
2
|
+
import { isHttpContractDetails } from '../guards/isHttpContractDetails';
|
3
|
+
import { isPathParamHttpContractDetails } from '../guards/isPathParamContractDetails';
|
4
|
+
import { isTypedHandler } from '../guards/isTypedHandler';
|
5
|
+
import { cors } from '../middleware/request/cors.middleware';
|
6
|
+
import { createContext } from '../middleware/request/createContext.middleware';
|
7
|
+
import { enrichDetails } from '../middleware/request/enrichDetails.middleware';
|
8
|
+
import { parse } from '../middleware/request/parse.middleware';
|
9
|
+
/**
|
10
|
+
* A class that represents an Express-like router.
|
11
|
+
*/
|
12
|
+
export class ForklaunchExpressLikeRouter {
|
13
|
+
schemaValidator;
|
14
|
+
internal;
|
15
|
+
routes = [];
|
16
|
+
basePath;
|
17
|
+
constructor(basePath, schemaValidator, internal) {
|
18
|
+
this.schemaValidator = schemaValidator;
|
19
|
+
this.internal = internal;
|
20
|
+
this.basePath = basePath;
|
21
|
+
this.internal.use(createContext(this.schemaValidator));
|
22
|
+
this.internal.use(cors);
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* Resolves middlewares based on the contract details.
|
26
|
+
*
|
27
|
+
* @param {PathParamHttpContractDetails<SV> | HttpContractDetails<SV>} contractDetails - The contract details.
|
28
|
+
* @returns {MiddlewareHandler<SV>[]} - The resolved middlewares.
|
29
|
+
*/
|
30
|
+
#resolveMiddlewares(contractDetails, requestSchema, responseSchemas) {
|
31
|
+
return [
|
32
|
+
enrichDetails(contractDetails, requestSchema, responseSchemas),
|
33
|
+
parse
|
34
|
+
];
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* Parses and runs the controller handler with error handling.
|
38
|
+
*
|
39
|
+
* @template P - The type of request parameters.
|
40
|
+
* @template ResBodyMap - The type of response body.
|
41
|
+
* @template ReqBody - The type of request body.
|
42
|
+
* @template ReqQuery - The type of request query.
|
43
|
+
* @template LocalsObj - The type of local variables.
|
44
|
+
* @template StatusCode - The type of status code.
|
45
|
+
* @param {MiddlewareHandler<SV, P, ResBodyMap | string, ReqBody, ReqQuery, LocalsObj, StatusCode>} requestHandler - The request handler.
|
46
|
+
* @returns {ExpressMiddlewareHandler} - The Express request handler.
|
47
|
+
*/
|
48
|
+
#parseAndRunControllerHandler(requestHandler) {
|
49
|
+
return async (req, res, next) => {
|
50
|
+
if (!requestHandler) {
|
51
|
+
throw new Error('Controller handler is not defined');
|
52
|
+
}
|
53
|
+
try {
|
54
|
+
await requestHandler(req, res, next);
|
55
|
+
}
|
56
|
+
catch (error) {
|
57
|
+
next?.(error);
|
58
|
+
console.error(error);
|
59
|
+
if (!res.headersSent) {
|
60
|
+
res.status(500).send('Internal Server Error');
|
61
|
+
}
|
62
|
+
}
|
63
|
+
};
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* Extracts the controller handler from the provided handlers.
|
67
|
+
*
|
68
|
+
* @template P - The type of request parameters.
|
69
|
+
* @template ResBodyMap - The type of response body.
|
70
|
+
* @template ReqBody - The type of request body.
|
71
|
+
* @template ReqQuery - The type of request query.
|
72
|
+
* @template LocalsObj - The type of local variables.
|
73
|
+
* @param {MiddlewareHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The provided handlers.
|
74
|
+
* @returns {MiddlewareHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>} - The extracted controller handler.
|
75
|
+
* @throws {Error} - Throws an error if the last argument is not a handler.
|
76
|
+
*/
|
77
|
+
#extractControllerHandler(handlers) {
|
78
|
+
const controllerHandler = handlers.pop();
|
79
|
+
if (typeof controllerHandler !== 'function') {
|
80
|
+
throw new Error('Last argument must be a handler');
|
81
|
+
}
|
82
|
+
return controllerHandler;
|
83
|
+
}
|
84
|
+
// TODO: Move to UniversalSDK
|
85
|
+
// /**
|
86
|
+
// * Extracts the SDK path from the given path.
|
87
|
+
// *
|
88
|
+
// * @param {string | RegExp | (string | RegExp)[]} path - The provided path.
|
89
|
+
// * @returns {string} - The extracted SDK path.
|
90
|
+
// * @throws {Error} - Throws an error if the path is not defined.
|
91
|
+
// */
|
92
|
+
// extractSdkPath(path: string | RegExp | (string | RegExp)[]): string {
|
93
|
+
// let sdkPath = path;
|
94
|
+
// if (Array.isArray(path)) {
|
95
|
+
// sdkPath = path.pop() || path[0];
|
96
|
+
// }
|
97
|
+
// if (!sdkPath) {
|
98
|
+
// throw new Error('Path is not defined');
|
99
|
+
// }
|
100
|
+
// if (sdkPath instanceof RegExp) {
|
101
|
+
// sdkPath = generateStringFromRegex(sdkPath);
|
102
|
+
// }
|
103
|
+
// return sdkPath as string;
|
104
|
+
// }
|
105
|
+
#compile(contractDetails) {
|
106
|
+
const schemaValidator = this.schemaValidator;
|
107
|
+
const requestSchema = schemaValidator.compile(schemaValidator.schemify({
|
108
|
+
...(contractDetails.params ? { params: contractDetails.params } : {}),
|
109
|
+
...(contractDetails.requestHeaders
|
110
|
+
? { headers: contractDetails.requestHeaders }
|
111
|
+
: {}),
|
112
|
+
...(contractDetails.query ? { query: contractDetails.query } : {}),
|
113
|
+
...(isHttpContractDetails(contractDetails) && contractDetails.body
|
114
|
+
? { body: contractDetails.body }
|
115
|
+
: {})
|
116
|
+
}));
|
117
|
+
const responseEntries = {
|
118
|
+
400: schemaValidator.string,
|
119
|
+
401: schemaValidator.string,
|
120
|
+
403: schemaValidator.string,
|
121
|
+
404: schemaValidator.string,
|
122
|
+
500: schemaValidator.string,
|
123
|
+
...(isPathParamHttpContractDetails(contractDetails) ||
|
124
|
+
isHttpContractDetails(contractDetails)
|
125
|
+
? { ...contractDetails.responses }
|
126
|
+
: {})
|
127
|
+
};
|
128
|
+
const responseSchemas = {
|
129
|
+
responses: {},
|
130
|
+
...(contractDetails.responseHeaders
|
131
|
+
? {
|
132
|
+
headers: schemaValidator.compile(schemaValidator.schemify(contractDetails.responseHeaders))
|
133
|
+
}
|
134
|
+
: {})
|
135
|
+
};
|
136
|
+
Object.entries(responseEntries).forEach(([code, responseShape]) => {
|
137
|
+
responseSchemas.responses[Number(code)] = schemaValidator.compile(schemaValidator.schemify(responseShape));
|
138
|
+
});
|
139
|
+
return {
|
140
|
+
requestSchema,
|
141
|
+
responseSchemas
|
142
|
+
};
|
143
|
+
}
|
144
|
+
/**
|
145
|
+
* Executes request locally, applying parameters
|
146
|
+
*
|
147
|
+
* @param handlers {ExpressLikeHandler<SV>}
|
148
|
+
* @param controllerHandler
|
149
|
+
* @returns
|
150
|
+
*/
|
151
|
+
#localParamRequest(handlers, controllerHandler) {
|
152
|
+
return async (route, request) => {
|
153
|
+
let statusCode;
|
154
|
+
let responseMessage;
|
155
|
+
const responseHeaders = {};
|
156
|
+
const req = {
|
157
|
+
params: request?.params ?? {},
|
158
|
+
query: request?.query ?? {},
|
159
|
+
headers: request?.headers ?? {},
|
160
|
+
body: request?.body ?? {},
|
161
|
+
path: route
|
162
|
+
};
|
163
|
+
const res = {
|
164
|
+
status: (code) => {
|
165
|
+
statusCode = code;
|
166
|
+
return res;
|
167
|
+
},
|
168
|
+
send: (message) => {
|
169
|
+
responseMessage = message;
|
170
|
+
},
|
171
|
+
json: (body) => {
|
172
|
+
responseMessage = body;
|
173
|
+
},
|
174
|
+
jsonp: (body) => {
|
175
|
+
responseMessage = body;
|
176
|
+
},
|
177
|
+
setHeader: (key, value) => {
|
178
|
+
responseHeaders[key] = value;
|
179
|
+
}
|
180
|
+
};
|
181
|
+
let cursor = handlers.shift();
|
182
|
+
if (cursor) {
|
183
|
+
for (const fn of handlers) {
|
184
|
+
await cursor(req, res, (err) => {
|
185
|
+
if (err) {
|
186
|
+
throw err;
|
187
|
+
}
|
188
|
+
cursor = fn;
|
189
|
+
});
|
190
|
+
}
|
191
|
+
await cursor(req, res, async (err) => {
|
192
|
+
if (err) {
|
193
|
+
throw err;
|
194
|
+
}
|
195
|
+
});
|
196
|
+
}
|
197
|
+
const cHandler = controllerHandler;
|
198
|
+
await cHandler(req, res, (err) => {
|
199
|
+
if (err) {
|
200
|
+
throw err;
|
201
|
+
}
|
202
|
+
});
|
203
|
+
return {
|
204
|
+
code: statusCode,
|
205
|
+
response: responseMessage,
|
206
|
+
headers: responseHeaders
|
207
|
+
};
|
208
|
+
};
|
209
|
+
}
|
210
|
+
registerRoute(method, path, registrationMethod, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareAndTypedHandler) {
|
211
|
+
// in this case, we know that the first argument is the typedHandler. As a result, we only use defined handlers
|
212
|
+
if (isTypedHandler(contractDetailsOrMiddlewareOrTypedHandler)) {
|
213
|
+
const { contractDetails, handlers } = contractDetailsOrMiddlewareOrTypedHandler;
|
214
|
+
return this.registerRoute(method, path, registrationMethod, contractDetails, ...handlers);
|
215
|
+
}
|
216
|
+
// in this case, we test for the last element of the handlers. If typed handler, break this down
|
217
|
+
else {
|
218
|
+
const maybeTypedHandler = middlewareOrMiddlewareAndTypedHandler.pop();
|
219
|
+
if (isTypedHandler(maybeTypedHandler)) {
|
220
|
+
const { contractDetails, handlers } = maybeTypedHandler;
|
221
|
+
return this.registerRoute(method, path, registrationMethod, contractDetails, ...middlewareOrMiddlewareAndTypedHandler.concat(handlers));
|
222
|
+
}
|
223
|
+
else {
|
224
|
+
if (isExpressLikeSchemaHandler(contractDetailsOrMiddlewareOrTypedHandler) ||
|
225
|
+
isTypedHandler(contractDetailsOrMiddlewareOrTypedHandler)) {
|
226
|
+
throw new Error('Contract details are not defined');
|
227
|
+
}
|
228
|
+
const contractDetails = contractDetailsOrMiddlewareOrTypedHandler;
|
229
|
+
const handlers = middlewareOrMiddlewareAndTypedHandler.filter((handler) => isExpressLikeSchemaHandler(handler));
|
230
|
+
if (!isHttpContractDetails(contractDetails) ||
|
231
|
+
!isPathParamHttpContractDetails(contractDetails)) {
|
232
|
+
throw new Error('Contract details are malformed for route definition');
|
233
|
+
}
|
234
|
+
this.routes.push({
|
235
|
+
basePath: this.basePath,
|
236
|
+
path,
|
237
|
+
method,
|
238
|
+
contractDetails
|
239
|
+
});
|
240
|
+
const { requestSchema, responseSchemas } = this.#compile(contractDetails);
|
241
|
+
const controllerHandler = this.#extractControllerHandler(handlers);
|
242
|
+
registrationMethod.bind(this.internal)(path, ...this.#resolveMiddlewares(contractDetails, requestSchema, responseSchemas).concat(handlers), this.#parseAndRunControllerHandler(controllerHandler));
|
243
|
+
return this.#localParamRequest(handlers, controllerHandler);
|
244
|
+
}
|
245
|
+
}
|
246
|
+
}
|
247
|
+
#extractMiddlewareFromEnrichedTypedHandlerArray(middlewareOrMiddlewareWithTypedHandler) {
|
248
|
+
const lastHandler = middlewareOrMiddlewareWithTypedHandler.pop();
|
249
|
+
let rawHandler = [lastHandler];
|
250
|
+
if (isTypedHandler(lastHandler)) {
|
251
|
+
rawHandler = lastHandler.handlers;
|
252
|
+
}
|
253
|
+
return [
|
254
|
+
...middlewareOrMiddlewareWithTypedHandler,
|
255
|
+
...rawHandler
|
256
|
+
];
|
257
|
+
}
|
258
|
+
#extractMiddlewareAsRouterHandlers(contractDetailsOrMiddlewareOrTypedHandler, middlewareOrMiddlewareWithTypedHandler) {
|
259
|
+
const middleware = [];
|
260
|
+
if (isTypedHandler(contractDetailsOrMiddlewareOrTypedHandler)) {
|
261
|
+
middleware.push(...contractDetailsOrMiddlewareOrTypedHandler.handlers);
|
262
|
+
}
|
263
|
+
else if (isExpressLikeSchemaHandler(contractDetailsOrMiddlewareOrTypedHandler)) {
|
264
|
+
middleware.push(contractDetailsOrMiddlewareOrTypedHandler);
|
265
|
+
}
|
266
|
+
middleware.push(...this.#extractMiddlewareFromEnrichedTypedHandlerArray(middlewareOrMiddlewareWithTypedHandler));
|
267
|
+
return middleware;
|
268
|
+
}
|
269
|
+
registerMiddlewareHandler(registrationMethod, pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) {
|
270
|
+
const middleware = [];
|
271
|
+
if (typeof pathOrContractDetailsOrMiddlewareOrTypedHandler === 'string') {
|
272
|
+
middleware.push(...this.#extractMiddlewareAsRouterHandlers(contractDetailsOrMiddlewareOrTypedHandler, middlewareOrMiddlewareWithTypedHandler));
|
273
|
+
const path = pathOrContractDetailsOrMiddlewareOrTypedHandler;
|
274
|
+
registrationMethod.bind(this.internal)(path, ...middleware);
|
275
|
+
}
|
276
|
+
else {
|
277
|
+
middleware.push(...this.#extractMiddlewareAsRouterHandlers(pathOrContractDetailsOrMiddlewareOrTypedHandler, (isExpressLikeSchemaHandler(contractDetailsOrMiddlewareOrTypedHandler) ||
|
278
|
+
isTypedHandler(contractDetailsOrMiddlewareOrTypedHandler)
|
279
|
+
? [contractDetailsOrMiddlewareOrTypedHandler]
|
280
|
+
: []).concat(middlewareOrMiddlewareWithTypedHandler)));
|
281
|
+
registrationMethod.bind(this.internal)(...middleware);
|
282
|
+
}
|
283
|
+
return this;
|
284
|
+
}
|
285
|
+
use = (pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
286
|
+
return this.registerMiddlewareHandler(this.internal.use, pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler);
|
287
|
+
};
|
288
|
+
all = (pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
289
|
+
return this.registerMiddlewareHandler(this.internal.all, pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler);
|
290
|
+
};
|
291
|
+
connect = (pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
292
|
+
return this.registerMiddlewareHandler(this.internal.connect, pathOrContractDetailsOrMiddlewareOrTypedHandler, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler);
|
293
|
+
};
|
294
|
+
/**
|
295
|
+
* Registers a GET route with the specified contract details and handler handlers.
|
296
|
+
*
|
297
|
+
* @template P - The type of request parameters.
|
298
|
+
* @template ResBodyMap - The type of response body.
|
299
|
+
* @template ReqBody - The type of request body.
|
300
|
+
* @template ReqQuery - The type of request query.
|
301
|
+
* @template LocalsObj - The type of local variables.
|
302
|
+
* @param {string} path - The path for the route.
|
303
|
+
* @param {PathParamHttpContractDetails<SV, P, ResBodyMap, ReqQuery>} contractDetails - The contract details.
|
304
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
305
|
+
* @returns {ExpressRouter} - The Express router.
|
306
|
+
*/
|
307
|
+
get = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
308
|
+
return {
|
309
|
+
get: this.registerRoute('get', path, this.internal.get, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
310
|
+
};
|
311
|
+
};
|
312
|
+
/**
|
313
|
+
* Registers a POST route with the specified contract details and handler handlers.
|
314
|
+
*
|
315
|
+
* @template P - The type of request parameters.
|
316
|
+
* @template ResBodyMap - The type of response body.
|
317
|
+
* @template ReqBody - The type of request body.
|
318
|
+
* @template ReqQuery - The type of request query.
|
319
|
+
* @template LocalsObj - The type of local variables.
|
320
|
+
* @param {string} path - The path for the route.
|
321
|
+
* @param {HttpContractDetails<SV, P, ResBodyMap, ReqBody, ReqQuery>} contractDetails - The contract details.
|
322
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
323
|
+
* @returns {ExpressRouter} - The Expxwress router.
|
324
|
+
*/
|
325
|
+
post = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
326
|
+
return {
|
327
|
+
post: this.registerRoute('post', path, this.internal.post, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
328
|
+
};
|
329
|
+
};
|
330
|
+
/**
|
331
|
+
* Registers a PUT route with the specified contract details and handler handlers.
|
332
|
+
*
|
333
|
+
* @template P - The type of request parameters.
|
334
|
+
* @template ResBodyMap - The type of response body.
|
335
|
+
* @template ReqBody - The type of request body.
|
336
|
+
* @template ReqQuery - The type of request query.
|
337
|
+
* @template LocalsObj - The type of local variables.
|
338
|
+
* @param {string} path - The path for the route.
|
339
|
+
* @param {HttpContractDetails<SV, P, ResBodyMap, ReqBody, ReqQuery>} contractDetails - The contract details.
|
340
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
341
|
+
* @returns {ExpressRouter} - The Express router.
|
342
|
+
*/
|
343
|
+
put = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
344
|
+
return {
|
345
|
+
put: this.registerRoute('put', path, this.internal.put, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
346
|
+
};
|
347
|
+
};
|
348
|
+
/**
|
349
|
+
* Registers a PATCH route with the specified contract details and handler handlers.
|
350
|
+
*
|
351
|
+
* @template P - The type of request parameters.
|
352
|
+
* @template ResBodyMap - The type of response body.
|
353
|
+
* @template ReqBody - The type of request body.
|
354
|
+
* @template ReqQuery - The type of request query.
|
355
|
+
* @template LocalsObj - The type of local variables.
|
356
|
+
* @param {string} path - The path for the route.
|
357
|
+
* @param {HttpContractDetails<SV, P, ResBodyMap, ReqBody, ReqQuery>} contractDetails - The contract details.
|
358
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
359
|
+
* @returns {ExpressRouter} - The Express router.
|
360
|
+
*/
|
361
|
+
patch = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
362
|
+
return {
|
363
|
+
patch: this.registerRoute('patch', path, this.internal.patch, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
364
|
+
};
|
365
|
+
};
|
366
|
+
/**
|
367
|
+
* Registers a DELETE route with the specified contract details and handler handlers.
|
368
|
+
*
|
369
|
+
* @template P - The type of request parameters.
|
370
|
+
* @template ResBodyMap - The type of response body.
|
371
|
+
* @template ReqBody - The type of request body.
|
372
|
+
* @template ReqQuery - The type of request query.
|
373
|
+
* @template LocalsObj - The type of local variables.
|
374
|
+
* @param {string} path - The path for the route.
|
375
|
+
* @param {PathParamHttpContractDetails<SV, P, ResBodyMap, ReqQuery>} contractDetails - The contract details.
|
376
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
377
|
+
* @returns {ExpressRouter} - The Express router.
|
378
|
+
*/
|
379
|
+
delete = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
380
|
+
return {
|
381
|
+
delete: this.registerRoute('delete', path, this.internal.delete, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
382
|
+
};
|
383
|
+
};
|
384
|
+
/**
|
385
|
+
* Registers a OPTIONS route with the specified contract details and handler handlers.
|
386
|
+
*
|
387
|
+
* @template P - The type of request parameters.
|
388
|
+
* @template ResBodyMap - The type of response body.
|
389
|
+
* @template ReqBody - The type of request body.
|
390
|
+
* @template ReqQuery - The type of request query.
|
391
|
+
* @template LocalsObj - The type of local variables.
|
392
|
+
* @param {string} path - The path for the route.
|
393
|
+
* @param {PathParamHttpContractDetails<SV, P, ResBodyMap, ReqQuery>} contractDetails - The contract details.
|
394
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
395
|
+
* @returns {ExpressRouter} - The Express router.
|
396
|
+
*/
|
397
|
+
options = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
398
|
+
return {
|
399
|
+
options: this.registerRoute('options', path, this.internal.options, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
400
|
+
};
|
401
|
+
};
|
402
|
+
/**
|
403
|
+
* Registers a HEAD route with the specified contract details and handler handlers.
|
404
|
+
*
|
405
|
+
* @template P - The type of request parameters.
|
406
|
+
* @template ResBodyMap - The type of response body.
|
407
|
+
* @template ReqBody - The type of request body.
|
408
|
+
* @template ReqQuery - The type of request query.
|
409
|
+
* @template LocalsObj - The type of local variables.
|
410
|
+
* @param {string} path - The path for the route.
|
411
|
+
* @param {PathParamHttpContractDetails<SV, P, ResBodyMap, ReqQuery>} contractDetails - The contract details.
|
412
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
413
|
+
* @returns {ExpressRouter} - The Express router.
|
414
|
+
*/
|
415
|
+
head = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
416
|
+
return {
|
417
|
+
head: this.registerRoute('head', path, this.internal.head, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
418
|
+
};
|
419
|
+
};
|
420
|
+
/**
|
421
|
+
* Registers a TRACE route with the specified contract details and handler handlers.
|
422
|
+
*
|
423
|
+
* @template P - The type of request parameters.
|
424
|
+
* @template ResBodyMap - The type of response body.
|
425
|
+
* @template ReqBody - The type of request body.
|
426
|
+
* @template ReqQuery - The type of request query.
|
427
|
+
* @template LocalsObj - The type of local variables.
|
428
|
+
* @param {string} path - The path for the route.
|
429
|
+
* @param {PathParamHttpContractDetails<SV, P, ResBodyMap, ReqQuery>} contractDetails - The contract details.
|
430
|
+
* @param {...SchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, LocalsObj>[]} handlers - The handler handlers.
|
431
|
+
* @returns {ExpressRouter} - The Express router.
|
432
|
+
*/
|
433
|
+
trace = (path, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler) => {
|
434
|
+
return {
|
435
|
+
trace: this.registerRoute('trace', path, this.internal.trace, contractDetailsOrMiddlewareOrTypedHandler, ...middlewareOrMiddlewareWithTypedHandler)
|
436
|
+
};
|
437
|
+
};
|
438
|
+
}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import { Prettify } from '@forklaunch/common';
|
2
|
-
import { AnySchemaValidator,
|
3
|
-
import { IdiomaticSchema, SchemaValidator } from '@forklaunch/validator/types';
|
2
|
+
import { AnySchemaValidator, SchemaValidator } from '@forklaunch/validator';
|
4
3
|
import { ParsedQs } from 'qs';
|
5
|
-
import { Body, HeadersObject, HttpContractDetails, ParamsDictionary, ParamsObject, PathParamHttpContractDetails, QueryObject, ResponsesObject } from './
|
4
|
+
import { Body, HeadersObject, HttpContractDetails, MapSchema, ParamsDictionary, ParamsObject, PathParamHttpContractDetails, QueryObject, ResponseCompiledSchema, ResponsesObject } from './contractDetails.types';
|
6
5
|
/**
|
7
6
|
* Interface representing the context of a request.
|
8
7
|
*/
|
@@ -36,7 +35,19 @@ export interface ForklaunchRequest<SV extends AnySchemaValidator, P extends Para
|
|
36
35
|
body: ReqBody;
|
37
36
|
/** Request query */
|
38
37
|
query: ReqQuery;
|
38
|
+
/** Method */
|
39
|
+
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'CONNECT' | 'TRACE';
|
40
|
+
/** Request schema, compiled */
|
41
|
+
requestSchema: unknown;
|
39
42
|
}
|
43
|
+
/**
|
44
|
+
* Represents the types of data that can be sent in a response.
|
45
|
+
*/
|
46
|
+
export type ForklaunchSendableData = Record<string, unknown> | string | Buffer | ArrayBuffer | NodeJS.ReadableStream | null | undefined;
|
47
|
+
/**
|
48
|
+
* Interface representing a Forklaunch response status.
|
49
|
+
* @template ResBody - A type for the response body.
|
50
|
+
*/
|
40
51
|
export interface ForklaunchStatusResponse<ResBody> {
|
41
52
|
/**
|
42
53
|
* Sends the response.
|
@@ -78,8 +89,6 @@ export interface ForklaunchResponse<ResBodyMap extends Record<number, unknown>,
|
|
78
89
|
bodyData: unknown;
|
79
90
|
/** Status code of the response */
|
80
91
|
statusCode: number;
|
81
|
-
/** Whether the response is corked */
|
82
|
-
corked: boolean;
|
83
92
|
/** Whether the response is finished */
|
84
93
|
headersSent: boolean;
|
85
94
|
/**
|
@@ -103,16 +112,18 @@ export interface ForklaunchResponse<ResBodyMap extends Record<number, unknown>,
|
|
103
112
|
<U extends keyof (ResBodyMap & ForklaunchResErrors)>(code: U): ForklaunchStatusResponse<(Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)[U]>;
|
104
113
|
<U extends keyof (ResBodyMap & ForklaunchResErrors)>(code: U, message?: string): ForklaunchStatusResponse<(Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)[U]>;
|
105
114
|
};
|
115
|
+
/**
|
116
|
+
* Ends the response.
|
117
|
+
* @param {string} [data] - Optional data to send.
|
118
|
+
*/
|
119
|
+
end: (data?: string) => void;
|
106
120
|
/** Local variables */
|
107
121
|
locals: LocalsObj;
|
122
|
+
/** Cors */
|
123
|
+
cors: boolean;
|
124
|
+
/** Response schema, compiled */
|
125
|
+
responseSchemas: ResponseCompiledSchema;
|
108
126
|
}
|
109
|
-
/**
|
110
|
-
* Type representing a mapped schema.
|
111
|
-
*
|
112
|
-
* @template SV - A type that extends AnySchemaValidator.
|
113
|
-
* @template T - A type that extends IdiomaticSchema or a valid schema object.
|
114
|
-
*/
|
115
|
-
export type MapSchema<SV extends AnySchemaValidator, T extends IdiomaticSchema<SV> | SV['_ValidSchemaObject']> = Schema<T, SV> extends infer U ? (T extends U ? unknown : U) : never;
|
116
127
|
/**
|
117
128
|
* Type representing the next function in a middleware.
|
118
129
|
* @param {unknown} [err] - Optional error parameter.
|
@@ -129,7 +140,7 @@ export type ForklaunchNextFunction = (err?: unknown) => void;
|
|
129
140
|
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
130
141
|
* @template StatusCode - A type for the status code, defaulting to number.
|
131
142
|
*/
|
132
|
-
export interface
|
143
|
+
export interface ExpressLikeHandler<SV extends AnySchemaValidator, P extends ParamsDictionary, ResBodyMap extends Record<number, unknown>, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>> {
|
133
144
|
(req: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, res: ForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj>, next?: ForklaunchNextFunction): void | Promise<void>;
|
134
145
|
}
|
135
146
|
/**
|
@@ -142,7 +153,7 @@ export interface ForklaunchMiddlewareHandler<SV extends AnySchemaValidator, P ex
|
|
142
153
|
* @template ReqQuery - A type for the request query, defaulting to QueryObject.
|
143
154
|
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
144
155
|
*/
|
145
|
-
export type
|
156
|
+
export type ExpressLikeSchemaHandler<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = ExpressLikeHandler<SV, MapSchema<SV, P> extends infer Params ? unknown extends Params ? ParamsDictionary : Params : ParamsDictionary, MapSchema<SV, ResBodyMap> extends infer ResponseBodyMap ? unknown extends ResponseBodyMap ? ForklaunchResErrors : ResponseBodyMap : ForklaunchResErrors, MapSchema<SV, ReqBody> extends infer Body ? unknown extends Body ? Record<string, unknown> : Body : Record<string, unknown>, MapSchema<SV, ReqQuery> extends infer Query ? unknown extends Query ? ParsedQs : Query : ParsedQs, MapSchema<SV, ReqHeaders> extends infer RequestHeaders ? unknown extends RequestHeaders ? Record<string, string> : RequestHeaders : Record<string, string>, MapSchema<SV, ResHeaders> extends infer ResponseHeaders ? unknown extends ResponseHeaders ? ForklaunchResHeaders : ResponseHeaders : ForklaunchResHeaders, LocalsObj>;
|
146
157
|
/**
|
147
158
|
* Represents a live type function for the SDK.
|
148
159
|
*
|
@@ -156,15 +167,15 @@ export type ForklaunchSchemaMiddlewareHandler<SV extends AnySchemaValidator, P e
|
|
156
167
|
* @template ResHeaders - A type for the response headers.
|
157
168
|
*
|
158
169
|
*/
|
159
|
-
export type LiveTypeFunction<SV extends AnySchemaValidator, Route extends string, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>> = (
|
170
|
+
export type LiveTypeFunction<SV extends AnySchemaValidator, Route extends string, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>> = (ParamsObject<SV> extends P ? unknown : {
|
160
171
|
params: MapSchema<SV, P>;
|
161
|
-
}) & (
|
172
|
+
}) & (Body<SV> extends ReqBody ? unknown : {
|
162
173
|
body: MapSchema<SV, ReqBody>;
|
163
|
-
}) & (
|
174
|
+
}) & (QueryObject<SV> extends ReqQuery ? unknown : {
|
164
175
|
query: MapSchema<SV, ReqQuery>;
|
165
|
-
}) & (
|
176
|
+
}) & (HeadersObject<SV> extends ReqHeaders ? unknown : {
|
166
177
|
headers: MapSchema<SV, ReqHeaders>;
|
167
|
-
}) extends infer Request ? SdkResponse<ForklaunchResErrors & (
|
178
|
+
}) extends infer Request ? SdkResponse<ForklaunchResErrors & (HeadersObject<SV> extends ResBodyMap ? unknown : MapSchema<SV, ResBodyMap>), ForklaunchResHeaders extends ResHeaders ? unknown : MapSchema<SV, ResHeaders>> extends infer Return ? unknown extends Request ? (route: Route) => Promise<Return> : (route: Route, request: Request) => Promise<Return> : never : never;
|
168
179
|
/**
|
169
180
|
* Represents a basic SDK Response object.
|
170
181
|
*
|
@@ -172,9 +183,9 @@ export type LiveTypeFunction<SV extends AnySchemaValidator, Route extends string
|
|
172
183
|
* @template ResHeaders - A type for the response headers.
|
173
184
|
*/
|
174
185
|
type SdkResponse<ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, string> | unknown> = Prettify<{
|
175
|
-
[
|
176
|
-
code:
|
177
|
-
response: ResBodyMap[
|
186
|
+
[K in keyof ResBodyMap]: {
|
187
|
+
code: K;
|
188
|
+
response: ResBodyMap[K];
|
178
189
|
} & (unknown extends ResHeaders ? unknown : {
|
179
190
|
headers: ResHeaders;
|
180
191
|
});
|
@@ -197,6 +208,20 @@ export type ForklaunchResHeaders = {
|
|
197
208
|
/**
|
198
209
|
* Represents the default error types for responses.
|
199
210
|
*/
|
200
|
-
export type
|
211
|
+
export type ErrorContainer<Code extends number> = {
|
212
|
+
/** The error code */
|
213
|
+
code: Code;
|
214
|
+
/** The error message */
|
215
|
+
error: string;
|
216
|
+
};
|
217
|
+
/**
|
218
|
+
* Represents a parsed response shape.
|
219
|
+
*/
|
220
|
+
export type ResponseShape<Params, Headers, Query, Body> = {
|
221
|
+
params: Params;
|
222
|
+
headers: Headers;
|
223
|
+
query: Query;
|
224
|
+
body: Body;
|
225
|
+
};
|
201
226
|
export {};
|
202
|
-
//# sourceMappingURL=
|
227
|
+
//# sourceMappingURL=apiDefinition.types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"apiDefinition.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/apiDefinition.types.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|