arkos 1.2.13-test → 1.2.13-test.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 +22 -14
- package/cli.js +2 -11
- package/dist/cjs/app.js +1 -1
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/exports/auth/index.js +1 -6
- package/dist/cjs/exports/controllers/index.js +1 -11
- package/dist/cjs/exports/error-handler/index.js +1 -11
- package/dist/cjs/exports/index.js +1 -12
- package/dist/cjs/exports/middlewares/index.js +1 -7
- package/dist/cjs/exports/prisma/index.js +1 -6
- package/dist/cjs/exports/services/index.js +1 -49
- package/dist/cjs/exports/utils/index.js +1 -44
- package/dist/cjs/exports/validation/index.js +1 -11
- package/dist/cjs/modules/auth/auth.controller.js +1 -194
- package/dist/cjs/modules/auth/auth.router.js +1 -124
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +1 -192
- package/dist/cjs/modules/auth/auth.service.js.map +1 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
- package/dist/cjs/modules/base/base.controller.js +1 -159
- package/dist/cjs/modules/base/base.controller.js.map +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +1 -92
- package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
- package/dist/cjs/modules/base/base.router.js +1 -24
- package/dist/cjs/modules/base/base.router.js.map +1 -1
- package/dist/cjs/modules/base/base.service.js +1 -128
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -82
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -167
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +1 -171
- package/dist/cjs/modules/email/email.service.js +1 -104
- package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -144
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
- package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -12
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -195
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -271
- package/dist/cjs/modules/file-upload/file-upload.router.js +1 -56
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -90
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js +1 -141
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
- package/dist/cjs/server.js +4 -2
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/types/arkos-config.js +1 -3
- package/dist/cjs/types/arkos-config.js.map +1 -1
- package/dist/cjs/types/auth.js +1 -3
- package/dist/cjs/types/index.js +1 -11
- package/dist/cjs/types/router-config.js +1 -3
- package/dist/cjs/utils/arkos-env.js +1 -9
- package/dist/cjs/utils/cli/build.js +6 -229
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +5 -268
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/generate.js +12 -189
- package/dist/cjs/utils/cli/generate.js.map +1 -1
- package/dist/cjs/utils/cli/index.js +1 -81
- package/dist/cjs/utils/cli/start.js +5 -93
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -26
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +6 -15
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +71 -133
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +24 -46
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +12 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -27
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
- package/dist/cjs/utils/dotenv.helpers.js +1 -43
- package/dist/cjs/utils/features/api.features.js +1 -161
- package/dist/cjs/utils/features/api.features.js.map +1 -1
- package/dist/cjs/utils/features/change-case.features.js +1 -67
- package/dist/cjs/utils/helpers/api.features.helpers.js +1 -106
- package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
- package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -54
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/global.helpers.js +1 -40
- package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/models.helpers.js +11 -325
- package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +1 -49
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
- package/dist/cjs/utils/helpers/routers.helpers.js +1 -0
- package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -0
- package/dist/cjs/utils/helpers/text.helpers.js +1 -28
- package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
- package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -0
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -0
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
- package/dist/cjs/utils/prisma/types.js +1 -0
- package/dist/cjs/utils/prisma/types.js.map +1 -0
- package/dist/cjs/utils/sheu.js +1 -0
- package/dist/cjs/utils/sheu.js.map +1 -0
- package/dist/cjs/utils/validate-dto.js +1 -17
- package/dist/cjs/utils/validate-schema.js +1 -15
- package/dist/esm/app.js +1 -0
- package/dist/esm/app.js.map +1 -0
- package/dist/esm/exports/auth/index.js +1 -0
- package/dist/esm/exports/controllers/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/index.js +1 -0
- package/dist/esm/exports/middlewares/index.js +1 -0
- package/dist/esm/exports/prisma/index.js +1 -0
- package/dist/esm/exports/services/index.js +1 -0
- package/dist/esm/exports/utils/index.js +1 -0
- package/dist/esm/exports/validation/index.js +1 -0
- package/dist/esm/modules/auth/auth.controller.js +1 -0
- package/dist/esm/modules/auth/auth.router.js +1 -0
- package/dist/esm/modules/auth/auth.router.js.map +1 -0
- package/dist/esm/modules/auth/auth.service.js +1 -0
- package/dist/esm/modules/auth/auth.service.js.map +1 -0
- package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
- package/dist/esm/modules/base/base.controller.js +1 -0
- package/dist/esm/modules/base/base.controller.js.map +1 -0
- package/dist/esm/modules/base/base.middlewares.js +1 -0
- package/dist/esm/modules/base/base.middlewares.js.map +1 -0
- package/dist/esm/modules/base/base.router.js +1 -0
- package/dist/esm/modules/base/base.router.js.map +1 -0
- package/dist/esm/modules/base/base.service.js +1 -0
- package/dist/{es2020 → esm}/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -0
- package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -0
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -0
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -0
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -0
- package/dist/esm/modules/email/email.service.js +1 -0
- package/dist/esm/modules/error-handler/error-handler.controller.js +4 -0
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/app-error.js +1 -0
- package/dist/esm/modules/error-handler/utils/catch-async.js +1 -0
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -0
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +1 -0
- package/dist/esm/modules/file-upload/file-upload.router.js +1 -0
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.service.js +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +1 -0
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
- package/dist/esm/server.js +5 -0
- package/dist/esm/server.js.map +1 -0
- package/dist/esm/types/arkos-config.js +1 -0
- package/dist/esm/types/arkos-config.js.map +1 -0
- package/dist/esm/types/auth.js +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/router-config.js +1 -0
- package/dist/esm/utils/arkos-env.js +1 -0
- package/dist/esm/utils/cli/build.js +6 -0
- package/dist/esm/utils/cli/build.js.map +1 -0
- package/dist/esm/utils/cli/dev.js +5 -0
- package/dist/esm/utils/cli/dev.js.map +1 -0
- package/dist/esm/utils/cli/generate.js +12 -0
- package/dist/{es2020 → esm}/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +1 -0
- package/dist/esm/utils/cli/start.js +5 -0
- package/dist/esm/utils/cli/start.js.map +1 -0
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -0
- package/dist/esm/utils/cli/utils/cli.helpers.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +21 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +12 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +206 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +36 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +18 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +15 -0
- package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +2 -0
- package/dist/esm/utils/dotenv.helpers.js +1 -0
- package/dist/esm/utils/features/api.features.js +1 -0
- package/dist/esm/utils/features/api.features.js.map +1 -0
- package/dist/esm/utils/features/change-case.features.js +1 -0
- package/dist/esm/utils/helpers/api.features.helpers.js +1 -0
- package/dist/esm/utils/helpers/change-case.helpers.js +1 -0
- package/dist/esm/utils/helpers/deepmerge.helper.js +1 -0
- package/dist/esm/utils/helpers/fs.helpers.js +1 -0
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/global.helpers.js +1 -0
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/models.helpers.js +11 -0
- package/dist/esm/utils/helpers/models.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/prisma.helpers.js +1 -0
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/query-parser.helpers.js +1 -0
- package/dist/esm/utils/helpers/routers.helpers.js +1 -0
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/text.helpers.js +1 -0
- package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
- package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -0
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -0
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -0
- package/dist/esm/utils/prisma/types.js +1 -0
- package/dist/esm/utils/prisma/types.js.map +1 -0
- package/dist/esm/utils/sheu.js +1 -0
- package/dist/esm/utils/sheu.js.map +1 -0
- package/dist/esm/utils/validate-dto.js +1 -0
- package/dist/esm/utils/validate-schema.js +1 -0
- package/dist/types/modules/base/base.middlewares.d.ts +4 -4
- package/dist/types/modules/base/base.service.d.ts +1 -1
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +4 -1
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +4 -0
- package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -1
- package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +2 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +7 -0
- package/dist/types/server.d.ts +3 -0
- package/dist/types/types/arkos-config.d.ts +10 -5
- package/dist/types/utils/cli/utils/cli.helpers.d.ts +1 -1
- package/dist/types/utils/features/api.features.d.ts +1 -0
- package/dist/types/utils/helpers/global.helpers.d.ts +6 -1
- package/dist/types/utils/helpers/models.helpers.d.ts +31 -5
- package/dist/types/utils/helpers/routers.helpers.d.ts +2 -0
- package/dist/types/utils/prisma/enhaced-prisma-json-schema-generator.d.ts +34 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +10 -0
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
- package/dist/types/utils/prisma/types.d.ts +48 -0
- package/dist/types/utils/sheu.d.ts +70 -0
- package/package.json +34 -34
- package/dist/es2020/app.js +0 -1
- package/dist/es2020/app.js.map +0 -1
- package/dist/es2020/exports/auth/index.js +0 -2
- package/dist/es2020/exports/controllers/index.js +0 -4
- package/dist/es2020/exports/error-handler/index.js +0 -4
- package/dist/es2020/exports/index.js +0 -8
- package/dist/es2020/exports/middlewares/index.js +0 -2
- package/dist/es2020/exports/prisma/index.js +0 -3
- package/dist/es2020/exports/services/index.js +0 -9
- package/dist/es2020/exports/utils/index.js +0 -4
- package/dist/es2020/exports/validation/index.js +0 -4
- package/dist/es2020/modules/auth/auth.controller.js +0 -187
- package/dist/es2020/modules/auth/auth.router.js +0 -118
- package/dist/es2020/modules/auth/auth.router.js.map +0 -1
- package/dist/es2020/modules/auth/auth.service.js +0 -185
- package/dist/es2020/modules/auth/auth.service.js.map +0 -1
- package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js +0 -73
- package/dist/es2020/modules/base/base.controller.js +0 -151
- package/dist/es2020/modules/base/base.controller.js.map +0 -1
- package/dist/es2020/modules/base/base.middlewares.js +0 -81
- package/dist/es2020/modules/base/base.middlewares.js.map +0 -1
- package/dist/es2020/modules/base/base.router.js +0 -17
- package/dist/es2020/modules/base/base.router.js.map +0 -1
- package/dist/es2020/modules/base/base.service.js +0 -120
- package/dist/es2020/modules/base/utils/helpers/base.controller.helpers.js +0 -77
- package/dist/es2020/modules/base/utils/helpers/base.middlewares.helpers.js +0 -44
- package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +0 -161
- package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js +0 -165
- package/dist/es2020/modules/email/email.service.js +0 -97
- package/dist/es2020/modules/error-handler/error-handler.controller.js +0 -105
- package/dist/es2020/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/es2020/modules/error-handler/utils/app-error.js +0 -15
- package/dist/es2020/modules/error-handler/utils/catch-async.js +0 -10
- package/dist/es2020/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js +0 -155
- package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/es2020/modules/file-upload/file-upload.controller.js +0 -266
- package/dist/es2020/modules/file-upload/file-upload.router.js +0 -50
- package/dist/es2020/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/es2020/modules/file-upload/file-upload.service.js +0 -314
- package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -81
- package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/es2020/modules/swagger/swagger.router.js +0 -135
- package/dist/es2020/modules/swagger/swagger.router.js.map +0 -1
- package/dist/es2020/server.js +0 -3
- package/dist/es2020/server.js.map +0 -1
- package/dist/es2020/types/arkos-config.js +0 -2
- package/dist/es2020/types/arkos-config.js.map +0 -1
- package/dist/es2020/types/auth.js +0 -2
- package/dist/es2020/types/index.js +0 -8
- package/dist/es2020/types/router-config.js +0 -2
- package/dist/es2020/utils/arkos-env.js +0 -7
- package/dist/es2020/utils/cli/build.js +0 -223
- package/dist/es2020/utils/cli/build.js.map +0 -1
- package/dist/es2020/utils/cli/dev.js +0 -261
- package/dist/es2020/utils/cli/dev.js.map +0 -1
- package/dist/es2020/utils/cli/generate.js +0 -183
- package/dist/es2020/utils/cli/index.js +0 -74
- package/dist/es2020/utils/cli/start.js +0 -86
- package/dist/es2020/utils/cli/start.js.map +0 -1
- package/dist/es2020/utils/cli/utils/cli.helpers.js +0 -18
- package/dist/es2020/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -33
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -18
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -265
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -55
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -32
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -32
- package/dist/es2020/utils/cli/utils/template-generators.js +0 -25
- package/dist/es2020/utils/dotenv.helpers.js +0 -37
- package/dist/es2020/utils/features/api.features.js +0 -154
- package/dist/es2020/utils/features/api.features.js.map +0 -1
- package/dist/es2020/utils/features/change-case.features.js +0 -31
- package/dist/es2020/utils/helpers/api.features.helpers.js +0 -103
- package/dist/es2020/utils/helpers/change-case.helpers.js +0 -161
- package/dist/es2020/utils/helpers/deepmerge.helper.js +0 -113
- package/dist/es2020/utils/helpers/fs.helpers.js +0 -45
- package/dist/es2020/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/global.helpers.js +0 -4
- package/dist/es2020/utils/helpers/global.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/models.helpers.js +0 -276
- package/dist/es2020/utils/helpers/models.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/prisma.helpers.js +0 -41
- package/dist/es2020/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/query-parser.helpers.js +0 -40
- package/dist/es2020/utils/helpers/text.helpers.js +0 -22
- package/dist/es2020/utils/validate-dto.js +0 -11
- package/dist/es2020/utils/validate-schema.js +0 -9
- /package/dist/{es2020 → esm}/exports/auth/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/controllers/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/error-handler/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/middlewares/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/prisma/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/services/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/utils/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/validation/index.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/auth/auth.controller.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.controller.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.service.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/email/email.service.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/error-handler/utils/app-error.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/file-upload/file-upload.controller.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/file-upload/file-upload.service.js.map +0 -0
- /package/dist/{es2020 → esm}/paths.js +0 -0
- /package/dist/{es2020 → esm}/paths.js.map +0 -0
- /package/dist/{es2020 → esm}/types/auth.js.map +0 -0
- /package/dist/{es2020 → esm}/types/index.js.map +0 -0
- /package/dist/{es2020 → esm}/types/router-config.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/arkos-env.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/index.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/utils/template-generators.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/dotenv.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/features/change-case.features.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/api.features.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/change-case.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/deepmerge.helper.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/query-parser.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/text.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/validate-dto.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/validate-schema.js.map +0 -0
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { camelCase, kebabCase, pascalCase, } from "../../utils/helpers/change-case.helpers";
|
|
2
|
-
import { getModels, getPrismaModelRelations, } from "../../utils/helpers/models.helpers";
|
|
3
|
-
import deepmerge from "../../utils/helpers/deepmerge.helper";
|
|
4
|
-
import { handleRelationFieldsInBody } from "./utils/helpers/base.service.helpers";
|
|
5
|
-
import { getPrismaInstance } from "../../utils/helpers/prisma.helpers";
|
|
6
|
-
import authService from "../auth/auth.service";
|
|
7
|
-
export class BaseService {
|
|
8
|
-
constructor(modelName) {
|
|
9
|
-
this.modelName = camelCase(modelName);
|
|
10
|
-
this.relationFields = getPrismaModelRelations(pascalCase(modelName));
|
|
11
|
-
}
|
|
12
|
-
async createOne(data, queryOptions) {
|
|
13
|
-
if (kebabCase(this.modelName) === "user" && data.password)
|
|
14
|
-
if (!authService.isPasswordHashed(data.password))
|
|
15
|
-
data.password = await authService.hashPassword(data.password);
|
|
16
|
-
const prisma = getPrismaInstance();
|
|
17
|
-
const dataWithRelationFieldsHandled = handleRelationFieldsInBody(data, {
|
|
18
|
-
...this.relationFields,
|
|
19
|
-
}, ["delete", "disconnect", "update"]);
|
|
20
|
-
return await prisma[this.modelName].create(deepmerge({
|
|
21
|
-
data: dataWithRelationFieldsHandled,
|
|
22
|
-
}, queryOptions || {}));
|
|
23
|
-
}
|
|
24
|
-
async createMany(data, queryOptions) {
|
|
25
|
-
const prisma = getPrismaInstance();
|
|
26
|
-
const dataWithRelationFieldsHandled = [];
|
|
27
|
-
if (Array.isArray(data))
|
|
28
|
-
await new Promise((resolve) => {
|
|
29
|
-
data.forEach(async (curr, i) => {
|
|
30
|
-
if ("password" in curr && this.modelName === "user")
|
|
31
|
-
if (!authService.isPasswordHashed(curr.password))
|
|
32
|
-
data[i].password = await authService.hashPassword(curr?.password);
|
|
33
|
-
dataWithRelationFieldsHandled[i] = handleRelationFieldsInBody(data[i], {
|
|
34
|
-
...this.relationFields,
|
|
35
|
-
}, ["delete", "disconnect", "update"]);
|
|
36
|
-
if (i === data.length - 1)
|
|
37
|
-
resolve(null);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
return await prisma[this.modelName].createMany(deepmerge({ data: dataWithRelationFieldsHandled }, queryOptions || {}));
|
|
41
|
-
}
|
|
42
|
-
async count(filters) {
|
|
43
|
-
const prisma = getPrismaInstance();
|
|
44
|
-
return await prisma[this.modelName].count({
|
|
45
|
-
where: filters,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
async findMany(filters, queryOptions) {
|
|
49
|
-
const prisma = getPrismaInstance();
|
|
50
|
-
return await prisma[this.modelName].findMany(deepmerge({ where: filters }, queryOptions || {}));
|
|
51
|
-
}
|
|
52
|
-
async findById(id, queryOptions) {
|
|
53
|
-
const prisma = getPrismaInstance();
|
|
54
|
-
return await prisma[this.modelName].findUnique(deepmerge({
|
|
55
|
-
where: { id },
|
|
56
|
-
}, queryOptions || {}));
|
|
57
|
-
}
|
|
58
|
-
async findOne(filters, queryOptions) {
|
|
59
|
-
const prisma = getPrismaInstance();
|
|
60
|
-
if (Object.keys(filters).length === 1 &&
|
|
61
|
-
"id" in filters &&
|
|
62
|
-
filters.id !== "me")
|
|
63
|
-
return prisma[this.modelName].findUnique(deepmerge({
|
|
64
|
-
where: filters,
|
|
65
|
-
}, queryOptions || {}));
|
|
66
|
-
return await prisma[this.modelName].findFirst(deepmerge({
|
|
67
|
-
where: filters,
|
|
68
|
-
}, queryOptions || {}));
|
|
69
|
-
}
|
|
70
|
-
async updateOne(filters, data, queryOptions) {
|
|
71
|
-
const prisma = getPrismaInstance();
|
|
72
|
-
if (kebabCase(this.modelName) === "user" && data?.password) {
|
|
73
|
-
if (!authService.isPasswordHashed(data.password))
|
|
74
|
-
data.password = await authService.hashPassword(data?.password);
|
|
75
|
-
}
|
|
76
|
-
const dataWithRelationFieldsHandled = handleRelationFieldsInBody(data, {
|
|
77
|
-
...this.relationFields,
|
|
78
|
-
});
|
|
79
|
-
return await prisma[this.modelName].update(deepmerge({
|
|
80
|
-
where: filters,
|
|
81
|
-
data: dataWithRelationFieldsHandled,
|
|
82
|
-
}, queryOptions || {}));
|
|
83
|
-
}
|
|
84
|
-
async updateMany(filters, data, queryOptions) {
|
|
85
|
-
const prisma = getPrismaInstance();
|
|
86
|
-
if (Array.isArray(data) && this.modelName === "user")
|
|
87
|
-
await new Promise((resolve) => {
|
|
88
|
-
data.forEach(async (curr, i) => {
|
|
89
|
-
if ("password" in data[i])
|
|
90
|
-
if (!authService.isPasswordHashed(curr.password))
|
|
91
|
-
data[i].password = await authService.hashPassword(curr.password);
|
|
92
|
-
if (i === data.length - 1)
|
|
93
|
-
resolve(undefined);
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
const firstMerge = deepmerge({ data }, queryOptions || {});
|
|
97
|
-
return await prisma[this.modelName].updateMany(deepmerge({ where: filters }, firstMerge));
|
|
98
|
-
}
|
|
99
|
-
async deleteOne(filters) {
|
|
100
|
-
const prisma = getPrismaInstance();
|
|
101
|
-
return await prisma[this.modelName].delete({
|
|
102
|
-
where: filters,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
async deleteMany(filters) {
|
|
106
|
-
const prisma = getPrismaInstance();
|
|
107
|
-
return await prisma[this.modelName].deleteMany({
|
|
108
|
-
where: filters,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
export function getBaseServices() {
|
|
113
|
-
const models = getModels();
|
|
114
|
-
const baseServices = {};
|
|
115
|
-
models.forEach((model) => {
|
|
116
|
-
baseServices[`${camelCase(model)}`] = new BaseService(model);
|
|
117
|
-
});
|
|
118
|
-
return baseServices;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=base.service.js.map
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { getExpressApp } from "../../../../server";
|
|
2
|
-
export const getAppRoutes = () => {
|
|
3
|
-
const app = getExpressApp();
|
|
4
|
-
const routes = [];
|
|
5
|
-
app._router.stack.forEach((middleware) => {
|
|
6
|
-
if (middleware.route) {
|
|
7
|
-
Object.keys(middleware.route.methods).forEach((method) => {
|
|
8
|
-
routes.push({
|
|
9
|
-
method: method.toUpperCase(),
|
|
10
|
-
path: middleware.route.path,
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
else if (middleware.handle && middleware.handle.stack) {
|
|
15
|
-
let basePath = "";
|
|
16
|
-
if (middleware.regexp) {
|
|
17
|
-
const regexpStr = middleware.regexp.toString();
|
|
18
|
-
if (regexpStr.includes?.("/?(?=")) {
|
|
19
|
-
const match = regexpStr.match(/\/\^(\\\/[^?]+)/);
|
|
20
|
-
if (match) {
|
|
21
|
-
basePath = match[1].replace(/\\\//g, "/");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const simpleMatch = regexpStr.match(/\/\^(\\\/[^\\]+)/);
|
|
26
|
-
if (simpleMatch) {
|
|
27
|
-
basePath = simpleMatch[1].replace(/\\\//g, "/");
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
middleware.handle.stack.forEach((routerMiddleware) => {
|
|
32
|
-
if (routerMiddleware.route) {
|
|
33
|
-
Object.keys(routerMiddleware.route.methods).forEach((method) => {
|
|
34
|
-
let routePath = routerMiddleware.route.path;
|
|
35
|
-
let fullPath;
|
|
36
|
-
if (routePath.includes?.("/?(?=")) {
|
|
37
|
-
const pathMatch = routePath.match(/\/\^?(\\\/[^?]+|\/[^?]+)/);
|
|
38
|
-
if (pathMatch) {
|
|
39
|
-
const cleanPath = pathMatch[1].replace(/\\\//g, "/");
|
|
40
|
-
fullPath = basePath ? basePath + cleanPath : cleanPath;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const fallbackMatch = routePath.match(/\?\(\?=([^)]+)/);
|
|
44
|
-
if (fallbackMatch) {
|
|
45
|
-
fullPath = fallbackMatch[1];
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
fullPath = routePath;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
fullPath = basePath
|
|
54
|
-
? basePath.replace(/\/$/, "") +
|
|
55
|
-
(routePath.startsWith("/") ? routePath : "/" + routePath)
|
|
56
|
-
: routePath;
|
|
57
|
-
}
|
|
58
|
-
fullPath = fullPath
|
|
59
|
-
.replace(/\\\//g, "/")
|
|
60
|
-
.replace(/\^/g, "")
|
|
61
|
-
.replace(/\$/g, "");
|
|
62
|
-
if (fullPath.includes?.("/?(?=")) {
|
|
63
|
-
fullPath = fullPath.replace(/\/\?\(\?=[^)]*\)/g, "");
|
|
64
|
-
}
|
|
65
|
-
routes.push({
|
|
66
|
-
method: method.toUpperCase(),
|
|
67
|
-
path: fullPath,
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
return routes;
|
|
75
|
-
};
|
|
76
|
-
export function parseAndGetPrismaQueryOptions(req) { }
|
|
77
|
-
//# sourceMappingURL=base.controller.helpers.js.map
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import deepmerge from "../../../../utils/helpers/deepmerge.helper";
|
|
2
|
-
export function resolvePrismaQueryOptions(prismaQueryOptions, action) {
|
|
3
|
-
if (!prismaQueryOptions) {
|
|
4
|
-
return {};
|
|
5
|
-
}
|
|
6
|
-
const options = prismaQueryOptions;
|
|
7
|
-
const actionOptions = options[action] || {};
|
|
8
|
-
let mergedOptions = options.queryOptions || {};
|
|
9
|
-
if (options.global) {
|
|
10
|
-
mergedOptions = deepmerge(mergedOptions, options.global);
|
|
11
|
-
}
|
|
12
|
-
const generalOptions = getGeneralOptionsForAction(options, action);
|
|
13
|
-
if (generalOptions) {
|
|
14
|
-
mergedOptions = deepmerge(mergedOptions, generalOptions);
|
|
15
|
-
}
|
|
16
|
-
if (actionOptions) {
|
|
17
|
-
mergedOptions = deepmerge(mergedOptions, actionOptions);
|
|
18
|
-
}
|
|
19
|
-
return mergedOptions;
|
|
20
|
-
}
|
|
21
|
-
function getGeneralOptionsForAction(options, action) {
|
|
22
|
-
const actionMappings = {
|
|
23
|
-
findMany: ["find"],
|
|
24
|
-
findOne: ["find"],
|
|
25
|
-
create: ["create", "save"],
|
|
26
|
-
createOne: ["create", "save", "saveOne"],
|
|
27
|
-
createMany: ["create", "save", "saveMany"],
|
|
28
|
-
update: ["update", "save"],
|
|
29
|
-
updateOne: ["update", "save", "saveOne"],
|
|
30
|
-
updateMany: ["update", "save", "saveMany"],
|
|
31
|
-
delete: ["delete"],
|
|
32
|
-
deleteOne: ["delete"],
|
|
33
|
-
deleteMany: ["delete"],
|
|
34
|
-
};
|
|
35
|
-
const generalKeys = actionMappings[action] || [];
|
|
36
|
-
let generalOptions = {};
|
|
37
|
-
for (const key of generalKeys) {
|
|
38
|
-
if (options[key]) {
|
|
39
|
-
generalOptions = deepmerge(generalOptions, options[key]);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return Object.keys(generalOptions).length > 0 ? generalOptions : null;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=base.middlewares.helpers.js.map
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { singular, plural } from "pluralize";
|
|
2
|
-
import { kebabCase } from "../../../../exports/utils";
|
|
3
|
-
import { importPrismaModelModules } from "../../../../utils/helpers/models.helpers";
|
|
4
|
-
import authService from "../../../auth/auth.service";
|
|
5
|
-
import { BaseController } from "../../base.controller";
|
|
6
|
-
import { addPrismaQueryOptionsToRequest, handleRequestBodyValidationAndTransformation, sendResponse, } from "../../base.middlewares";
|
|
7
|
-
import catchAsync from "../../../error-handler/utils/catch-async";
|
|
8
|
-
export function setupRouters(models, router, arkosConfigs) {
|
|
9
|
-
return models.map(async (model) => {
|
|
10
|
-
const modelNameInKebab = kebabCase(model);
|
|
11
|
-
const modelModules = await importPrismaModelModules(modelNameInKebab);
|
|
12
|
-
const { middlewares, authConfigs, prismaQueryOptions, router: customRouterModule, dtos, schemas, } = modelModules;
|
|
13
|
-
const routeName = plural(modelNameInKebab);
|
|
14
|
-
const controller = new BaseController(model);
|
|
15
|
-
const routerConfig = customRouterModule?.config;
|
|
16
|
-
const disableConfig = routerConfig?.disable || {};
|
|
17
|
-
const isCompletelyDisabled = disableConfig === true;
|
|
18
|
-
const customRouter = customRouterModule || {};
|
|
19
|
-
const hasCustomImplementation = (path, method) => {
|
|
20
|
-
return customRouter.stack?.some((layer) => (layer.path === `/api/${path}` ||
|
|
21
|
-
layer.path === `api/${path}` ||
|
|
22
|
-
layer.path === `api/${path}/` ||
|
|
23
|
-
layer.path === `/api/${path}/`) &&
|
|
24
|
-
layer.method.toLowerCase() === method.toLowerCase());
|
|
25
|
-
};
|
|
26
|
-
const isEndpointDisabled = (endpoint) => {
|
|
27
|
-
if (isCompletelyDisabled)
|
|
28
|
-
return true;
|
|
29
|
-
return typeof disableConfig === "object" && !!disableConfig[endpoint];
|
|
30
|
-
};
|
|
31
|
-
const getValidationSchemaOrDto = (key) => {
|
|
32
|
-
const validationConfigs = arkosConfigs?.validation;
|
|
33
|
-
if (validationConfigs?.resolver === "class-validator") {
|
|
34
|
-
return dtos?.[key];
|
|
35
|
-
}
|
|
36
|
-
else if (validationConfigs?.resolver === "zod") {
|
|
37
|
-
return schemas?.[key];
|
|
38
|
-
}
|
|
39
|
-
return undefined;
|
|
40
|
-
};
|
|
41
|
-
if (customRouterModule?.default && !customRouterModule?.config?.disable)
|
|
42
|
-
router.use(`/${routeName}`, customRouterModule.default);
|
|
43
|
-
function safeCatchAsync(middleware) {
|
|
44
|
-
return middleware ? catchAsync(middleware) : undefined;
|
|
45
|
-
}
|
|
46
|
-
if (!isEndpointDisabled("createOne") &&
|
|
47
|
-
!hasCustomImplementation(`/${routeName}`, "post")) {
|
|
48
|
-
router.post(`/${routeName}`, authService.handleAuthenticationControl("Create", authConfigs?.authenticationControl), authService.handleAccessControl("Create", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("create")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "createOne"), ...[
|
|
49
|
-
safeCatchAsync(middlewares?.beforeCreateOne) || controller.createOne,
|
|
50
|
-
safeCatchAsync(middlewares?.beforeCreateOne)
|
|
51
|
-
? controller.createOne
|
|
52
|
-
: safeCatchAsync(middlewares?.afterCreateOne) || sendResponse,
|
|
53
|
-
safeCatchAsync(middlewares?.beforeCreateOne) &&
|
|
54
|
-
safeCatchAsync(middlewares?.afterCreateOne)
|
|
55
|
-
? safeCatchAsync(middlewares?.afterCreateOne)
|
|
56
|
-
: sendResponse,
|
|
57
|
-
].filter((m) => !!m), sendResponse);
|
|
58
|
-
}
|
|
59
|
-
if (!isEndpointDisabled("findMany") &&
|
|
60
|
-
!hasCustomImplementation(`/${routeName}`, "get")) {
|
|
61
|
-
router.get(`/${routeName}`, authService.handleAuthenticationControl("View", authConfigs?.authenticationControl), authService.handleAccessControl("View", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), addPrismaQueryOptionsToRequest(prismaQueryOptions, "findMany"), ...[
|
|
62
|
-
safeCatchAsync(middlewares?.beforeFindMany) || controller.findMany,
|
|
63
|
-
safeCatchAsync(middlewares?.beforeFindMany)
|
|
64
|
-
? controller.findMany
|
|
65
|
-
: safeCatchAsync(middlewares?.afterFindMany) || sendResponse,
|
|
66
|
-
safeCatchAsync(middlewares?.beforeFindMany) &&
|
|
67
|
-
safeCatchAsync(middlewares?.afterFindMany)
|
|
68
|
-
? safeCatchAsync(middlewares?.afterFindMany)
|
|
69
|
-
: sendResponse,
|
|
70
|
-
sendResponse,
|
|
71
|
-
].filter((m) => !!m));
|
|
72
|
-
}
|
|
73
|
-
if (!isEndpointDisabled("createMany") &&
|
|
74
|
-
!hasCustomImplementation(`/${routeName}/many`, "post")) {
|
|
75
|
-
router.post(`/${routeName}/many`, authService.handleAuthenticationControl("Create", authConfigs?.authenticationControl), authService.handleAccessControl("Create", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("createMany")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "createMany"), ...[
|
|
76
|
-
safeCatchAsync(middlewares?.beforeCreateMany) ||
|
|
77
|
-
controller.createMany,
|
|
78
|
-
safeCatchAsync(middlewares?.beforeCreateMany)
|
|
79
|
-
? controller.createMany
|
|
80
|
-
: safeCatchAsync(middlewares?.afterCreateMany) || sendResponse,
|
|
81
|
-
safeCatchAsync(middlewares?.beforeCreateMany) &&
|
|
82
|
-
safeCatchAsync(middlewares?.afterCreateMany)
|
|
83
|
-
? safeCatchAsync(middlewares?.afterCreateMany)
|
|
84
|
-
: sendResponse,
|
|
85
|
-
sendResponse,
|
|
86
|
-
].filter((m) => !!m));
|
|
87
|
-
}
|
|
88
|
-
if (!isEndpointDisabled("updateMany") &&
|
|
89
|
-
!hasCustomImplementation(`/${routeName}/many`, "patch")) {
|
|
90
|
-
router.patch(`/${routeName}/many`, authService.handleAuthenticationControl("Update", authConfigs?.authenticationControl), authService.handleAccessControl("Update", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("updateMany")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "updateMany"), ...[
|
|
91
|
-
safeCatchAsync(middlewares?.beforeUpdateMany) ||
|
|
92
|
-
controller.updateMany,
|
|
93
|
-
safeCatchAsync(middlewares?.beforeUpdateMany)
|
|
94
|
-
? controller.updateMany
|
|
95
|
-
: safeCatchAsync(middlewares?.afterUpdateMany) || sendResponse,
|
|
96
|
-
safeCatchAsync(middlewares?.beforeUpdateMany) &&
|
|
97
|
-
safeCatchAsync(middlewares?.afterUpdateMany)
|
|
98
|
-
? safeCatchAsync(middlewares?.afterUpdateMany)
|
|
99
|
-
: sendResponse,
|
|
100
|
-
sendResponse,
|
|
101
|
-
].filter((m) => !!m));
|
|
102
|
-
}
|
|
103
|
-
if (!isEndpointDisabled("deleteMany") &&
|
|
104
|
-
!hasCustomImplementation(`/${routeName}/many`, "delete")) {
|
|
105
|
-
router.delete(`/${routeName}/many`, authService.handleAuthenticationControl("Delete", authConfigs?.authenticationControl), authService.handleAccessControl("Delete", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("deleteMany")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "deleteMany"), ...[
|
|
106
|
-
safeCatchAsync(middlewares?.beforeDeleteMany) ||
|
|
107
|
-
controller.deleteMany,
|
|
108
|
-
safeCatchAsync(middlewares?.beforeDeleteMany)
|
|
109
|
-
? controller.deleteMany
|
|
110
|
-
: safeCatchAsync(middlewares?.afterDeleteMany) || sendResponse,
|
|
111
|
-
safeCatchAsync(middlewares?.beforeDeleteMany) &&
|
|
112
|
-
safeCatchAsync(middlewares?.afterDeleteMany)
|
|
113
|
-
? safeCatchAsync(middlewares?.afterDeleteMany)
|
|
114
|
-
: sendResponse,
|
|
115
|
-
sendResponse,
|
|
116
|
-
].filter((middleware) => !!middleware));
|
|
117
|
-
}
|
|
118
|
-
if (!isEndpointDisabled("findOne") &&
|
|
119
|
-
!hasCustomImplementation(`/${routeName}/:id`, "get")) {
|
|
120
|
-
router.get(`/${routeName}/:id`, authService.handleAuthenticationControl("View", authConfigs?.authenticationControl), authService.handleAccessControl("View", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("findOne")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "findOne"), ...[
|
|
121
|
-
safeCatchAsync(middlewares?.beforeFindOne) || controller.findOne,
|
|
122
|
-
safeCatchAsync(middlewares?.beforeFindOne)
|
|
123
|
-
? controller.findOne
|
|
124
|
-
: safeCatchAsync(middlewares?.afterFindOne) || sendResponse,
|
|
125
|
-
safeCatchAsync(middlewares?.beforeFindOne) &&
|
|
126
|
-
safeCatchAsync(middlewares?.afterFindOne)
|
|
127
|
-
? safeCatchAsync(middlewares?.afterFindOne)
|
|
128
|
-
: sendResponse,
|
|
129
|
-
sendResponse,
|
|
130
|
-
].filter((m) => !!m));
|
|
131
|
-
}
|
|
132
|
-
if (!isEndpointDisabled("updateOne") &&
|
|
133
|
-
!hasCustomImplementation(`/${routeName}/:id`, "patch")) {
|
|
134
|
-
router.patch(`/${routeName}/:id`, authService.handleAuthenticationControl("Update", authConfigs?.authenticationControl), authService.handleAccessControl("Update", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("update")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "updateOne"), ...[
|
|
135
|
-
safeCatchAsync(middlewares?.beforeUpdateOne) || controller.updateOne,
|
|
136
|
-
safeCatchAsync(middlewares?.beforeUpdateOne)
|
|
137
|
-
? controller.updateOne
|
|
138
|
-
: safeCatchAsync(middlewares?.afterUpdateOne) || sendResponse,
|
|
139
|
-
safeCatchAsync(middlewares?.beforeUpdateOne) &&
|
|
140
|
-
safeCatchAsync(middlewares?.afterUpdateOne)
|
|
141
|
-
? safeCatchAsync(middlewares?.afterUpdateOne)
|
|
142
|
-
: sendResponse,
|
|
143
|
-
].filter((m) => !!m), sendResponse);
|
|
144
|
-
}
|
|
145
|
-
if (!isEndpointDisabled("deleteOne") &&
|
|
146
|
-
!hasCustomImplementation(`/${routeName}/:id`, "delete")) {
|
|
147
|
-
router.delete(`/${routeName}/:id`, authService.handleAuthenticationControl("Delete", authConfigs?.authenticationControl), authService.handleAccessControl("Delete", kebabCase(singular(modelNameInKebab)), authConfigs?.accessControl || {}), handleRequestBodyValidationAndTransformation(getValidationSchemaOrDto("delete")), addPrismaQueryOptionsToRequest(prismaQueryOptions, "deleteOne"), ...[
|
|
148
|
-
safeCatchAsync(middlewares?.beforeDeleteOne) || controller.deleteOne,
|
|
149
|
-
safeCatchAsync(middlewares?.beforeDeleteOne)
|
|
150
|
-
? controller.deleteOne
|
|
151
|
-
: safeCatchAsync(middlewares?.afterDeleteOne) || sendResponse,
|
|
152
|
-
safeCatchAsync(middlewares?.beforeDeleteOne) &&
|
|
153
|
-
safeCatchAsync(middlewares?.afterDeleteOne)
|
|
154
|
-
? safeCatchAsync(middlewares?.afterDeleteOne)
|
|
155
|
-
: sendResponse,
|
|
156
|
-
sendResponse,
|
|
157
|
-
].filter((m) => !!m));
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=base.router.helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.router.helpers.js","sourceRoot":"","sources":["../../../../../../src/modules/base/utils/helpers/base.router.helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,8BAA8B,EAC9B,4CAA4C,EAC5C,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,UAAU,MAAM,0CAA0C,CAAC;AAElE,MAAM,UAAU,YAAY,CAC1B,MAAgB,EAChB,MAAc,EACd,YAAyB;IAEzB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QACtE,MAAM,EACJ,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,GACR,GAAG,YAAY,CAAC;QAEjB,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;QAG7C,MAAM,YAAY,GAAiB,kBAAkB,EAAE,MAAM,CAAC;QAC9D,MAAM,aAAa,GAAG,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;QAClD,MAAM,oBAAoB,GAAG,aAAa,KAAK,IAAI,CAAC;QAGpD,MAAM,YAAY,GAAI,kBAA6B,IAAI,EAAE,CAAC;QAC1D,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;YAC/D,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE;gBAC5B,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE;gBAC5B,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG;gBAC7B,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC;gBACjC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CACtD,CAAC;QACJ,CAAC,CAAC;QAGF,MAAM,kBAAkB,GAAG,CAAC,QAAwB,EAAW,EAAE;YAC/D,IAAI,oBAAoB;gBAAE,OAAO,IAAI,CAAC;YACtC,OAAO,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxE,CAAC,CAAC;QAGF,MAAM,wBAAwB,GAAG,CAC/B,GAA6C,EAC7C,EAAE;YACF,MAAM,iBAAiB,GAAG,YAAY,EAAE,UAAU,CAAC;YACnD,IAAI,iBAAiB,EAAE,QAAQ,KAAK,iBAAiB,EAAE,CAAC;gBACtD,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,iBAAiB,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACjD,OAAO,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAGF,IAAI,kBAAkB,EAAE,OAAO,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO;YACrE,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE1D,SAAS,cAAc,CAAC,UAAe;YACrC,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,WAAW,CAAC;YAChC,CAAC,uBAAuB,CAAC,IAAI,SAAS,EAAE,EAAE,MAAM,CAAC,EACjD,CAAC;YACD,MAAM,CAAC,IAAI,CACT,IAAI,SAAS,EAAE,EACf,WAAW,CAAC,2BAA2B,CACrC,QAAQ,EACR,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,QAAQ,EACR,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,QAAQ,CAAC,CACnC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,WAAW,CACZ,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS;gBACpE,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC1C,CAAC,CAAC,UAAU,CAAC,SAAS;oBACtB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,YAAY;gBAC/D,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC5C,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBACzC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBAC7C,CAAC,CAAC,YAAY;aACjB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EACpB,YAAY,CACb,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,UAAU,CAAC;YAC/B,CAAC,uBAAuB,CAAC,IAAI,SAAS,EAAE,EAAE,KAAK,CAAC,EAChD,CAAC;YACD,MAAM,CAAC,GAAG,CACR,IAAI,SAAS,EAAE,EACf,WAAW,CAAC,2BAA2B,CACrC,MAAM,EACN,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,MAAM,EACN,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,UAAU,CACX,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,UAAU,CAAC,QAAQ;gBAClE,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBACzC,CAAC,CAAC,UAAU,CAAC,QAAQ;oBACrB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,YAAY;gBAC9D,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBAC3C,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;oBACxC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;oBAC5C,CAAC,CAAC,YAAY;gBAChB,YAAY;aACb,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,YAAY,CAAC;YACjC,CAAC,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,MAAM,CAAC,EACtD,CAAC;YACD,MAAM,CAAC,IAAI,CACT,IAAI,SAAS,OAAO,EACpB,WAAW,CAAC,2BAA2B,CACrC,QAAQ,EACR,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,QAAQ,EACR,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,YAAY,CAAC,CACvC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,YAAY,CACb,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC3C,UAAU,CAAC,UAAU;gBACvB,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC3C,CAAC,CAAC,UAAU,CAAC,UAAU;oBACvB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,YAAY;gBAChE,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC7C,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC1C,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC9C,CAAC,CAAC,YAAY;gBAChB,YAAY;aACb,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,YAAY,CAAC;YACjC,CAAC,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,OAAO,CAAC,EACvD,CAAC;YACD,MAAM,CAAC,KAAK,CACV,IAAI,SAAS,OAAO,EACpB,WAAW,CAAC,2BAA2B,CACrC,QAAQ,EACR,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,QAAQ,EACR,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,YAAY,CAAC,CACvC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,YAAY,CACb,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC3C,UAAU,CAAC,UAAU;gBACvB,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC3C,CAAC,CAAC,UAAU,CAAC,UAAU;oBACvB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,YAAY;gBAChE,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC7C,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC1C,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC9C,CAAC,CAAC,YAAY;gBAChB,YAAY;aACb,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,YAAY,CAAC;YACjC,CAAC,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,QAAQ,CAAC,EACxD,CAAC;YACD,MAAM,CAAC,MAAM,CACX,IAAI,SAAS,OAAO,EACpB,WAAW,CAAC,2BAA2B,CACrC,QAAQ,EACR,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,QAAQ,EACR,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,YAAY,CAAC,CACvC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,YAAY,CACb,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC3C,UAAU,CAAC,UAAU;gBACvB,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC3C,CAAC,CAAC,UAAU,CAAC,UAAU;oBACvB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,YAAY;gBAChE,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;oBAC7C,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC1C,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC9C,CAAC,CAAC,YAAY;gBAChB,YAAY;aACb,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CACvC,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAC9B,CAAC,uBAAuB,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,EACpD,CAAC;YACD,MAAM,CAAC,GAAG,CACR,IAAI,SAAS,MAAM,EACnB,WAAW,CAAC,2BAA2B,CACrC,MAAM,EACN,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,MAAM,EACN,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,SAAS,CAAC,CACpC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,SAAS,CACV,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO;gBAChE,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;oBACxC,CAAC,CAAC,UAAU,CAAC,OAAO;oBACpB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,YAAY;gBAC7D,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;oBAC1C,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;oBACvC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;oBAC3C,CAAC,CAAC,YAAY;gBAChB,YAAY;aACb,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,WAAW,CAAC;YAChC,CAAC,uBAAuB,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,CAAC,EACtD,CAAC;YACD,MAAM,CAAC,KAAK,CACV,IAAI,SAAS,MAAM,EACnB,WAAW,CAAC,2BAA2B,CACrC,QAAQ,EACR,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,QAAQ,EACR,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,QAAQ,CAAC,CACnC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,WAAW,CACZ,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS;gBACpE,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC1C,CAAC,CAAC,UAAU,CAAC,SAAS;oBACtB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,YAAY;gBAC/D,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC5C,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBACzC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBAC7C,CAAC,CAAC,YAAY;aACjB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EACpB,YAAY,CACb,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,kBAAkB,CAAC,WAAW,CAAC;YAChC,CAAC,uBAAuB,CAAC,IAAI,SAAS,MAAM,EAAE,QAAQ,CAAC,EACvD,CAAC;YACD,MAAM,CAAC,MAAM,CACX,IAAI,SAAS,MAAM,EACnB,WAAW,CAAC,2BAA2B,CACrC,QAAQ,EACR,WAAW,EAAE,qBAAqB,CACnC,EACD,WAAW,CAAC,mBAAmB,CAC7B,QAAQ,EACR,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACrC,WAAW,EAAE,aAAa,IAAI,EAAE,CACjC,EACD,4CAA4C,CAC1C,wBAAwB,CAAC,QAAQ,CAAC,CACnC,EACD,8BAA8B,CAC5B,kBAA6C,EAC7C,WAAW,CACZ,EACD,GAAG;gBACD,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS;gBACpE,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC1C,CAAC,CAAC,UAAU,CAAC,SAAS;oBACtB,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,YAAY;gBAC/D,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC;oBAC5C,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBACzC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;oBAC7C,CAAC,CAAC,YAAY;gBAChB,YAAY;aACb,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Router } from \"express\";\nimport { singular, plural } from \"pluralize\";\nimport { ArkosConfig, RouterConfig } from \"../../../../exports\";\nimport { kebabCase } from \"../../../../exports/utils\";\nimport { PrismaQueryOptions } from \"../../../../types\";\nimport { RouterEndpoint } from \"../../../../types/router-config\";\nimport { importPrismaModelModules } from \"../../../../utils/helpers/models.helpers\";\nimport authService from \"../../../auth/auth.service\";\nimport { BaseController } from \"../../base.controller\";\nimport {\n addPrismaQueryOptionsToRequest,\n handleRequestBodyValidationAndTransformation,\n sendResponse,\n} from \"../../base.middlewares\";\nimport catchAsync from \"../../../error-handler/utils/catch-async\";\n\nexport function setupRouters(\n models: string[],\n router: Router,\n arkosConfigs: ArkosConfig\n) {\n return models.map(async (model) => {\n const modelNameInKebab = kebabCase(model);\n const modelModules = await importPrismaModelModules(modelNameInKebab);\n const {\n middlewares,\n authConfigs,\n prismaQueryOptions,\n router: customRouterModule,\n dtos,\n schemas,\n } = modelModules;\n\n const routeName = plural(modelNameInKebab);\n const controller = new BaseController(model);\n\n // Check for router customization/disabling\n const routerConfig: RouterConfig = customRouterModule?.config;\n const disableConfig = routerConfig?.disable || {};\n const isCompletelyDisabled = disableConfig === true;\n\n // Check if custom implementation exists\n const customRouter = (customRouterModule as Router) || {};\n const hasCustomImplementation = (path: string, method: string) => {\n return customRouter.stack?.some(\n (layer) =>\n (layer.path === `/api/${path}` ||\n layer.path === `api/${path}` ||\n layer.path === `api/${path}/` ||\n layer.path === `/api/${path}/`) &&\n layer.method.toLowerCase() === method.toLowerCase()\n );\n };\n\n // Helper to determine if an endpoint should be disabled\n const isEndpointDisabled = (endpoint: RouterEndpoint): boolean => {\n if (isCompletelyDisabled) return true;\n return typeof disableConfig === \"object\" && !!disableConfig[endpoint];\n };\n\n // Helper to get the correct schema or DTO based on Arkos Config\n const getValidationSchemaOrDto = (\n key: keyof typeof dtos | keyof typeof schemas\n ) => {\n const validationConfigs = arkosConfigs?.validation;\n if (validationConfigs?.resolver === \"class-validator\") {\n return dtos?.[key];\n } else if (validationConfigs?.resolver === \"zod\") {\n return schemas?.[key];\n }\n return undefined;\n };\n\n // If the custom router has its own routes, add them\n if (customRouterModule?.default && !customRouterModule?.config?.disable)\n router.use(`/${routeName}`, customRouterModule.default);\n\n function safeCatchAsync(middleware: any) {\n return middleware ? catchAsync(middleware) : undefined;\n }\n\n // POST /{routeName} - Create One\n if (\n !isEndpointDisabled(\"createOne\") &&\n !hasCustomImplementation(`/${routeName}`, \"post\")\n ) {\n router.post(\n `/${routeName}`,\n authService.handleAuthenticationControl(\n \"Create\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"Create\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"create\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"createOne\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeCreateOne) || controller.createOne,\n safeCatchAsync(middlewares?.beforeCreateOne)\n ? controller.createOne\n : safeCatchAsync(middlewares?.afterCreateOne) || sendResponse,\n safeCatchAsync(middlewares?.beforeCreateOne) &&\n safeCatchAsync(middlewares?.afterCreateOne)\n ? safeCatchAsync(middlewares?.afterCreateOne)\n : sendResponse,\n ].filter((m) => !!m),\n sendResponse\n );\n }\n\n // GET /{routeName} - Find Many\n if (\n !isEndpointDisabled(\"findMany\") &&\n !hasCustomImplementation(`/${routeName}`, \"get\")\n ) {\n router.get(\n `/${routeName}`,\n authService.handleAuthenticationControl(\n \"View\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"View\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"findMany\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeFindMany) || controller.findMany,\n safeCatchAsync(middlewares?.beforeFindMany)\n ? controller.findMany\n : safeCatchAsync(middlewares?.afterFindMany) || sendResponse,\n safeCatchAsync(middlewares?.beforeFindMany) &&\n safeCatchAsync(middlewares?.afterFindMany)\n ? safeCatchAsync(middlewares?.afterFindMany)\n : sendResponse,\n sendResponse,\n ].filter((m) => !!m)\n );\n }\n\n // POST /{routeName}/many - Create Many\n if (\n !isEndpointDisabled(\"createMany\") &&\n !hasCustomImplementation(`/${routeName}/many`, \"post\")\n ) {\n router.post(\n `/${routeName}/many`,\n authService.handleAuthenticationControl(\n \"Create\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"Create\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"createMany\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"createMany\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeCreateMany) ||\n controller.createMany,\n safeCatchAsync(middlewares?.beforeCreateMany)\n ? controller.createMany\n : safeCatchAsync(middlewares?.afterCreateMany) || sendResponse,\n safeCatchAsync(middlewares?.beforeCreateMany) &&\n safeCatchAsync(middlewares?.afterCreateMany)\n ? safeCatchAsync(middlewares?.afterCreateMany)\n : sendResponse,\n sendResponse,\n ].filter((m) => !!m)\n );\n }\n\n // PATCH /{routeName}/many - Update Many\n if (\n !isEndpointDisabled(\"updateMany\") &&\n !hasCustomImplementation(`/${routeName}/many`, \"patch\")\n ) {\n router.patch(\n `/${routeName}/many`,\n authService.handleAuthenticationControl(\n \"Update\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"Update\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"updateMany\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"updateMany\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeUpdateMany) ||\n controller.updateMany,\n safeCatchAsync(middlewares?.beforeUpdateMany)\n ? controller.updateMany\n : safeCatchAsync(middlewares?.afterUpdateMany) || sendResponse,\n safeCatchAsync(middlewares?.beforeUpdateMany) &&\n safeCatchAsync(middlewares?.afterUpdateMany)\n ? safeCatchAsync(middlewares?.afterUpdateMany)\n : sendResponse,\n sendResponse,\n ].filter((m) => !!m)\n );\n }\n\n // DELETE /{routeName}/many - Delete Many\n if (\n !isEndpointDisabled(\"deleteMany\") &&\n !hasCustomImplementation(`/${routeName}/many`, \"delete\")\n ) {\n router.delete(\n `/${routeName}/many`,\n authService.handleAuthenticationControl(\n \"Delete\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"Delete\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"deleteMany\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"deleteMany\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeDeleteMany) ||\n controller.deleteMany,\n safeCatchAsync(middlewares?.beforeDeleteMany)\n ? controller.deleteMany\n : safeCatchAsync(middlewares?.afterDeleteMany) || sendResponse,\n safeCatchAsync(middlewares?.beforeDeleteMany) &&\n safeCatchAsync(middlewares?.afterDeleteMany)\n ? safeCatchAsync(middlewares?.afterDeleteMany)\n : sendResponse,\n sendResponse,\n ].filter((middleware) => !!middleware)\n );\n }\n\n // GET /{routeName}/:id - Find One\n if (\n !isEndpointDisabled(\"findOne\") &&\n !hasCustomImplementation(`/${routeName}/:id`, \"get\")\n ) {\n router.get(\n `/${routeName}/:id`,\n authService.handleAuthenticationControl(\n \"View\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"View\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"findOne\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"findOne\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeFindOne) || controller.findOne,\n safeCatchAsync(middlewares?.beforeFindOne)\n ? controller.findOne\n : safeCatchAsync(middlewares?.afterFindOne) || sendResponse,\n safeCatchAsync(middlewares?.beforeFindOne) &&\n safeCatchAsync(middlewares?.afterFindOne)\n ? safeCatchAsync(middlewares?.afterFindOne)\n : sendResponse,\n sendResponse,\n ].filter((m) => !!m)\n );\n }\n\n // PATCH /{routeName}/:id - Update One\n if (\n !isEndpointDisabled(\"updateOne\") &&\n !hasCustomImplementation(`/${routeName}/:id`, \"patch\")\n ) {\n router.patch(\n `/${routeName}/:id`,\n authService.handleAuthenticationControl(\n \"Update\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"Update\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"update\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"updateOne\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeUpdateOne) || controller.updateOne,\n safeCatchAsync(middlewares?.beforeUpdateOne)\n ? controller.updateOne\n : safeCatchAsync(middlewares?.afterUpdateOne) || sendResponse,\n safeCatchAsync(middlewares?.beforeUpdateOne) &&\n safeCatchAsync(middlewares?.afterUpdateOne)\n ? safeCatchAsync(middlewares?.afterUpdateOne)\n : sendResponse,\n ].filter((m) => !!m),\n sendResponse\n );\n }\n\n // DELETE /{routeName}/:id - Delete One\n if (\n !isEndpointDisabled(\"deleteOne\") &&\n !hasCustomImplementation(`/${routeName}/:id`, \"delete\")\n ) {\n router.delete(\n `/${routeName}/:id`,\n authService.handleAuthenticationControl(\n \"Delete\",\n authConfigs?.authenticationControl\n ),\n authService.handleAccessControl(\n \"Delete\",\n kebabCase(singular(modelNameInKebab)),\n authConfigs?.accessControl || {}\n ),\n handleRequestBodyValidationAndTransformation(\n getValidationSchemaOrDto(\"delete\")\n ),\n addPrismaQueryOptionsToRequest<any>(\n prismaQueryOptions as PrismaQueryOptions<any>,\n \"deleteOne\"\n ),\n ...[\n safeCatchAsync(middlewares?.beforeDeleteOne) || controller.deleteOne,\n safeCatchAsync(middlewares?.beforeDeleteOne)\n ? controller.deleteOne\n : safeCatchAsync(middlewares?.afterDeleteOne) || sendResponse,\n safeCatchAsync(middlewares?.beforeDeleteOne) &&\n safeCatchAsync(middlewares?.afterDeleteOne)\n ? safeCatchAsync(middlewares?.afterDeleteOne)\n : sendResponse,\n sendResponse,\n ].filter((m) => !!m)\n );\n }\n });\n}\n"]}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { getPrismaModelRelations, getModelUniqueFields, } from "../../../../utils/helpers/models.helpers";
|
|
2
|
-
export function removeApiAction(obj) {
|
|
3
|
-
if (!obj || typeof obj !== "object")
|
|
4
|
-
return obj;
|
|
5
|
-
const result = {};
|
|
6
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
7
|
-
if (key === "apiAction")
|
|
8
|
-
continue;
|
|
9
|
-
if (Array.isArray(value)) {
|
|
10
|
-
result[key] = value.map((item) => typeof item === "object" && item !== null ? removeApiAction(item) : item);
|
|
11
|
-
}
|
|
12
|
-
else if (typeof value === "object" && value !== null) {
|
|
13
|
-
result[key] = removeApiAction(value);
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
result[key] = value;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return result;
|
|
20
|
-
}
|
|
21
|
-
export function isPrismaRelationFormat(obj) {
|
|
22
|
-
if (!obj || typeof obj !== "object")
|
|
23
|
-
return false;
|
|
24
|
-
const prismaOperations = [
|
|
25
|
-
"create",
|
|
26
|
-
"connect",
|
|
27
|
-
"update",
|
|
28
|
-
"delete",
|
|
29
|
-
"disconnect",
|
|
30
|
-
"deleteMany",
|
|
31
|
-
"connectOrCreate",
|
|
32
|
-
"upsert",
|
|
33
|
-
"set",
|
|
34
|
-
];
|
|
35
|
-
return prismaOperations.some((op) => op in obj);
|
|
36
|
-
}
|
|
37
|
-
export function handleRelationFieldsInBody(body, relationFields, ignoreActions = []) {
|
|
38
|
-
let mutableBody = { ...body };
|
|
39
|
-
relationFields?.list?.forEach((field) => {
|
|
40
|
-
if (!body[field.name])
|
|
41
|
-
return;
|
|
42
|
-
if (isPrismaRelationFormat(body[field.name])) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (!Array.isArray(body[field.name])) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const createData = [];
|
|
49
|
-
const connectData = [];
|
|
50
|
-
const updateData = [];
|
|
51
|
-
const disconnectData = [];
|
|
52
|
-
const deleteManyIds = [];
|
|
53
|
-
body[field.name]?.forEach((bodyField) => {
|
|
54
|
-
if (ignoreActions?.includes?.(bodyField?.apiAction))
|
|
55
|
-
return;
|
|
56
|
-
const apiAction = bodyField?.apiAction;
|
|
57
|
-
if (apiAction === "delete") {
|
|
58
|
-
deleteManyIds.push(bodyField.id);
|
|
59
|
-
}
|
|
60
|
-
else if (apiAction === "disconnect") {
|
|
61
|
-
disconnectData.push({ id: bodyField.id });
|
|
62
|
-
}
|
|
63
|
-
else if (canBeUsedToConnect(field.type, bodyField)) {
|
|
64
|
-
const { apiAction: _, ...cleanedData } = bodyField;
|
|
65
|
-
connectData.push(cleanedData);
|
|
66
|
-
}
|
|
67
|
-
else if (!bodyField?.id) {
|
|
68
|
-
let nestedRelations = getPrismaModelRelations(field.type);
|
|
69
|
-
let dataToPush = { ...bodyField };
|
|
70
|
-
if (nestedRelations) {
|
|
71
|
-
dataToPush = handleRelationFieldsInBody(dataToPush, nestedRelations, ignoreActions);
|
|
72
|
-
}
|
|
73
|
-
if ("apiAction" in dataToPush) {
|
|
74
|
-
const { apiAction: _, ...rest } = dataToPush;
|
|
75
|
-
dataToPush = rest;
|
|
76
|
-
}
|
|
77
|
-
createData.push(dataToPush);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
const { id, apiAction: _, ...data } = bodyField;
|
|
81
|
-
let nestedRelations = getPrismaModelRelations(field.type);
|
|
82
|
-
let dataToPush = data;
|
|
83
|
-
if (nestedRelations) {
|
|
84
|
-
dataToPush = handleRelationFieldsInBody(data, nestedRelations, ignoreActions);
|
|
85
|
-
}
|
|
86
|
-
updateData.push({
|
|
87
|
-
where: { id },
|
|
88
|
-
data: dataToPush,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
mutableBody[field.name] = {
|
|
93
|
-
...(createData.length ? { create: createData } : {}),
|
|
94
|
-
...(connectData.length ? { connect: connectData } : {}),
|
|
95
|
-
...(updateData.length ? { update: updateData } : {}),
|
|
96
|
-
...(disconnectData.length ? { disconnect: disconnectData } : {}),
|
|
97
|
-
...(deleteManyIds.length
|
|
98
|
-
? { deleteMany: { id: { in: deleteManyIds } } }
|
|
99
|
-
: {}),
|
|
100
|
-
};
|
|
101
|
-
});
|
|
102
|
-
relationFields?.singular?.forEach((field) => {
|
|
103
|
-
if (!body[field.name])
|
|
104
|
-
return;
|
|
105
|
-
if (ignoreActions?.includes?.(body[field.name]?.apiAction))
|
|
106
|
-
return;
|
|
107
|
-
if (isPrismaRelationFormat(body[field.name])) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const relationData = body[field.name];
|
|
111
|
-
let nestedRelations = getPrismaModelRelations(field.type);
|
|
112
|
-
if (canBeUsedToConnect(field.type, relationData)) {
|
|
113
|
-
const { apiAction: _, ...cleanedData } = relationData;
|
|
114
|
-
mutableBody[field.name] = { connect: cleanedData };
|
|
115
|
-
}
|
|
116
|
-
else if (!relationData?.id) {
|
|
117
|
-
let dataToCreate = { ...relationData };
|
|
118
|
-
if ("apiAction" in dataToCreate) {
|
|
119
|
-
const { apiAction: _, ...rest } = dataToCreate;
|
|
120
|
-
dataToCreate = rest;
|
|
121
|
-
}
|
|
122
|
-
if (nestedRelations) {
|
|
123
|
-
dataToCreate = handleRelationFieldsInBody(dataToCreate, nestedRelations, ignoreActions);
|
|
124
|
-
}
|
|
125
|
-
mutableBody[field.name] = { create: dataToCreate };
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
const { id, apiAction: _, ...data } = relationData;
|
|
129
|
-
let dataToUpdate = data;
|
|
130
|
-
if (nestedRelations) {
|
|
131
|
-
dataToUpdate = handleRelationFieldsInBody(data, nestedRelations, ignoreActions);
|
|
132
|
-
}
|
|
133
|
-
mutableBody[field.name] = {
|
|
134
|
-
update: {
|
|
135
|
-
data: dataToUpdate,
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
if ("apiAction" in mutableBody) {
|
|
141
|
-
const { apiAction, ...rest } = mutableBody;
|
|
142
|
-
mutableBody = rest;
|
|
143
|
-
}
|
|
144
|
-
return removeApiAction(mutableBody);
|
|
145
|
-
}
|
|
146
|
-
export function canBeUsedToConnect(modelName, bodyField) {
|
|
147
|
-
if (!bodyField)
|
|
148
|
-
return false;
|
|
149
|
-
if (bodyField.apiAction && !["connect"]?.includes?.(bodyField.apiAction)) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
if (bodyField.apiAction === "connect") {
|
|
153
|
-
return true;
|
|
154
|
-
}
|
|
155
|
-
if (Object.keys(bodyField)?.length === 1 && bodyField?.id) {
|
|
156
|
-
return true;
|
|
157
|
-
}
|
|
158
|
-
const uniqueFields = getModelUniqueFields(modelName);
|
|
159
|
-
if (Object.keys(bodyField).length === 1) {
|
|
160
|
-
const fieldName = Object.keys(bodyField)[0];
|
|
161
|
-
return uniqueFields?.some((field) => field.name === fieldName);
|
|
162
|
-
}
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
//# sourceMappingURL=base.service.helpers.js.map
|