adorn-api 1.0.0 → 1.0.2
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/README.md +54 -249
- package/dist/adapters/express/createApp.d.ts +158 -0
- package/dist/adapters/express/createApp.d.ts.map +1 -0
- package/dist/adapters/express/createApp.js +141 -0
- package/dist/adapters/express/createApp.js.map +1 -0
- package/dist/adapters/express/index.d.ts +7 -0
- package/dist/adapters/express/index.d.ts.map +1 -0
- package/dist/adapters/express/index.js +7 -0
- package/dist/adapters/express/index.js.map +1 -0
- package/dist/adapters/express/middleware/errorHandler.d.ts +194 -0
- package/dist/adapters/express/middleware/errorHandler.d.ts.map +1 -0
- package/dist/adapters/express/middleware/errorHandler.js +167 -0
- package/dist/adapters/express/middleware/errorHandler.js.map +1 -0
- package/dist/adapters/express/middleware/requestContext.d.ts +2 -0
- package/dist/adapters/express/middleware/requestContext.d.ts.map +1 -0
- package/dist/adapters/express/middleware/requestContext.js +3 -0
- package/dist/adapters/express/middleware/requestContext.js.map +1 -0
- package/dist/adapters/express/router.d.ts +10 -0
- package/dist/adapters/express/router.d.ts.map +1 -0
- package/dist/adapters/express/router.js +105 -0
- package/dist/adapters/express/router.js.map +1 -0
- package/dist/adapters/express/swagger/index.d.ts +2 -0
- package/dist/adapters/express/swagger/index.d.ts.map +1 -0
- package/dist/adapters/express/swagger/index.js +2 -0
- package/dist/adapters/express/swagger/index.js.map +1 -0
- package/dist/adapters/express/swagger/serve.d.ts +12 -0
- package/dist/adapters/express/swagger/serve.d.ts.map +1 -0
- package/dist/adapters/express/swagger/serve.js +72 -0
- package/dist/adapters/express/swagger/serve.js.map +1 -0
- package/dist/adapters/express/transport/request.d.ts +4 -0
- package/dist/adapters/express/transport/request.d.ts.map +1 -0
- package/dist/adapters/express/transport/request.js +12 -0
- package/dist/adapters/express/transport/request.js.map +1 -0
- package/dist/adapters/express/transport/response.d.ts +5 -0
- package/dist/adapters/express/transport/response.d.ts.map +1 -0
- package/dist/adapters/express/transport/response.js +36 -0
- package/dist/adapters/express/transport/response.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +2 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +3 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/gen.d.ts +2 -0
- package/dist/cli/commands/gen.d.ts.map +1 -0
- package/dist/cli/commands/gen.js +3 -0
- package/dist/cli/commands/gen.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +3 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -0
- package/dist/compiler/config/defaults.d.ts +2 -0
- package/dist/compiler/config/defaults.d.ts.map +1 -0
- package/dist/compiler/config/defaults.js +3 -0
- package/dist/compiler/config/defaults.js.map +1 -0
- package/dist/compiler/config/loadConfig.d.ts +2 -0
- package/dist/compiler/config/loadConfig.d.ts.map +1 -0
- package/dist/compiler/config/loadConfig.js +3 -0
- package/dist/compiler/config/loadConfig.js.map +1 -0
- package/dist/compiler/diagnostics/errors.d.ts +2 -0
- package/dist/compiler/diagnostics/errors.d.ts.map +1 -0
- package/dist/compiler/diagnostics/errors.js +3 -0
- package/dist/compiler/diagnostics/errors.js.map +1 -0
- package/dist/compiler/emit/openapi.d.ts +2 -0
- package/dist/compiler/emit/openapi.d.ts.map +1 -0
- package/dist/compiler/emit/openapi.js +3 -0
- package/dist/compiler/emit/openapi.js.map +1 -0
- package/dist/compiler/emit/routes.d.ts +2 -0
- package/dist/compiler/emit/routes.d.ts.map +1 -0
- package/dist/compiler/emit/routes.js +3 -0
- package/dist/compiler/emit/routes.js.map +1 -0
- package/dist/compiler/program/loadTsProgram.d.ts +2 -0
- package/dist/compiler/program/loadTsProgram.d.ts.map +1 -0
- package/dist/compiler/program/loadTsProgram.js +3 -0
- package/dist/compiler/program/loadTsProgram.js.map +1 -0
- package/dist/compiler/scan/actions.d.ts +2 -0
- package/dist/compiler/scan/actions.d.ts.map +1 -0
- package/dist/compiler/scan/actions.js +3 -0
- package/dist/compiler/scan/actions.js.map +1 -0
- package/dist/compiler/scan/controllers.d.ts +2 -0
- package/dist/compiler/scan/controllers.d.ts.map +1 -0
- package/dist/compiler/scan/controllers.js +3 -0
- package/dist/compiler/scan/controllers.js.map +1 -0
- package/dist/compiler/scan/types.d.ts +2 -0
- package/dist/compiler/scan/types.d.ts.map +1 -0
- package/dist/compiler/scan/types.js +3 -0
- package/dist/compiler/scan/types.js.map +1 -0
- package/dist/contracts/context.d.ts +10 -0
- package/dist/contracts/context.d.ts.map +1 -0
- package/dist/contracts/context.js +2 -0
- package/dist/contracts/context.js.map +1 -0
- package/dist/contracts/errors.d.ts +22 -0
- package/dist/contracts/errors.d.ts.map +1 -0
- package/dist/contracts/errors.js +2 -0
- package/dist/contracts/errors.js.map +1 -0
- package/dist/contracts/http.d.ts +2 -0
- package/dist/contracts/http.d.ts.map +1 -0
- package/dist/contracts/http.js +3 -0
- package/dist/contracts/http.js.map +1 -0
- package/dist/contracts/middleware.d.ts +2 -0
- package/dist/contracts/middleware.d.ts.map +1 -0
- package/dist/contracts/middleware.js +3 -0
- package/dist/contracts/middleware.js.map +1 -0
- package/dist/contracts/openapi-v3.d.ts +538 -0
- package/dist/contracts/openapi-v3.d.ts.map +1 -0
- package/dist/contracts/openapi-v3.js +2 -0
- package/dist/contracts/openapi-v3.js.map +1 -0
- package/dist/contracts/openapi.d.ts +2 -0
- package/dist/contracts/openapi.d.ts.map +1 -0
- package/dist/contracts/openapi.js +2 -0
- package/dist/contracts/openapi.js.map +1 -0
- package/dist/contracts/reply.d.ts +119 -0
- package/dist/contracts/reply.d.ts.map +1 -0
- package/dist/contracts/reply.js +43 -0
- package/dist/contracts/reply.js.map +1 -0
- package/dist/contracts/response-types.d.ts +40 -0
- package/dist/contracts/response-types.d.ts.map +1 -0
- package/dist/contracts/response-types.js +2 -0
- package/dist/contracts/response-types.js.map +1 -0
- package/dist/contracts/responses.d.ts +98 -0
- package/dist/contracts/responses.d.ts.map +1 -0
- package/dist/contracts/responses.js +2 -0
- package/dist/contracts/responses.js.map +1 -0
- package/dist/contracts/route-options.d.ts +155 -0
- package/dist/contracts/route-options.d.ts.map +1 -0
- package/dist/contracts/route-options.js +2 -0
- package/dist/contracts/route-options.js.map +1 -0
- package/dist/contracts/route-typing.d.ts +25 -0
- package/dist/contracts/route-typing.d.ts.map +1 -0
- package/dist/contracts/route-typing.js +2 -0
- package/dist/contracts/route-typing.js.map +1 -0
- package/dist/contracts/validator.d.ts +146 -0
- package/dist/contracts/validator.d.ts.map +1 -0
- package/dist/contracts/validator.js +2 -0
- package/dist/contracts/validator.js.map +1 -0
- package/dist/core/binding/binder.d.ts +74 -0
- package/dist/core/binding/binder.d.ts.map +1 -0
- package/dist/core/binding/binder.js +161 -0
- package/dist/core/binding/binder.js.map +1 -0
- package/dist/core/binding/coerce/arrays.d.ts +7 -0
- package/dist/core/binding/coerce/arrays.d.ts.map +1 -0
- package/dist/core/binding/coerce/arrays.js +28 -0
- package/dist/core/binding/coerce/arrays.js.map +1 -0
- package/dist/core/binding/coerce/csv.d.ts +2 -0
- package/dist/core/binding/coerce/csv.d.ts.map +1 -0
- package/dist/core/binding/coerce/csv.js +7 -0
- package/dist/core/binding/coerce/csv.js.map +1 -0
- package/dist/core/binding/coerce/objects.d.ts +2 -0
- package/dist/core/binding/coerce/objects.d.ts.map +1 -0
- package/dist/core/binding/coerce/objects.js +3 -0
- package/dist/core/binding/coerce/objects.js.map +1 -0
- package/dist/core/binding/coerce/primitives.d.ts +70 -0
- package/dist/core/binding/coerce/primitives.d.ts.map +1 -0
- package/dist/core/binding/coerce/primitives.js +88 -0
- package/dist/core/binding/coerce/primitives.js.map +1 -0
- package/dist/core/binding/index.d.ts +2 -0
- package/dist/core/binding/index.d.ts.map +1 -0
- package/dist/core/binding/index.js +2 -0
- package/dist/core/binding/index.js.map +1 -0
- package/dist/core/binding/rules/inferFromHttpMethod.d.ts +6 -0
- package/dist/core/binding/rules/inferFromHttpMethod.d.ts.map +1 -0
- package/dist/core/binding/rules/inferFromHttpMethod.js +11 -0
- package/dist/core/binding/rules/inferFromHttpMethod.js.map +1 -0
- package/dist/core/binding/rules/inferFromPath.d.ts +2 -0
- package/dist/core/binding/rules/inferFromPath.d.ts.map +1 -0
- package/dist/core/binding/rules/inferFromPath.js +9 -0
- package/dist/core/binding/rules/inferFromPath.js.map +1 -0
- package/dist/core/binding/rules/wrappers.d.ts +2 -0
- package/dist/core/binding/rules/wrappers.d.ts.map +1 -0
- package/dist/core/binding/rules/wrappers.js +3 -0
- package/dist/core/binding/rules/wrappers.js.map +1 -0
- package/dist/core/errors/http-error.d.ts +63 -0
- package/dist/core/errors/http-error.d.ts.map +1 -0
- package/dist/core/errors/http-error.js +71 -0
- package/dist/core/errors/http-error.js.map +1 -0
- package/dist/core/errors/index.d.ts +4 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +4 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/problem.d.ts +3 -0
- package/dist/core/errors/problem.d.ts.map +1 -0
- package/dist/core/errors/problem.js +33 -0
- package/dist/core/errors/problem.js.map +1 -0
- package/dist/core/errors/validation-error.d.ts +73 -0
- package/dist/core/errors/validation-error.d.ts.map +1 -0
- package/dist/core/errors/validation-error.js +82 -0
- package/dist/core/errors/validation-error.js.map +1 -0
- package/dist/core/openapi/buildOpenApi.d.ts +79 -0
- package/dist/core/openapi/buildOpenApi.d.ts.map +1 -0
- package/dist/core/openapi/buildOpenApi.js +196 -0
- package/dist/core/openapi/buildOpenApi.js.map +1 -0
- package/dist/core/openapi/index.d.ts +2 -0
- package/dist/core/openapi/index.d.ts.map +1 -0
- package/dist/core/openapi/index.js +2 -0
- package/dist/core/openapi/index.js.map +1 -0
- package/dist/core/openapi/schema/formats.d.ts +2 -0
- package/dist/core/openapi/schema/formats.d.ts.map +1 -0
- package/dist/core/openapi/schema/formats.js +3 -0
- package/dist/core/openapi/schema/formats.js.map +1 -0
- package/dist/core/openapi/schema/registry.d.ts +9 -0
- package/dist/core/openapi/schema/registry.d.ts.map +1 -0
- package/dist/core/openapi/schema/registry.js +21 -0
- package/dist/core/openapi/schema/registry.js.map +1 -0
- package/dist/core/openapi/schema/schemaModel.d.ts +2 -0
- package/dist/core/openapi/schema/schemaModel.d.ts.map +1 -0
- package/dist/core/openapi/schema/schemaModel.js +3 -0
- package/dist/core/openapi/schema/schemaModel.js.map +1 -0
- package/dist/core/openapi/schema/schemaRegistry.d.ts +2 -0
- package/dist/core/openapi/schema/schemaRegistry.d.ts.map +1 -0
- package/dist/core/openapi/schema/schemaRegistry.js +3 -0
- package/dist/core/openapi/schema/schemaRegistry.js.map +1 -0
- package/dist/core/openapi/schema/toOpenApi.d.ts +4 -0
- package/dist/core/openapi/schema/toOpenApi.d.ts.map +1 -0
- package/dist/core/openapi/schema/toOpenApi.js +82 -0
- package/dist/core/openapi/schema/toOpenApi.js.map +1 -0
- package/dist/core/pipeline/compose.d.ts +2 -0
- package/dist/core/pipeline/compose.d.ts.map +1 -0
- package/dist/core/pipeline/compose.js +3 -0
- package/dist/core/pipeline/compose.js.map +1 -0
- package/dist/core/pipeline/errorMap.d.ts +2 -0
- package/dist/core/pipeline/errorMap.d.ts.map +1 -0
- package/dist/core/pipeline/errorMap.js +3 -0
- package/dist/core/pipeline/errorMap.js.map +1 -0
- package/dist/core/pipeline/invoke.d.ts +2 -0
- package/dist/core/pipeline/invoke.d.ts.map +1 -0
- package/dist/core/pipeline/invoke.js +3 -0
- package/dist/core/pipeline/invoke.js.map +1 -0
- package/dist/core/pipeline/result.d.ts +2 -0
- package/dist/core/pipeline/result.d.ts.map +1 -0
- package/dist/core/pipeline/result.js +3 -0
- package/dist/core/pipeline/result.js.map +1 -0
- package/dist/core/registry/buildRegistry.d.ts +3 -0
- package/dist/core/registry/buildRegistry.d.ts.map +1 -0
- package/dist/core/registry/buildRegistry.js +105 -0
- package/dist/core/registry/buildRegistry.js.map +1 -0
- package/dist/core/registry/conflicts.d.ts +6 -0
- package/dist/core/registry/conflicts.d.ts.map +1 -0
- package/dist/core/registry/conflicts.js +21 -0
- package/dist/core/registry/conflicts.js.map +1 -0
- package/dist/core/registry/index.d.ts +5 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +5 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/normalize.d.ts +3 -0
- package/dist/core/registry/normalize.d.ts.map +1 -0
- package/dist/core/registry/normalize.js +24 -0
- package/dist/core/registry/normalize.js.map +1 -0
- package/dist/core/registry/types.d.ts +225 -0
- package/dist/core/registry/types.d.ts.map +1 -0
- package/dist/core/registry/types.js +2 -0
- package/dist/core/registry/types.js.map +1 -0
- package/dist/core/reply/index.d.ts +3 -0
- package/dist/core/reply/index.d.ts.map +1 -0
- package/dist/core/reply/index.js +3 -0
- package/dist/core/reply/index.js.map +1 -0
- package/dist/core/reply/reply.d.ts +102 -0
- package/dist/core/reply/reply.d.ts.map +1 -0
- package/dist/core/reply/reply.js +105 -0
- package/dist/core/reply/reply.js.map +1 -0
- package/dist/core/reply/typed.d.ts +161 -0
- package/dist/core/reply/typed.d.ts.map +1 -0
- package/dist/core/reply/typed.js +154 -0
- package/dist/core/reply/typed.js.map +1 -0
- package/dist/core/responses/helpers.d.ts +10 -0
- package/dist/core/responses/helpers.d.ts.map +1 -0
- package/dist/core/responses/helpers.js +8 -0
- package/dist/core/responses/helpers.js.map +1 -0
- package/dist/core/responses/index.d.ts +4 -0
- package/dist/core/responses/index.d.ts.map +1 -0
- package/dist/core/responses/index.js +4 -0
- package/dist/core/responses/index.js.map +1 -0
- package/dist/core/responses/normalize.d.ts +3 -0
- package/dist/core/responses/normalize.d.ts.map +1 -0
- package/dist/core/responses/normalize.js +33 -0
- package/dist/core/responses/normalize.js.map +1 -0
- package/dist/core/responses/pickStatus.d.ts +3 -0
- package/dist/core/responses/pickStatus.d.ts.map +1 -0
- package/dist/core/responses/pickStatus.js +27 -0
- package/dist/core/responses/pickStatus.js.map +1 -0
- package/dist/core/route/defineRoute.d.ts +74 -0
- package/dist/core/route/defineRoute.d.ts.map +1 -0
- package/dist/core/route/defineRoute.js +59 -0
- package/dist/core/route/defineRoute.js.map +1 -0
- package/dist/core/route/index.d.ts +2 -0
- package/dist/core/route/index.d.ts.map +1 -0
- package/dist/core/route/index.js +2 -0
- package/dist/core/route/index.js.map +1 -0
- package/dist/core/serialization/json.d.ts +2 -0
- package/dist/core/serialization/json.d.ts.map +1 -0
- package/dist/core/serialization/json.js +3 -0
- package/dist/core/serialization/json.js.map +1 -0
- package/dist/core/typing/path-params.d.ts +2 -0
- package/dist/core/typing/path-params.d.ts.map +1 -0
- package/dist/core/typing/path-params.js +2 -0
- package/dist/core/typing/path-params.js.map +1 -0
- package/dist/decorators/binding.d.ts +9 -0
- package/dist/decorators/binding.d.ts.map +1 -0
- package/dist/decorators/binding.js +18 -0
- package/dist/decorators/binding.js.map +1 -0
- package/dist/decorators/controller.d.ts +6 -0
- package/dist/decorators/controller.d.ts.map +1 -0
- package/dist/decorators/controller.js +26 -0
- package/dist/decorators/controller.js.map +1 -0
- package/dist/decorators/db.d.ts +2 -0
- package/dist/decorators/db.d.ts.map +1 -0
- package/dist/decorators/db.js +3 -0
- package/dist/decorators/db.js.map +1 -0
- package/dist/decorators/docs.d.ts +8 -0
- package/dist/decorators/docs.d.ts.map +1 -0
- package/dist/decorators/docs.js +46 -0
- package/dist/decorators/docs.js.map +1 -0
- package/dist/decorators/index.d.ts +7 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +7 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/methods.d.ts +146 -0
- package/dist/decorators/methods.d.ts.map +1 -0
- package/dist/decorators/methods.js +170 -0
- package/dist/decorators/methods.js.map +1 -0
- package/dist/decorators/middleware.d.ts +2 -0
- package/dist/decorators/middleware.d.ts.map +1 -0
- package/dist/decorators/middleware.js +3 -0
- package/dist/decorators/middleware.js.map +1 -0
- package/dist/decorators/responses.d.ts +7 -0
- package/dist/decorators/responses.d.ts.map +1 -0
- package/dist/decorators/responses.js +44 -0
- package/dist/decorators/responses.js.map +1 -0
- package/dist/decorators/security.d.ts +8 -0
- package/dist/decorators/security.d.ts.map +1 -0
- package/dist/decorators/security.js +39 -0
- package/dist/decorators/security.js.map +1 -0
- package/dist/express.d.ts +2 -0
- package/dist/express.d.ts.map +1 -0
- package/dist/express.js +2 -0
- package/dist/express.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -0
- package/dist/integrations/metal-orm/index.d.ts +2 -0
- package/dist/integrations/metal-orm/index.d.ts.map +1 -0
- package/dist/integrations/metal-orm/index.js +2 -0
- package/dist/integrations/metal-orm/index.js.map +1 -0
- package/dist/integrations/metal-orm/pagination/executePaged.d.ts +2 -0
- package/dist/integrations/metal-orm/pagination/executePaged.d.ts.map +1 -0
- package/dist/integrations/metal-orm/pagination/executePaged.js +3 -0
- package/dist/integrations/metal-orm/pagination/executePaged.js.map +1 -0
- package/dist/integrations/metal-orm/pagination/page.d.ts +2 -0
- package/dist/integrations/metal-orm/pagination/page.d.ts.map +1 -0
- package/dist/integrations/metal-orm/pagination/page.js +3 -0
- package/dist/integrations/metal-orm/pagination/page.js.map +1 -0
- package/dist/integrations/metal-orm/query/filters.d.ts +2 -0
- package/dist/integrations/metal-orm/query/filters.d.ts.map +1 -0
- package/dist/integrations/metal-orm/query/filters.js +3 -0
- package/dist/integrations/metal-orm/query/filters.js.map +1 -0
- package/dist/integrations/metal-orm/query/search.d.ts +2 -0
- package/dist/integrations/metal-orm/query/search.d.ts.map +1 -0
- package/dist/integrations/metal-orm/query/search.js +3 -0
- package/dist/integrations/metal-orm/query/search.js.map +1 -0
- package/dist/integrations/metal-orm/query/sort.d.ts +2 -0
- package/dist/integrations/metal-orm/query/sort.d.ts.map +1 -0
- package/dist/integrations/metal-orm/query/sort.js +3 -0
- package/dist/integrations/metal-orm/query/sort.js.map +1 -0
- package/dist/integrations/metal-orm/save-graph/helpers.d.ts +2 -0
- package/dist/integrations/metal-orm/save-graph/helpers.d.ts.map +1 -0
- package/dist/integrations/metal-orm/save-graph/helpers.js +3 -0
- package/dist/integrations/metal-orm/save-graph/helpers.js.map +1 -0
- package/dist/integrations/metal-orm/save-graph/types.d.ts +2 -0
- package/dist/integrations/metal-orm/save-graph/types.d.ts.map +1 -0
- package/dist/integrations/metal-orm/save-graph/types.js +3 -0
- package/dist/integrations/metal-orm/save-graph/types.js.map +1 -0
- package/dist/integrations/metal-orm/schema/column-map.d.ts +96 -0
- package/dist/integrations/metal-orm/schema/column-map.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/column-map.js +207 -0
- package/dist/integrations/metal-orm/schema/column-map.js.map +1 -0
- package/dist/integrations/metal-orm/schema/ddl.d.ts +2 -0
- package/dist/integrations/metal-orm/schema/ddl.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/ddl.js +3 -0
- package/dist/integrations/metal-orm/schema/ddl.js.map +1 -0
- package/dist/integrations/metal-orm/schema/dto.d.ts +7 -0
- package/dist/integrations/metal-orm/schema/dto.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/dto.js +34 -0
- package/dist/integrations/metal-orm/schema/dto.js.map +1 -0
- package/dist/integrations/metal-orm/schema/entity.d.ts +99 -0
- package/dist/integrations/metal-orm/schema/entity.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/entity.js +99 -0
- package/dist/integrations/metal-orm/schema/entity.js.map +1 -0
- package/dist/integrations/metal-orm/schema/filters.d.ts +11 -0
- package/dist/integrations/metal-orm/schema/filters.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/filters.js +21 -0
- package/dist/integrations/metal-orm/schema/filters.js.map +1 -0
- package/dist/integrations/metal-orm/schema/index.d.ts +5 -0
- package/dist/integrations/metal-orm/schema/index.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/index.js +5 -0
- package/dist/integrations/metal-orm/schema/index.js.map +1 -0
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts +2 -0
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js +3 -0
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js.map +1 -0
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts +2 -0
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js +3 -0
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js.map +1 -0
- package/dist/integrations/metal-orm/schema/sqlite.d.ts +2 -0
- package/dist/integrations/metal-orm/schema/sqlite.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/sqlite.js +3 -0
- package/dist/integrations/metal-orm/schema/sqlite.js.map +1 -0
- package/dist/integrations/metal-orm/schema/tabledef.d.ts +4 -0
- package/dist/integrations/metal-orm/schema/tabledef.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/tabledef.js +10 -0
- package/dist/integrations/metal-orm/schema/tabledef.js.map +1 -0
- package/dist/integrations/metal-orm/schema/types.d.ts +7 -0
- package/dist/integrations/metal-orm/schema/types.d.ts.map +1 -0
- package/dist/integrations/metal-orm/schema/types.js +2 -0
- package/dist/integrations/metal-orm/schema/types.js.map +1 -0
- package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts +2 -0
- package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts.map +1 -0
- package/dist/integrations/metal-orm/serialization/entitySerializer.js +3 -0
- package/dist/integrations/metal-orm/serialization/entitySerializer.js.map +1 -0
- package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts +2 -0
- package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts.map +1 -0
- package/dist/integrations/metal-orm/serialization/relationPolicy.js +3 -0
- package/dist/integrations/metal-orm/serialization/relationPolicy.js.map +1 -0
- package/dist/integrations/metal-orm/session/context.d.ts +2 -0
- package/dist/integrations/metal-orm/session/context.d.ts.map +1 -0
- package/dist/integrations/metal-orm/session/context.js +3 -0
- package/dist/integrations/metal-orm/session/context.js.map +1 -0
- package/dist/integrations/metal-orm/session/middleware.d.ts +2 -0
- package/dist/integrations/metal-orm/session/middleware.d.ts.map +1 -0
- package/dist/integrations/metal-orm/session/middleware.js +3 -0
- package/dist/integrations/metal-orm/session/middleware.js.map +1 -0
- package/dist/integrations/metal-orm/session/transaction.d.ts +2 -0
- package/dist/integrations/metal-orm/session/transaction.d.ts.map +1 -0
- package/dist/integrations/metal-orm/session/transaction.js +3 -0
- package/dist/integrations/metal-orm/session/transaction.js.map +1 -0
- package/dist/integrations/metal-orm/testing/setupSchema.d.ts +2 -0
- package/dist/integrations/metal-orm/testing/setupSchema.d.ts.map +1 -0
- package/dist/integrations/metal-orm/testing/setupSchema.js +3 -0
- package/dist/integrations/metal-orm/testing/setupSchema.js.map +1 -0
- package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts +2 -0
- package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts.map +1 -0
- package/dist/integrations/metal-orm/testing/sqliteMemory.js +3 -0
- package/dist/integrations/metal-orm/testing/sqliteMemory.js.map +1 -0
- package/dist/metadata/bag.d.ts +18 -0
- package/dist/metadata/bag.d.ts.map +1 -0
- package/dist/metadata/bag.js +39 -0
- package/dist/metadata/bag.js.map +1 -0
- package/dist/metadata/index.d.ts +4 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +4 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/keys.d.ts +254 -0
- package/dist/metadata/keys.d.ts.map +1 -0
- package/dist/metadata/keys.js +23 -0
- package/dist/metadata/keys.js.map +1 -0
- package/dist/metadata/merge.d.ts +9 -0
- package/dist/metadata/merge.d.ts.map +1 -0
- package/dist/metadata/merge.js +30 -0
- package/dist/metadata/merge.js.map +1 -0
- package/dist/metal-orm.d.ts +2 -0
- package/dist/metal-orm.d.ts.map +1 -0
- package/dist/metal-orm.js +2 -0
- package/dist/metal-orm.js.map +1 -0
- package/dist/validation/native/index.d.ts +3 -0
- package/dist/validation/native/index.d.ts.map +1 -0
- package/dist/validation/native/index.js +3 -0
- package/dist/validation/native/index.js.map +1 -0
- package/dist/validation/native/ir.d.ts +38 -0
- package/dist/validation/native/ir.d.ts.map +1 -0
- package/dist/validation/native/ir.js +2 -0
- package/dist/validation/native/ir.js.map +1 -0
- package/dist/validation/native/schema.d.ts +63 -0
- package/dist/validation/native/schema.d.ts.map +1 -0
- package/dist/validation/native/schema.js +271 -0
- package/dist/validation/native/schema.js.map +1 -0
- package/dist/validation/native/validator.d.ts +21 -0
- package/dist/validation/native/validator.d.ts.map +1 -0
- package/dist/validation/native/validator.js +48 -0
- package/dist/validation/native/validator.js.map +1 -0
- package/package.json +57 -34
- package/dist/cli/generate-routes.js +0 -101
- package/dist/cli/generate-swagger.js +0 -197
- package/dist/controllers/advanced.controller.js +0 -131
- package/dist/controllers/user.controller.js +0 -121
- package/dist/entities/user.entity.js +0 -1
- package/dist/lib/common.js +0 -62
- package/dist/lib/decorators.js +0 -116
- package/dist/middleware/auth.middleware.js +0 -13
- package/dist/routes.js +0 -80
- package/dist/server.js +0 -18
- package/dist/src/cli/generate-routes.js +0 -105
- package/dist/src/cli/generate-swagger.js +0 -197
- package/dist/src/index.js +0 -4
- package/dist/src/lib/common.js +0 -62
- package/dist/src/lib/decorators.js +0 -116
- package/dist/src/routes.js +0 -80
- package/dist/src/server.js +0 -18
- package/dist/tests/example-app/controllers/advanced.controller.js +0 -130
- package/dist/tests/example-app/controllers/controllers/advanced.controller.js +0 -131
- package/dist/tests/example-app/controllers/controllers/user.controller.js +0 -121
- package/dist/tests/example-app/controllers/user.controller.js +0 -121
- package/dist/tests/example-app/entities/entities/user.entity.js +0 -1
- package/dist/tests/example-app/entities/user.entity.js +0 -1
- package/dist/tests/example-app/middleware/auth.middleware.js +0 -13
- package/dist/tests/example-app/middleware/middleware/auth.middleware.js +0 -13
- package/dist/tests/example-app/routes.js +0 -80
- package/dist/tests/example-app/server.js +0 -23
- package/scripts/run-example.js +0 -32
- package/src/cli/generate-routes.ts +0 -123
- package/src/cli/generate-swagger.ts +0 -216
- package/src/index.js +0 -20
- package/src/index.ts +0 -4
- package/src/lib/common.js +0 -68
- package/src/lib/common.ts +0 -35
- package/src/lib/decorators.js +0 -128
- package/src/lib/decorators.ts +0 -136
- package/swagger.json +0 -238
- package/tests/e2e.test.ts +0 -72
- package/tests/example-app/controllers/advanced.controller.ts +0 -52
- package/tests/example-app/controllers/user.controller.ts +0 -35
- package/tests/example-app/entities/user.entity.ts +0 -8
- package/tests/example-app/middleware/auth.middleware.ts +0 -16
- package/tests/example-app/routes.ts +0 -102
- package/tests/example-app/server.ts +0 -30
- package/tests/generators.test.ts +0 -48
- package/tests/utils.ts +0 -46
- package/tsconfig.json +0 -20
package/README.md
CHANGED
|
@@ -1,249 +1,54 @@
|
|
|
1
|
-
# Adorn API
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- `swagger.json` - OpenAPI 3.0 specification
|
|
56
|
-
- `src/routes.ts` - Express route handlers
|
|
57
|
-
|
|
58
|
-
### 3. Start Your Server
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
// src/server.ts
|
|
62
|
-
import express from "express";
|
|
63
|
-
import { RegisterRoutes } from "./routes.js";
|
|
64
|
-
|
|
65
|
-
const app = express();
|
|
66
|
-
app.use(express.json());
|
|
67
|
-
|
|
68
|
-
RegisterRoutes(app);
|
|
69
|
-
|
|
70
|
-
app.listen(3000, () => {
|
|
71
|
-
console.log("Server running on http://localhost:3000");
|
|
72
|
-
});
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Visit http://localhost:3000/docs to see your Swagger UI.
|
|
76
|
-
|
|
77
|
-
## Advanced Usage
|
|
78
|
-
|
|
79
|
-
### Inheritance & Generics
|
|
80
|
-
|
|
81
|
-
```typescript
|
|
82
|
-
import { PaginationQuery, EntityResponse, CreateInput } from "../lib/common.js";
|
|
83
|
-
|
|
84
|
-
// Inherit pagination properties
|
|
85
|
-
class UserListRequest extends PaginationQuery {
|
|
86
|
-
search?: string;
|
|
87
|
-
|
|
88
|
-
@FromPath()
|
|
89
|
-
tenantId!: string;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Use generic type helpers
|
|
93
|
-
class CreateUserDto implements CreateInput<User, 'name' | 'email'> {
|
|
94
|
-
@FromBody()
|
|
95
|
-
name!: string;
|
|
96
|
-
|
|
97
|
-
@FromBody()
|
|
98
|
-
email!: string;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
@Controller("advanced")
|
|
102
|
-
export class AdvancedController {
|
|
103
|
-
@Get("/{tenantId}/users")
|
|
104
|
-
public async listUsers(req: UserListRequest): Promise<EntityResponse<User[]>> {
|
|
105
|
-
return [/* ... */];
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Authentication
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
import { Authorized } from "../lib/decorators.js";
|
|
114
|
-
|
|
115
|
-
@Controller("profile")
|
|
116
|
-
export class ProfileController {
|
|
117
|
-
@Authorized("admin")
|
|
118
|
-
@Post("/update")
|
|
119
|
-
public async update(req: UpdateProfileDto) {
|
|
120
|
-
// Only accessible with valid Bearer token
|
|
121
|
-
return { success: true };
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## Project Structure
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
adorn-api/
|
|
130
|
-
├── src/
|
|
131
|
-
│ ├── lib/
|
|
132
|
-
│ │ ├── decorators.ts # Standard decorators (@Get, @Post, @Controller, etc.)
|
|
133
|
-
│ │ └── common.ts # Common types (PaginationQuery, EntityResponse, etc.)
|
|
134
|
-
│ ├── cli/
|
|
135
|
-
│ │ ├── generate-swagger.ts # Swagger/OpenAPI generator
|
|
136
|
-
│ │ └── generate-routes.ts # Express route generator
|
|
137
|
-
│ └── index.ts # Main library entry point
|
|
138
|
-
├── tests/
|
|
139
|
-
│ └── example-app/ # Example application using adorn-api
|
|
140
|
-
│ ├── controllers/ # Example controllers
|
|
141
|
-
│ ├── entities/ # Example entities
|
|
142
|
-
│ ├── middleware/ # Example middleware
|
|
143
|
-
│ ├── routes.ts # Generated routes (auto-generated)
|
|
144
|
-
│ └── server.ts # Example Express server
|
|
145
|
-
├── swagger.json # Generated OpenAPI spec
|
|
146
|
-
└── package.json
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## Development
|
|
150
|
-
|
|
151
|
-
### Available Scripts
|
|
152
|
-
|
|
153
|
-
- `npm run build` - Compile TypeScript to JavaScript
|
|
154
|
-
- `npm run gen:spec` - Generate Swagger documentation only
|
|
155
|
-
- `npm run gen:routes` - Generate Express routes only
|
|
156
|
-
- `npm run gen` - Generate both Swagger and routes
|
|
157
|
-
- `npm run example` - Run the example application
|
|
158
|
-
|
|
159
|
-
### Testing the Library
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# Generate from example app
|
|
163
|
-
npm run gen
|
|
164
|
-
|
|
165
|
-
# Run the example server
|
|
166
|
-
npm run example
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
## How It Works
|
|
170
|
-
|
|
171
|
-
### 1. Decorators (src/lib/decorators.ts)
|
|
172
|
-
|
|
173
|
-
Uses **Standard TC39 Decorators** with `context.addInitializer()` to attach metadata:
|
|
174
|
-
|
|
175
|
-
```typescript
|
|
176
|
-
export function Get(path: string) {
|
|
177
|
-
return function (originalMethod: any, context: ClassMethodDecoratorContext) {
|
|
178
|
-
context.addInitializer(function () {
|
|
179
|
-
// Store route metadata
|
|
180
|
-
const routes = (this as any)[META_KEY] || [];
|
|
181
|
-
routes.push({ method: 'get', path, methodName: String(context.name) });
|
|
182
|
-
(this as any)[META_KEY] = routes;
|
|
183
|
-
});
|
|
184
|
-
return originalMethod;
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### 2. Swagger Generator (src/cli/generate-swagger.ts)
|
|
190
|
-
|
|
191
|
-
Uses **ts-morph** to statically analyze TypeScript code:
|
|
192
|
-
|
|
193
|
-
- Parses `@Controller` and `@Get`/`@Post` decorators
|
|
194
|
-
- Resolves DTO types including inheritance and generics
|
|
195
|
-
- Converts TypeScript types to JSON Schema
|
|
196
|
-
- Handles union types (enums), nested objects, and Promise unwrapping
|
|
197
|
-
- Generates OpenAPI 3.0 specification
|
|
198
|
-
|
|
199
|
-
### 3. Route Generator (src/cli/generate-routes.ts)
|
|
200
|
-
|
|
201
|
-
Generates actual Express route handlers:
|
|
202
|
-
|
|
203
|
-
```typescript
|
|
204
|
-
// Generated code in src/routes.ts
|
|
205
|
-
app.get('/users/:userId', async (req: Request, res: Response) => {
|
|
206
|
-
const controller = new UserController();
|
|
207
|
-
const input: any = {};
|
|
208
|
-
Object.assign(input, req.query);
|
|
209
|
-
Object.assign(input, req.params);
|
|
210
|
-
Object.assign(input, req.body);
|
|
211
|
-
|
|
212
|
-
const response = await controller.getUser(input);
|
|
213
|
-
res.status(200).json(response);
|
|
214
|
-
});
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
## Why Standard Decorators?
|
|
218
|
-
|
|
219
|
-
1. **Future-Proof**: Uses the official TC39 decorator proposal (Stage 3)
|
|
220
|
-
2. **No Experimental Flags**: Works with `"experimentalDecorators": false`
|
|
221
|
-
3. **Better Type Safety**: Leverages TypeScript's type system instead of runtime reflection
|
|
222
|
-
4. **Cleaner API**: Single-parameter DTO pattern is more explicit than parameter decorators
|
|
223
|
-
|
|
224
|
-
## Comparison with tsoa
|
|
225
|
-
|
|
226
|
-
| Feature | tsoa (Legacy) | adorn-api |
|
|
227
|
-
|---------|---------------|-----------|
|
|
228
|
-
| Decorators | Experimental (`emitDecoratorMetadata`) | Standard TC39 |
|
|
229
|
-
| Parameter Decorators | `@Body() body: string` | DTO classes with `@FromBody()` |
|
|
230
|
-
| Type Safety | Runtime reflection | Edit-time type checking |
|
|
231
|
-
| Inheritance | Limited | Full support |
|
|
232
|
-
| Generics | Complex | Native TypeScript |
|
|
233
|
-
| Future Compatibility | Deprecated in future TS | Officially supported |
|
|
234
|
-
|
|
235
|
-
## Next Steps
|
|
236
|
-
|
|
237
|
-
To make this production-ready:
|
|
238
|
-
|
|
239
|
-
1. **Validation**: Integrate Zod or class-validator in the route generator
|
|
240
|
-
2. **Error Handling**: Add centralized error handling middleware
|
|
241
|
-
3. **Database Integration**: Add ORM support (Prisma, TypeORM, etc.)
|
|
242
|
-
4. **Testing**: Add unit and integration test utilities
|
|
243
|
-
5. **CORS**: Add CORS configuration
|
|
244
|
-
6. **Rate Limiting**: Add rate limiting middleware
|
|
245
|
-
7. **Logging**: Add structured logging (Winston, Pino)
|
|
246
|
-
|
|
247
|
-
## License
|
|
248
|
-
|
|
249
|
-
ISC
|
|
1
|
+
# Adorn API
|
|
2
|
+
Adorn API turns TypeScript classes into HTTP controllers with Stage-3 decorators, then wires Express routes, validation, and OpenAPI docs from the same metadata. It stays small and focused while still supporting MetalORM-backed persistence when you want it.
|
|
3
|
+
|
|
4
|
+
## Why Adorn API
|
|
5
|
+
- One source of truth: decorators and schemas drive routing, validation, and OpenAPI.
|
|
6
|
+
- Express-native by default, without locking you into a large framework.
|
|
7
|
+
- MetalORM helpers keep DTOs, filters, and entities in sync.
|
|
8
|
+
- Test-first ergonomics with clear e2e coverage of the runtime wiring.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
- Controller decorators (`@Controller`, `@Get`, `@Post`, etc.) backed by a registry/router that mounts on Express.
|
|
12
|
+
- `createAdornExpressRouter` and `buildRegistry` for mounting Adorn into existing Express stacks.
|
|
13
|
+
- Problem Details error handling with an `onError` hook for custom shapes/logging.
|
|
14
|
+
- Built-in OpenAPI generator with optional Swagger UI serving through the Express adapter.
|
|
15
|
+
- MetalORM helpers (`entityDto`, `filtersFromEntity`, `tableDefOf`) to reuse entity metadata for payload validation and database filtering.
|
|
16
|
+
- End-to-end coverage for both direct API handlers and MetalORM REST routes using Vitest + Supertest.
|
|
17
|
+
|
|
18
|
+
For detailed writeups of each feature, see the companion guides under `docs/` (including the Stage-3 decorator setup).
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
- Node.js v18+
|
|
22
|
+
- SQLite (only for in-memory tests; runtime persistence is pluggable via MetalORM executors)
|
|
23
|
+
- TypeScript 5.x with Stage-3 decorators (do not enable `experimentalDecorators`)
|
|
24
|
+
|
|
25
|
+
## Getting started
|
|
26
|
+
1. `npm install` to pull runtime and dev dependencies (Express, MetalORM, Vitest).
|
|
27
|
+
2. `npm run build` to compile the TypeScript sources into `dist/`.
|
|
28
|
+
3. `npm run test` to run the full Vitest suite (unit + integration/e2e tests).
|
|
29
|
+
|
|
30
|
+
For quick feedback on a single spec file: `npm run test -- test/e2e/metal-orm.adorn-api.rest.spec.ts`.
|
|
31
|
+
|
|
32
|
+
## Scripts
|
|
33
|
+
- `npm run clean`: removes the `dist` directory.
|
|
34
|
+
- `npm run build`: transpiles `src/**/*.ts` via the `tsconfig.build.json` bundle target.
|
|
35
|
+
- `npm run typecheck`: runs `tsc` with strict settings against `src` + `test`.
|
|
36
|
+
- `npm run check`: runs the decorated-return contract check plus the test suite.
|
|
37
|
+
- `npm run test` / `npm run test:e2e`: run the entire Vitest suite or just the e2e directory.
|
|
38
|
+
|
|
39
|
+
## MetalORM integration
|
|
40
|
+
- Controllers create `OrmSession` instances with a shared in-memory SQLite executor for tests.
|
|
41
|
+
- DTOs and filter schemas derive directly from `metal-orm` entity definitions via helpers in `src/integrations/metal-orm/schema`.
|
|
42
|
+
- The REST controller examples show how to load entities via `selectFromEntity`, update tracked instances, and rely on `OrmSession` flush/commit semantics without manually writing SQL.
|
|
43
|
+
|
|
44
|
+
Learn more about MetalORM on npm: https://www.npmjs.com/package/metal-orm
|
|
45
|
+
|
|
46
|
+
## Project layout
|
|
47
|
+
- `src/`: exports glue code (`express`, `metal-orm`, validation helpers, adapters).
|
|
48
|
+
- `test/e2e/`: Vitest suites exercising the Express and MetalORM API surface.
|
|
49
|
+
- `src/types/metal-orm.d.ts`: local type definitions used while the shared MetalORM package upgrades.
|
|
50
|
+
|
|
51
|
+
## Next steps
|
|
52
|
+
1. Add real decorators and metadata for your domain models under `src`.
|
|
53
|
+
2. Extend `src/adapters/express` to add middleware or transports as needed.
|
|
54
|
+
3. Hook a persistent MetalORM executor when moving beyond the in-memory SQLite setup used in tests.
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { type Express, type Router } from 'express';
|
|
2
|
+
import type { ControllerCtor, Registry } from '../../core/registry/types.js';
|
|
3
|
+
import type { Validator } from '../../contracts/validator.js';
|
|
4
|
+
import { type ApplyRoutesOptions } from './router.js';
|
|
5
|
+
import { type AdornErrorHandlerOptions } from './middleware/errorHandler.js';
|
|
6
|
+
import type { OpenApiBuildOptions } from '../../core/openapi/buildOpenApi.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for OpenAPI documentation generation and serving.
|
|
9
|
+
* Extends OpenApiBuildOptions with serving configuration.
|
|
10
|
+
*/
|
|
11
|
+
export type AdornOpenApiOptions = OpenApiBuildOptions & {
|
|
12
|
+
/** Whether to enable OpenAPI documentation (default: true) */
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
/** Path to serve the OpenAPI JSON specification (default: '/openapi.json') */
|
|
15
|
+
jsonPath?: string;
|
|
16
|
+
/** Path to serve the OpenAPI documentation UI (default: '/docs') */
|
|
17
|
+
docsPath?: string;
|
|
18
|
+
/** Whether to serve Swagger UI (default: true) */
|
|
19
|
+
swaggerUi?: boolean;
|
|
20
|
+
/** Configuration options for Swagger UI */
|
|
21
|
+
swaggerUiConfig?: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Options for creating an Adorn Express router with controllers.
|
|
25
|
+
*
|
|
26
|
+
* @see ApplyRoutesOptions for additional routing options
|
|
27
|
+
*/
|
|
28
|
+
export type CreateAdornExpressRouterOptions = ApplyRoutesOptions & {
|
|
29
|
+
/** Array of controller constructors to register */
|
|
30
|
+
controllers: ControllerCtor[];
|
|
31
|
+
/** Whether to automatically add JSON body parser middleware (default: true) */
|
|
32
|
+
jsonBodyParser?: boolean;
|
|
33
|
+
/** Validator instance for request validation */
|
|
34
|
+
validator?: Validator;
|
|
35
|
+
/** Error handler configuration or false to disable (default: built-in handler) */
|
|
36
|
+
errorHandler?: AdornErrorHandlerOptions | false;
|
|
37
|
+
/** OpenAPI documentation configuration */
|
|
38
|
+
openapi?: AdornOpenApiOptions;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Result of creating an Adorn Express router.
|
|
42
|
+
*/
|
|
43
|
+
export type CreateAdornExpressRouterResult = {
|
|
44
|
+
/** Configured Express router with all routes */
|
|
45
|
+
router: Router;
|
|
46
|
+
/** Route registry containing metadata about all registered routes */
|
|
47
|
+
registry: Registry;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Options for creating an Adorn Express application.
|
|
51
|
+
* Extends router options with mount path configuration.
|
|
52
|
+
*
|
|
53
|
+
* @see CreateAdornExpressRouterOptions for base options
|
|
54
|
+
*/
|
|
55
|
+
export type CreateAdornExpressAppOptions = CreateAdornExpressRouterOptions & {
|
|
56
|
+
/** Path to mount the router (default: '/') */
|
|
57
|
+
mountPath?: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Creates a complete Express application with Adorn API functionality.
|
|
61
|
+
*
|
|
62
|
+
* This function sets up an Express app with all Adorn features including:
|
|
63
|
+
* - Controller-based routing
|
|
64
|
+
* - Automatic OpenAPI documentation
|
|
65
|
+
* - Built-in error handling
|
|
66
|
+
* - Request validation
|
|
67
|
+
*
|
|
68
|
+
* @param options - Configuration options for the application
|
|
69
|
+
* @returns Configured Express application instance
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import { createAdornExpressApp } from '@adorn/api';
|
|
74
|
+
* import { UserController } from './controllers/user.controller';
|
|
75
|
+
*
|
|
76
|
+
* const app = createAdornExpressApp({
|
|
77
|
+
* controllers: [UserController],
|
|
78
|
+
* openapi: {
|
|
79
|
+
* title: 'My API',
|
|
80
|
+
* version: '1.0.0'
|
|
81
|
+
* }
|
|
82
|
+
* });
|
|
83
|
+
*
|
|
84
|
+
* app.listen(3000, () => {
|
|
85
|
+
* console.log('Server running on port 3000');
|
|
86
|
+
* });
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // With custom mount path
|
|
92
|
+
* const app = createAdornExpressApp({
|
|
93
|
+
* controllers: [UserController, ProductController],
|
|
94
|
+
* mountPath: '/api/v1',
|
|
95
|
+
* jsonBodyParser: true,
|
|
96
|
+
* errorHandler: {
|
|
97
|
+
* logErrors: true,
|
|
98
|
+
* exposeStack: process.env.NODE_ENV === 'development'
|
|
99
|
+
* }
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @see createAdornExpressRouter for router-specific functionality
|
|
104
|
+
* @see AdornOpenApiOptions for OpenAPI configuration
|
|
105
|
+
*/
|
|
106
|
+
export declare function createAdornExpressApp(options: CreateAdornExpressAppOptions): Express;
|
|
107
|
+
/**
|
|
108
|
+
* Creates an Express router with Adorn API functionality.
|
|
109
|
+
*
|
|
110
|
+
* This function sets up an Express router with all Adorn features including:
|
|
111
|
+
* - Controller-based routing
|
|
112
|
+
* - Automatic OpenAPI documentation
|
|
113
|
+
* - Built-in error handling
|
|
114
|
+
* - Request validation
|
|
115
|
+
*
|
|
116
|
+
* @param options - Configuration options for the router
|
|
117
|
+
* @returns Object containing the configured router and route registry
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* import { createAdornExpressRouter } from '@adorn/api';
|
|
122
|
+
* import { UserController } from './controllers/user.controller';
|
|
123
|
+
* import express from 'express';
|
|
124
|
+
*
|
|
125
|
+
* const app = express();
|
|
126
|
+
* const { router, registry } = createAdornExpressRouter({
|
|
127
|
+
* controllers: [UserController],
|
|
128
|
+
* openapi: {
|
|
129
|
+
* title: 'My API',
|
|
130
|
+
* version: '1.0.0',
|
|
131
|
+
* docsPath: '/api-docs'
|
|
132
|
+
* }
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* app.use('/api', router);
|
|
136
|
+
*
|
|
137
|
+
* // Access the registry for runtime inspection
|
|
138
|
+
* console.log('Registered routes:', registry.routes.length);
|
|
139
|
+
* ```
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* // With custom validator and error handling
|
|
144
|
+
* const { router } = createAdornExpressRouter({
|
|
145
|
+
* controllers: [UserController],
|
|
146
|
+
* validator: new CustomValidator(),
|
|
147
|
+
* errorHandler: {
|
|
148
|
+
* logErrors: true,
|
|
149
|
+
* customErrorFormatter: (err) => ({ ...err, timestamp: new Date() })
|
|
150
|
+
* }
|
|
151
|
+
* });
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* @see createAdornExpressApp for full application setup
|
|
155
|
+
* @see AdornOpenApiOptions for OpenAPI configuration
|
|
156
|
+
*/
|
|
157
|
+
export declare function createAdornExpressRouter(options: CreateAdornExpressRouterOptions): CreateAdornExpressRouterResult;
|
|
158
|
+
//# sourceMappingURL=createApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/createApp.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAG9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,kBAAkB,GAAG;IACjE,mDAAmD;IACnD,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kFAAkF;IAClF,YAAY,CAAC,EAAE,wBAAwB,GAAG,KAAK,CAAC;IAChD,0CAA0C;IAC1C,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GAAG,+BAA+B,GAAG;IAC3E,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAKpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,8BAA8B,CAqChC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import express, {} from 'express';
|
|
2
|
+
import { buildRegistry } from '../../core/registry/buildRegistry.js';
|
|
3
|
+
import { applyRegistryToExpressRouter } from './router.js';
|
|
4
|
+
import { adornErrorHandler, createAdornExpressErrorHandler, } from './middleware/errorHandler.js';
|
|
5
|
+
import { serveOpenApi } from './swagger/serve.js';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a complete Express application with Adorn API functionality.
|
|
8
|
+
*
|
|
9
|
+
* This function sets up an Express app with all Adorn features including:
|
|
10
|
+
* - Controller-based routing
|
|
11
|
+
* - Automatic OpenAPI documentation
|
|
12
|
+
* - Built-in error handling
|
|
13
|
+
* - Request validation
|
|
14
|
+
*
|
|
15
|
+
* @param options - Configuration options for the application
|
|
16
|
+
* @returns Configured Express application instance
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { createAdornExpressApp } from '@adorn/api';
|
|
21
|
+
* import { UserController } from './controllers/user.controller';
|
|
22
|
+
*
|
|
23
|
+
* const app = createAdornExpressApp({
|
|
24
|
+
* controllers: [UserController],
|
|
25
|
+
* openapi: {
|
|
26
|
+
* title: 'My API',
|
|
27
|
+
* version: '1.0.0'
|
|
28
|
+
* }
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* app.listen(3000, () => {
|
|
32
|
+
* console.log('Server running on port 3000');
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // With custom mount path
|
|
39
|
+
* const app = createAdornExpressApp({
|
|
40
|
+
* controllers: [UserController, ProductController],
|
|
41
|
+
* mountPath: '/api/v1',
|
|
42
|
+
* jsonBodyParser: true,
|
|
43
|
+
* errorHandler: {
|
|
44
|
+
* logErrors: true,
|
|
45
|
+
* exposeStack: process.env.NODE_ENV === 'development'
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @see createAdornExpressRouter for router-specific functionality
|
|
51
|
+
* @see AdornOpenApiOptions for OpenAPI configuration
|
|
52
|
+
*/
|
|
53
|
+
export function createAdornExpressApp(options) {
|
|
54
|
+
const app = express();
|
|
55
|
+
const { router } = createAdornExpressRouter(options);
|
|
56
|
+
app.use(options.mountPath ?? '/', router);
|
|
57
|
+
return app;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Creates an Express router with Adorn API functionality.
|
|
61
|
+
*
|
|
62
|
+
* This function sets up an Express router with all Adorn features including:
|
|
63
|
+
* - Controller-based routing
|
|
64
|
+
* - Automatic OpenAPI documentation
|
|
65
|
+
* - Built-in error handling
|
|
66
|
+
* - Request validation
|
|
67
|
+
*
|
|
68
|
+
* @param options - Configuration options for the router
|
|
69
|
+
* @returns Object containing the configured router and route registry
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import { createAdornExpressRouter } from '@adorn/api';
|
|
74
|
+
* import { UserController } from './controllers/user.controller';
|
|
75
|
+
* import express from 'express';
|
|
76
|
+
*
|
|
77
|
+
* const app = express();
|
|
78
|
+
* const { router, registry } = createAdornExpressRouter({
|
|
79
|
+
* controllers: [UserController],
|
|
80
|
+
* openapi: {
|
|
81
|
+
* title: 'My API',
|
|
82
|
+
* version: '1.0.0',
|
|
83
|
+
* docsPath: '/api-docs'
|
|
84
|
+
* }
|
|
85
|
+
* });
|
|
86
|
+
*
|
|
87
|
+
* app.use('/api', router);
|
|
88
|
+
*
|
|
89
|
+
* // Access the registry for runtime inspection
|
|
90
|
+
* console.log('Registered routes:', registry.routes.length);
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* // With custom validator and error handling
|
|
96
|
+
* const { router } = createAdornExpressRouter({
|
|
97
|
+
* controllers: [UserController],
|
|
98
|
+
* validator: new CustomValidator(),
|
|
99
|
+
* errorHandler: {
|
|
100
|
+
* logErrors: true,
|
|
101
|
+
* customErrorFormatter: (err) => ({ ...err, timestamp: new Date() })
|
|
102
|
+
* }
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* @see createAdornExpressApp for full application setup
|
|
107
|
+
* @see AdornOpenApiOptions for OpenAPI configuration
|
|
108
|
+
*/
|
|
109
|
+
export function createAdornExpressRouter(options) {
|
|
110
|
+
const router = express.Router();
|
|
111
|
+
if (options.jsonBodyParser ?? true) {
|
|
112
|
+
router.use(express.json());
|
|
113
|
+
}
|
|
114
|
+
const registry = buildRegistry(options.controllers);
|
|
115
|
+
applyRegistryToExpressRouter(router, registry, options);
|
|
116
|
+
const oa = options.openapi;
|
|
117
|
+
if (oa?.enabled ?? true) {
|
|
118
|
+
if (oa?.title && oa?.version) {
|
|
119
|
+
const openApiOptions = {
|
|
120
|
+
title: oa.title,
|
|
121
|
+
version: oa.version,
|
|
122
|
+
...(oa.servers !== undefined ? { servers: oa.servers } : {}),
|
|
123
|
+
};
|
|
124
|
+
const serveOptions = {
|
|
125
|
+
...(oa.jsonPath !== undefined ? { jsonPath: oa.jsonPath } : {}),
|
|
126
|
+
...(oa.docsPath !== undefined ? { docsPath: oa.docsPath } : {}),
|
|
127
|
+
...(oa.swaggerUi !== undefined ? { swaggerUi: oa.swaggerUi } : {}),
|
|
128
|
+
...(oa.swaggerUiConfig !== undefined ? { swaggerUiConfig: oa.swaggerUiConfig } : {}),
|
|
129
|
+
};
|
|
130
|
+
router.use(serveOpenApi(registry, openApiOptions, serveOptions));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (options.errorHandler !== false) {
|
|
134
|
+
const handler = options.errorHandler
|
|
135
|
+
? createAdornExpressErrorHandler(options.errorHandler)
|
|
136
|
+
: adornErrorHandler;
|
|
137
|
+
router.use(handler);
|
|
138
|
+
}
|
|
139
|
+
return { router, registry };
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=createApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../../../src/adapters/express/createApp.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAA6B,MAAM,SAAS,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAA2B,MAAM,aAAa,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAE/B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA0DlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqC;IACzE,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAwC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpD,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAExD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAC3B,IAAI,EAAE,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAwB;gBAC1C,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,GAAG,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,CAAC;YACF,MAAM,YAAY,GAAG;gBACnB,GAAG,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,EAAE,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrF,CAAC;YAEF,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY;YAClC,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC,YAAY,CAAC;YACtD,CAAC,CAAC,iBAAiB,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './createApp.js';
|
|
2
|
+
export * from './router.js';
|
|
3
|
+
export * from './transport/request.js';
|
|
4
|
+
export * from './transport/response.js';
|
|
5
|
+
export * from './middleware/errorHandler.js';
|
|
6
|
+
export * from './swagger/index.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './createApp.js';
|
|
2
|
+
export * from './router.js';
|
|
3
|
+
export * from './transport/request.js';
|
|
4
|
+
export * from './transport/response.js';
|
|
5
|
+
export * from './middleware/errorHandler.js';
|
|
6
|
+
export * from './swagger/index.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
|