arkos 1.3.1-beta → 1.3.2-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app.js +139 -1
- package/dist/cjs/exports/auth/index.js +6 -1
- package/dist/cjs/exports/controllers/index.js +11 -1
- package/dist/cjs/exports/error-handler/index.js +11 -1
- package/dist/cjs/exports/index.js +12 -1
- package/dist/cjs/exports/middlewares/index.js +7 -1
- package/dist/cjs/exports/prisma/index.js +13 -1
- package/dist/cjs/exports/services/index.js +48 -1
- package/dist/cjs/exports/utils/index.js +44 -1
- package/dist/cjs/exports/validation/index.js +11 -1
- package/dist/cjs/modules/auth/auth.controller.js +229 -1
- package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
- package/dist/cjs/modules/auth/auth.router.js +82 -1
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +226 -1
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +10 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +83 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +92 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/cjs/modules/base/base.controller.js +172 -1
- package/dist/cjs/modules/base/base.middlewares.js +92 -1
- package/dist/cjs/modules/base/base.router.js +22 -1
- package/dist/cjs/modules/base/base.service.js +507 -1
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/types/base.service.types.js +3 -1
- package/dist/cjs/modules/base/types/base.service.types.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +80 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +50 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +104 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +208 -1
- package/dist/cjs/modules/base/utils/router-validator.js +16 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +19 -1
- package/dist/cjs/modules/email/email.service.js +104 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +146 -4
- package/dist/cjs/modules/error-handler/utils/app-error.js +17 -1
- package/dist/cjs/modules/error-handler/utils/catch-async.js +21 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +205 -3
- package/dist/cjs/modules/file-upload/file-upload.controller.js +233 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +60 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +322 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +97 -1
- package/dist/cjs/modules/swagger/swagger.router.js +38 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +338 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +64 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +37 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +48 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +32 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +49 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +34 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +471 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +572 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +260 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +112 -1
- package/dist/cjs/paths.js +9 -1
- package/dist/cjs/server.js +94 -5
- package/dist/cjs/types/arkos-config.js +3 -1
- package/dist/cjs/types/arkos-config.js.map +1 -1
- package/dist/cjs/types/auth.js +3 -1
- package/dist/cjs/types/index.js +11 -1
- package/dist/cjs/types/router-config.js +3 -1
- package/dist/cjs/utils/arkos-env.js +9 -1
- package/dist/cjs/utils/cli/build.js +214 -5
- package/dist/cjs/utils/cli/dev.js +154 -3
- package/dist/cjs/utils/cli/generate.js +109 -1
- package/dist/cjs/utils/cli/index.js +104 -1
- package/dist/cjs/utils/cli/index.js.map +1 -1
- package/dist/cjs/utils/cli/prisma-generate.js +120 -0
- package/dist/cjs/utils/cli/prisma-generate.js.map +1 -0
- package/dist/cjs/utils/cli/start.js +103 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +24 -1
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +73 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +36 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js +21 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +201 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +288 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +64 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +45 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +29 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generators.js +34 -2
- package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +17 -3
- package/dist/cjs/utils/dotenv.helpers.js +43 -1
- package/dist/cjs/utils/dynamic-loader.js +270 -9
- package/dist/cjs/utils/features/api.features.js +169 -1
- package/dist/cjs/utils/features/change-case.features.js +67 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +105 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +112 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +177 -1
- package/dist/cjs/utils/helpers/deepmerge.helper.js +115 -1
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +76 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +57 -1
- package/dist/cjs/utils/helpers/global.helpers.js +94 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +40 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +45 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +37 -1
- package/dist/cjs/utils/helpers/text.helpers.js +28 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +455 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +216 -4
- package/dist/cjs/utils/prisma/types.js +3 -1
- package/dist/cjs/utils/sheu.js +120 -1
- package/dist/cjs/utils/validate-dto.js +17 -1
- package/dist/cjs/utils/validate-schema.js +15 -1
- package/dist/esm/app.js +132 -1
- package/dist/esm/exports/auth/index.js +2 -1
- package/dist/esm/exports/controllers/index.js +4 -1
- package/dist/esm/exports/error-handler/index.js +4 -1
- package/dist/esm/exports/index.js +8 -1
- package/dist/esm/exports/middlewares/index.js +2 -1
- package/dist/esm/exports/prisma/index.js +6 -1
- package/dist/esm/exports/services/index.js +9 -1
- package/dist/esm/exports/utils/index.js +4 -1
- package/dist/esm/exports/validation/index.js +4 -1
- package/dist/esm/modules/auth/auth.controller.js +222 -1
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +76 -1
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +219 -1
- package/dist/esm/modules/auth/utils/auth-error-objects.js +4 -1
- package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +73 -1
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +90 -1
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +165 -1
- package/dist/esm/modules/base/base.middlewares.js +81 -1
- package/dist/esm/modules/base/base.router.js +15 -1
- package/dist/esm/modules/base/base.service.js +500 -1
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js +2 -1
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +76 -1
- package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +44 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +96 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +198 -1
- package/dist/esm/modules/base/utils/router-validator.js +14 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +17 -1
- package/dist/esm/modules/email/email.service.js +97 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +107 -4
- package/dist/esm/modules/error-handler/utils/app-error.js +15 -1
- package/dist/esm/modules/error-handler/utils/catch-async.js +19 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +163 -3
- package/dist/esm/modules/file-upload/file-upload.controller.js +228 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +54 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +314 -1
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +87 -1
- package/dist/esm/modules/swagger/swagger.router.js +32 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +333 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +58 -1
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +34 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +42 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +26 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +46 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +28 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +465 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +566 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +255 -1
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +101 -1
- package/dist/esm/paths.js +3 -1
- package/dist/esm/server.js +85 -5
- package/dist/esm/types/arkos-config.js +2 -1
- package/dist/esm/types/arkos-config.js.map +1 -1
- package/dist/esm/types/auth.js +2 -1
- package/dist/esm/types/index.js +8 -1
- package/dist/esm/types/router-config.js +2 -1
- package/dist/esm/utils/arkos-env.js +7 -1
- package/dist/esm/utils/cli/build.js +208 -5
- package/dist/esm/utils/cli/dev.js +147 -3
- package/dist/esm/utils/cli/generate.js +103 -1
- package/dist/esm/utils/cli/index.js +94 -1
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +114 -0
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -0
- package/dist/esm/utils/cli/start.js +96 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +16 -1
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js +68 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js +33 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js +18 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +198 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +285 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +61 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +39 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +26 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generators.js +28 -2
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/cli/utils/watermark-stamper.js +15 -3
- package/dist/esm/utils/dotenv.helpers.js +37 -1
- package/dist/esm/utils/dynamic-loader.js +254 -9
- package/dist/esm/utils/features/api.features.js +162 -1
- package/dist/esm/utils/features/change-case.features.js +31 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +67 -1
- package/dist/esm/utils/helpers/api.features.helpers.js +106 -1
- package/dist/esm/utils/helpers/change-case.helpers.js +161 -1
- package/dist/esm/utils/helpers/deepmerge.helper.js +113 -1
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js +69 -1
- package/dist/esm/utils/helpers/fs.helpers.js +48 -1
- package/dist/esm/utils/helpers/global.helpers.js +51 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +32 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +40 -1
- package/dist/esm/utils/helpers/routers.helpers.js +29 -1
- package/dist/esm/utils/helpers/text.helpers.js +22 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +448 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +209 -4
- package/dist/esm/utils/prisma/types.js +2 -1
- package/dist/esm/utils/sheu.js +118 -1
- package/dist/esm/utils/validate-dto.js +11 -1
- package/dist/esm/utils/validate-schema.js +9 -1
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -1
- package/dist/types/modules/base/types/base.service.types.d.ts +12 -9
- package/dist/types/types/arkos-config.d.ts +3 -2
- package/dist/types/utils/cli/prisma-generate.d.ts +1 -0
- package/package.json +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-auth-configs-template.d.ts → auth-configs-template.d.ts} +0 -0
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-controller-template.d.ts → controller-template.d.ts} +0 -0
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-hooks-template.d.ts → hooks-template.d.ts} +0 -0
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-middlewares.d.ts → middlewares-template.d.ts} +0 -0
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-prisma-query-options.d.ts → query-options-template.d.ts} +0 -0
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-router-template.d.ts → router-template.d.ts} +0 -0
- /package/dist/types/utils/cli/utils/template-generator/templates/{generate-service-template.d.ts → service-template.d.ts} +0 -0
|
@@ -1 +1,161 @@
|
|
|
1
|
-
|
|
1
|
+
const SPLIT_LOWER_UPPER_RE = /([\p{Ll}\d])(\p{Lu})/gu;
|
|
2
|
+
const SPLIT_UPPER_UPPER_RE = /(\p{Lu})([\p{Lu}][\p{Ll}])/gu;
|
|
3
|
+
const SPLIT_SEPARATE_NUMBER_RE = /(\d)\p{Ll}|(\p{L})\d/u;
|
|
4
|
+
const DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
|
|
5
|
+
const SPLIT_REPLACE_VALUE = "$1\0$2";
|
|
6
|
+
const DEFAULT_PREFIX_SUFFIX_CHARACTERS = "";
|
|
7
|
+
export function split(value) {
|
|
8
|
+
let result = value.trim();
|
|
9
|
+
result = result
|
|
10
|
+
.replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)
|
|
11
|
+
.replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);
|
|
12
|
+
result = result.replace(DEFAULT_STRIP_REGEXP, "\0");
|
|
13
|
+
let start = 0;
|
|
14
|
+
let end = result.length;
|
|
15
|
+
while (result.charAt(start) === "\0")
|
|
16
|
+
start++;
|
|
17
|
+
if (start === end)
|
|
18
|
+
return [];
|
|
19
|
+
while (result.charAt(end - 1) === "\0")
|
|
20
|
+
end--;
|
|
21
|
+
return result.slice(start, end).split(/\0/g);
|
|
22
|
+
}
|
|
23
|
+
export function splitSeparateNumbers(value) {
|
|
24
|
+
const words = split(value);
|
|
25
|
+
for (let i = 0; i < words.length; i++) {
|
|
26
|
+
const word = words[i];
|
|
27
|
+
const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);
|
|
28
|
+
if (match) {
|
|
29
|
+
const offset = match.index + (match[1] ?? match[2]).length;
|
|
30
|
+
words.splice(i, 1, word.slice(0, offset), word.slice(offset));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return words;
|
|
34
|
+
}
|
|
35
|
+
export function noCase(input, options) {
|
|
36
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
37
|
+
return (prefix +
|
|
38
|
+
words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? " ") +
|
|
39
|
+
suffix);
|
|
40
|
+
}
|
|
41
|
+
export function camelCase(input, options) {
|
|
42
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
43
|
+
const lower = lowerFactory(options?.locale);
|
|
44
|
+
const upper = upperFactory(options?.locale);
|
|
45
|
+
const transform = options?.mergeAmbiguousCharacters
|
|
46
|
+
? capitalCaseTransformFactory(lower, upper)
|
|
47
|
+
: pascalCaseTransformFactory(lower, upper);
|
|
48
|
+
return (prefix +
|
|
49
|
+
words
|
|
50
|
+
.map((word, index) => {
|
|
51
|
+
if (index === 0)
|
|
52
|
+
return lower(word);
|
|
53
|
+
return transform(word, index);
|
|
54
|
+
})
|
|
55
|
+
.join(options?.delimiter ?? "") +
|
|
56
|
+
suffix);
|
|
57
|
+
}
|
|
58
|
+
export function pascalCase(input, options) {
|
|
59
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
60
|
+
const lower = lowerFactory(options?.locale);
|
|
61
|
+
const upper = upperFactory(options?.locale);
|
|
62
|
+
const transform = options?.mergeAmbiguousCharacters
|
|
63
|
+
? capitalCaseTransformFactory(lower, upper)
|
|
64
|
+
: pascalCaseTransformFactory(lower, upper);
|
|
65
|
+
return prefix + words.map(transform).join(options?.delimiter ?? "") + suffix;
|
|
66
|
+
}
|
|
67
|
+
export function pascalSnakeCase(input, options) {
|
|
68
|
+
return capitalCase(input, { delimiter: "_", ...options });
|
|
69
|
+
}
|
|
70
|
+
export function capitalCase(input, options) {
|
|
71
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
72
|
+
const lower = lowerFactory(options?.locale);
|
|
73
|
+
const upper = upperFactory(options?.locale);
|
|
74
|
+
return (prefix +
|
|
75
|
+
words
|
|
76
|
+
.map(capitalCaseTransformFactory(lower, upper))
|
|
77
|
+
.join(options?.delimiter ?? " ") +
|
|
78
|
+
suffix);
|
|
79
|
+
}
|
|
80
|
+
export function constantCase(input, options) {
|
|
81
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
82
|
+
return (prefix +
|
|
83
|
+
words.map(upperFactory(options?.locale)).join(options?.delimiter ?? "_") +
|
|
84
|
+
suffix);
|
|
85
|
+
}
|
|
86
|
+
export function dotCase(input, options) {
|
|
87
|
+
return noCase(input, { delimiter: ".", ...options });
|
|
88
|
+
}
|
|
89
|
+
export function kebabCase(input, options) {
|
|
90
|
+
return noCase(input, { delimiter: "-", ...options });
|
|
91
|
+
}
|
|
92
|
+
export function pathCase(input, options) {
|
|
93
|
+
return noCase(input, { delimiter: "/", ...options });
|
|
94
|
+
}
|
|
95
|
+
export function sentenceCase(input, options) {
|
|
96
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
97
|
+
const lower = lowerFactory(options?.locale);
|
|
98
|
+
const upper = upperFactory(options?.locale);
|
|
99
|
+
const transform = capitalCaseTransformFactory(lower, upper);
|
|
100
|
+
return (prefix +
|
|
101
|
+
words
|
|
102
|
+
.map((word, index) => {
|
|
103
|
+
if (index === 0)
|
|
104
|
+
return transform(word);
|
|
105
|
+
return lower(word);
|
|
106
|
+
})
|
|
107
|
+
.join(options?.delimiter ?? " ") +
|
|
108
|
+
suffix);
|
|
109
|
+
}
|
|
110
|
+
export function snakeCase(input, options) {
|
|
111
|
+
return noCase(input, { delimiter: "_", ...options });
|
|
112
|
+
}
|
|
113
|
+
export function trainCase(input, options) {
|
|
114
|
+
return capitalCase(input, { delimiter: "-", ...options });
|
|
115
|
+
}
|
|
116
|
+
function lowerFactory(locale) {
|
|
117
|
+
return locale === false
|
|
118
|
+
? (input) => input.toLowerCase()
|
|
119
|
+
: (input) => input.toLocaleLowerCase(locale);
|
|
120
|
+
}
|
|
121
|
+
function upperFactory(locale) {
|
|
122
|
+
return locale === false
|
|
123
|
+
? (input) => input.toUpperCase()
|
|
124
|
+
: (input) => input.toLocaleUpperCase(locale);
|
|
125
|
+
}
|
|
126
|
+
function capitalCaseTransformFactory(lower, upper) {
|
|
127
|
+
return (word) => `${upper(word[0])}${lower(word.slice(1))}`;
|
|
128
|
+
}
|
|
129
|
+
function pascalCaseTransformFactory(lower, upper) {
|
|
130
|
+
return (word, index) => {
|
|
131
|
+
const char0 = word[0];
|
|
132
|
+
const initial = index > 0 && char0 >= "0" && char0 <= "9" ? "_" + char0 : upper(char0);
|
|
133
|
+
return initial + lower(word.slice(1));
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function splitPrefixSuffix(input, options = {}) {
|
|
137
|
+
const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);
|
|
138
|
+
const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
|
|
139
|
+
const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
|
|
140
|
+
let prefixIndex = 0;
|
|
141
|
+
let suffixIndex = input.length;
|
|
142
|
+
while (prefixIndex < input.length) {
|
|
143
|
+
const char = input.charAt(prefixIndex);
|
|
144
|
+
if (!prefixCharacters?.includes?.(char))
|
|
145
|
+
break;
|
|
146
|
+
prefixIndex++;
|
|
147
|
+
}
|
|
148
|
+
while (suffixIndex > prefixIndex) {
|
|
149
|
+
const index = suffixIndex - 1;
|
|
150
|
+
const char = input.charAt(index);
|
|
151
|
+
if (!suffixCharacters?.includes?.(char))
|
|
152
|
+
break;
|
|
153
|
+
suffixIndex = index;
|
|
154
|
+
}
|
|
155
|
+
return [
|
|
156
|
+
input.slice(0, prefixIndex),
|
|
157
|
+
splitFn(input.slice(prefixIndex, suffixIndex)),
|
|
158
|
+
input.slice(suffixIndex),
|
|
159
|
+
];
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=change-case.helpers.js.map
|
|
@@ -1 +1,113 @@
|
|
|
1
|
-
|
|
1
|
+
function isMergeableObject(value) {
|
|
2
|
+
return isNonNullObject(value) && !isSpecial(value);
|
|
3
|
+
}
|
|
4
|
+
function isNonNullObject(value) {
|
|
5
|
+
return !!value && typeof value === "object";
|
|
6
|
+
}
|
|
7
|
+
function isSpecial(value) {
|
|
8
|
+
const stringValue = Object.prototype.toString.call(value);
|
|
9
|
+
return stringValue === "[object RegExp]" || stringValue === "[object Date]";
|
|
10
|
+
}
|
|
11
|
+
function emptyTarget(val) {
|
|
12
|
+
return Array.isArray(val) ? [] : {};
|
|
13
|
+
}
|
|
14
|
+
function getKeys(target) {
|
|
15
|
+
const objectKeys = Object.keys(target);
|
|
16
|
+
const symbolKeys = getEnumerableOwnPropertySymbols(target);
|
|
17
|
+
return [...objectKeys, ...symbolKeys];
|
|
18
|
+
}
|
|
19
|
+
function getEnumerableOwnPropertySymbols(target) {
|
|
20
|
+
return Object.getOwnPropertySymbols
|
|
21
|
+
? Object.getOwnPropertySymbols(target).filter(function (symbol) {
|
|
22
|
+
return Object.propertyIsEnumerable.call(target, symbol);
|
|
23
|
+
})
|
|
24
|
+
: [];
|
|
25
|
+
}
|
|
26
|
+
function cloneUnlessOtherwiseSpecified(value, options) {
|
|
27
|
+
return options.clone !== false && options.isMergeableObject?.(value)
|
|
28
|
+
? deepmerge(emptyTarget(value), value, options)
|
|
29
|
+
: value;
|
|
30
|
+
}
|
|
31
|
+
function defaultArrayMerge(target, source, options) {
|
|
32
|
+
return target.concat(source).map(function (element) {
|
|
33
|
+
return options.cloneUnlessOtherwiseSpecified(element, options);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function getMergeFunction(key, options) {
|
|
37
|
+
if (!options.customMerge) {
|
|
38
|
+
return deepmerge;
|
|
39
|
+
}
|
|
40
|
+
const customMerge = options.customMerge(key);
|
|
41
|
+
return typeof customMerge === "function" ? customMerge : deepmerge;
|
|
42
|
+
}
|
|
43
|
+
function propertyIsOnObject(object, property) {
|
|
44
|
+
try {
|
|
45
|
+
return property in object;
|
|
46
|
+
}
|
|
47
|
+
catch (_) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function propertyIsUnsafe(target, key) {
|
|
52
|
+
return (propertyIsOnObject(target, key) &&
|
|
53
|
+
!(Object.hasOwnProperty.call(target, key) &&
|
|
54
|
+
Object.propertyIsEnumerable.call(target, key)));
|
|
55
|
+
}
|
|
56
|
+
function mergeObject(target, source, options) {
|
|
57
|
+
const destination = {};
|
|
58
|
+
if (options.isMergeableObject?.(target)) {
|
|
59
|
+
getKeys(target).forEach(function (key) {
|
|
60
|
+
destination[key] = options.cloneUnlessOtherwiseSpecified
|
|
61
|
+
? options.cloneUnlessOtherwiseSpecified(target[key], options)
|
|
62
|
+
: target[key];
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
getKeys(source).forEach(function (key) {
|
|
66
|
+
if (propertyIsUnsafe(target, key)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (propertyIsOnObject(target, key) &&
|
|
70
|
+
options.isMergeableObject?.(source[key])) {
|
|
71
|
+
destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
destination[key] = options.cloneUnlessOtherwiseSpecified
|
|
75
|
+
? options.cloneUnlessOtherwiseSpecified(source[key], options)
|
|
76
|
+
: source[key];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
return destination;
|
|
80
|
+
}
|
|
81
|
+
function deepmerge(target, source, options) {
|
|
82
|
+
options = options || {};
|
|
83
|
+
const mergeOptions = {
|
|
84
|
+
arrayMerge: options.arrayMerge || defaultArrayMerge,
|
|
85
|
+
isMergeableObject: options.isMergeableObject || isMergeableObject,
|
|
86
|
+
cloneUnlessOtherwiseSpecified: options.cloneUnlessOtherwiseSpecified || cloneUnlessOtherwiseSpecified,
|
|
87
|
+
clone: options.clone,
|
|
88
|
+
customMerge: options.customMerge,
|
|
89
|
+
};
|
|
90
|
+
const sourceIsArray = Array.isArray(source);
|
|
91
|
+
const targetIsArray = Array.isArray(target);
|
|
92
|
+
const sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
|
|
93
|
+
if (!sourceAndTargetTypesMatch) {
|
|
94
|
+
return mergeOptions.cloneUnlessOtherwiseSpecified(source, mergeOptions);
|
|
95
|
+
}
|
|
96
|
+
else if (sourceIsArray) {
|
|
97
|
+
return mergeOptions.arrayMerge?.(target, source, mergeOptions);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return mergeObject(target, source, mergeOptions);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function deepmergeAll(array, options) {
|
|
104
|
+
if (!Array.isArray(array)) {
|
|
105
|
+
throw new Error("first argument should be an array");
|
|
106
|
+
}
|
|
107
|
+
return array.reduce((prev, next) => {
|
|
108
|
+
return deepmerge(prev, next, options);
|
|
109
|
+
}, {});
|
|
110
|
+
}
|
|
111
|
+
deepmerge.all = deepmergeAll;
|
|
112
|
+
export default deepmerge;
|
|
113
|
+
//# sourceMappingURL=deepmerge.helper.js.map
|
|
@@ -1 +1,69 @@
|
|
|
1
|
-
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
export function applyStrictRoutingRules(appModule, arkosConfig, moduleConfig) {
|
|
3
|
+
const strictMode = arkosConfig?.routers?.strict || false;
|
|
4
|
+
const config = moduleConfig || {};
|
|
5
|
+
appModule = appModule.toLowerCase();
|
|
6
|
+
if (strictMode === true) {
|
|
7
|
+
return {
|
|
8
|
+
...config,
|
|
9
|
+
disable: typeof config.disable === "boolean"
|
|
10
|
+
? config.disable
|
|
11
|
+
: appModule === "auth"
|
|
12
|
+
? {
|
|
13
|
+
getMe: true,
|
|
14
|
+
updateMe: true,
|
|
15
|
+
deleteMe: true,
|
|
16
|
+
login: true,
|
|
17
|
+
logout: true,
|
|
18
|
+
signup: true,
|
|
19
|
+
updatePassword: true,
|
|
20
|
+
findManyAuthAction: true,
|
|
21
|
+
...(typeof config.disable === "object" ? config.disable : {}),
|
|
22
|
+
}
|
|
23
|
+
: appModule === "file-upload"
|
|
24
|
+
? {
|
|
25
|
+
findFile: true,
|
|
26
|
+
uploadFile: true,
|
|
27
|
+
updateFile: true,
|
|
28
|
+
deleteFile: true,
|
|
29
|
+
...(typeof config.disable === "object" ? config.disable : {}),
|
|
30
|
+
}
|
|
31
|
+
: {
|
|
32
|
+
createOne: true,
|
|
33
|
+
findOne: true,
|
|
34
|
+
updateOne: true,
|
|
35
|
+
deleteOne: true,
|
|
36
|
+
createMany: true,
|
|
37
|
+
findMany: true,
|
|
38
|
+
updateMany: true,
|
|
39
|
+
deleteMany: true,
|
|
40
|
+
...(typeof config.disable === "object" ? config.disable : {}),
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else if (strictMode === "no-bulk" &&
|
|
45
|
+
!["auth", "file-upload"].includes(appModule.toLowerCase())) {
|
|
46
|
+
return {
|
|
47
|
+
...config,
|
|
48
|
+
disable: typeof config.disable === "boolean"
|
|
49
|
+
? config.disable
|
|
50
|
+
: {
|
|
51
|
+
createMany: true,
|
|
52
|
+
updateMany: true,
|
|
53
|
+
deleteMany: true,
|
|
54
|
+
...(typeof config.disable === "object" ? config.disable : {}),
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return config;
|
|
59
|
+
}
|
|
60
|
+
export async function pathExists(path) {
|
|
61
|
+
try {
|
|
62
|
+
await fs.promises.stat(path);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=dynamic-loader.helpers.js.map
|
|
@@ -1 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
export const crd = () => process.env.ARKOS_BUILD === "true"
|
|
4
|
+
? process.cwd() + "/.build/"
|
|
5
|
+
: process.cwd();
|
|
6
|
+
export function fullCleanCwd(path) {
|
|
7
|
+
if (typeof path !== "string")
|
|
8
|
+
throw new Error("Path must be a string");
|
|
9
|
+
const cwd = process.cwd().replace(/\/+$/, "");
|
|
10
|
+
const escapedCwd = cwd.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
11
|
+
return path.replace(new RegExp(`${escapedCwd}/?`, "g"), "");
|
|
12
|
+
}
|
|
13
|
+
export let userFileExtension;
|
|
14
|
+
export const getUserFileExtension = () => {
|
|
15
|
+
if (userFileExtension)
|
|
16
|
+
return userFileExtension;
|
|
17
|
+
try {
|
|
18
|
+
const currentDir = process.cwd();
|
|
19
|
+
const hasTsConfig = fs.existsSync(path.join(currentDir, "tsconfig.json"));
|
|
20
|
+
const hasAppTs = fs.existsSync(path.join(currentDir, "src", "app.ts"));
|
|
21
|
+
const hasAppJs = fs.existsSync(path.join(currentDir, "src", "app.js"));
|
|
22
|
+
const isBuildMode = process.env.ARKOS_BUILD === "true";
|
|
23
|
+
if (isBuildMode)
|
|
24
|
+
userFileExtension = "js";
|
|
25
|
+
else if (hasTsConfig && hasAppTs)
|
|
26
|
+
userFileExtension = "ts";
|
|
27
|
+
else if (hasAppTs && !hasAppJs)
|
|
28
|
+
userFileExtension = "ts";
|
|
29
|
+
else if (hasAppJs)
|
|
30
|
+
userFileExtension = "js";
|
|
31
|
+
else
|
|
32
|
+
userFileExtension = "js";
|
|
33
|
+
return userFileExtension;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
userFileExtension = "js";
|
|
37
|
+
return userFileExtension;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
export function checkFileExists(filePath) {
|
|
41
|
+
try {
|
|
42
|
+
return fs.existsSync(path.resolve(filePath));
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=fs.helpers.js.map
|
|
@@ -1 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { createRequire } from "module";
|
|
4
|
+
import { pathToFileURL } from "url";
|
|
5
|
+
export function getPackageJson() {
|
|
6
|
+
try {
|
|
7
|
+
const pkgPath = path.join(process.cwd(), "package.json");
|
|
8
|
+
if (fs.existsSync(pkgPath)) {
|
|
9
|
+
return JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
console.error("Error checking package.json:", err);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function isEsm() {
|
|
17
|
+
const pkg = getPackageJson();
|
|
18
|
+
return pkg?.type === "module";
|
|
19
|
+
}
|
|
20
|
+
const userRequire = createRequire(pathToFileURL(process.cwd() + "/package.json"));
|
|
21
|
+
export async function importModule(modulePath, options = { fixExtension: true }) {
|
|
22
|
+
if (!options.fixExtension || modulePath.endsWith(".ts") || !isEsm())
|
|
23
|
+
return await import(modulePath);
|
|
24
|
+
const resolved = userRequire.resolve(modulePath);
|
|
25
|
+
return await import(pathToFileURL(resolved));
|
|
26
|
+
}
|
|
27
|
+
export async function importEsmPreventingTsTransformation(path) {
|
|
28
|
+
const importFn = new Function("path", "return import(path)");
|
|
29
|
+
return await importFn(path);
|
|
30
|
+
}
|
|
31
|
+
export function detectPackageManagerFromUserAgent() {
|
|
32
|
+
const userAgent = process.env.npm_config_user_agent || "";
|
|
33
|
+
if (!userAgent)
|
|
34
|
+
return "npm";
|
|
35
|
+
if (userAgent.includes("cnpm"))
|
|
36
|
+
return "cnpm";
|
|
37
|
+
if (userAgent.includes("pnpm"))
|
|
38
|
+
return "pnpm";
|
|
39
|
+
if (userAgent.includes("yarn"))
|
|
40
|
+
return "yarn";
|
|
41
|
+
if (userAgent.includes("npm"))
|
|
42
|
+
return "npm";
|
|
43
|
+
if (userAgent.includes("bun"))
|
|
44
|
+
return "bun";
|
|
45
|
+
if (userAgent.includes("corepack"))
|
|
46
|
+
return "corepack";
|
|
47
|
+
if (userAgent.includes("deno"))
|
|
48
|
+
return "deno";
|
|
49
|
+
return "npm";
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=global.helpers.js.map
|
|
@@ -1 +1,32 @@
|
|
|
1
|
-
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import AppError from "../../modules/error-handler/utils/app-error.js";
|
|
3
|
+
import { crd, getUserFileExtension as ext } from "./fs.helpers.js";
|
|
4
|
+
import { importModule } from "./global.helpers.js";
|
|
5
|
+
export let prismaInstance = null;
|
|
6
|
+
export async function loadPrismaModule() {
|
|
7
|
+
if (!prismaInstance) {
|
|
8
|
+
try {
|
|
9
|
+
let prismaPath = `${crd()}/src/utils/prisma.${ext()}`;
|
|
10
|
+
if (!fs.existsSync(prismaPath))
|
|
11
|
+
prismaPath = `${crd()}/src/utils/prisma/index.${ext()}`;
|
|
12
|
+
if (!fs.existsSync(prismaPath))
|
|
13
|
+
throw new Error(`Could not found exported prisma insteance at ${prismaPath}`);
|
|
14
|
+
const prismaModule = await importModule(prismaPath, {
|
|
15
|
+
fixExtension: false,
|
|
16
|
+
});
|
|
17
|
+
prismaInstance = prismaModule.default || prismaModule.prisma;
|
|
18
|
+
if (!prismaInstance)
|
|
19
|
+
throw new Error("Prisma not found");
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error.message === "Prisma not found")
|
|
23
|
+
throw new AppError(`Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${ext()} or src/utils/prisma/index.${ext()}, read more about Arkos.js Project Structure under https://www.arkosjs.com/docs/getting-started/project-structure#utilities-directory`, 500, {}, "PrismaInstanceNotFound");
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return prismaInstance;
|
|
28
|
+
}
|
|
29
|
+
export function getPrismaInstance() {
|
|
30
|
+
return prismaInstance;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=prisma.helpers.js.map
|
|
@@ -1 +1,40 @@
|
|
|
1
|
-
|
|
1
|
+
export const parse = (target, options) => {
|
|
2
|
+
switch (typeof target) {
|
|
3
|
+
case "string":
|
|
4
|
+
if (target === "") {
|
|
5
|
+
return "";
|
|
6
|
+
}
|
|
7
|
+
else if (options.parseNull && target === "null") {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
else if (options.parseUndefined && target === "undefined") {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
else if (options.parseBoolean &&
|
|
14
|
+
(target === "true" || target === "false")) {
|
|
15
|
+
return target === "true";
|
|
16
|
+
}
|
|
17
|
+
else if (options.parseNumber && !isNaN(Number(target))) {
|
|
18
|
+
return Number(target);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return target;
|
|
22
|
+
}
|
|
23
|
+
case "object":
|
|
24
|
+
if (Array.isArray(target)) {
|
|
25
|
+
return target.map((x) => parse(x, options));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const obj = target;
|
|
29
|
+
Object.keys(obj).map((key) => (obj[key] = parse(target[key], options)));
|
|
30
|
+
return obj;
|
|
31
|
+
}
|
|
32
|
+
default:
|
|
33
|
+
return target;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export const queryParser = (options) => (req, res, next) => {
|
|
37
|
+
req.query = parse(req.query, options);
|
|
38
|
+
next();
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=query-parser.helpers.js.map
|
|
@@ -1 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
import catchAsync from "../../modules/error-handler/utils/catch-async.js";
|
|
2
|
+
function throwErrorIfInterceptorIsNotAFunction(middleware) {
|
|
3
|
+
if (middleware && typeof middleware !== "function") {
|
|
4
|
+
throw Error(`Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export const safeCatchAsync = (middleware, options = { type: "normal" }) => {
|
|
8
|
+
if (middleware && typeof middleware !== "function") {
|
|
9
|
+
throw Error(`Validation Error: Invalid interceptor of type ${typeof middleware}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`);
|
|
10
|
+
}
|
|
11
|
+
return middleware ? catchAsync(middleware, options) : undefined;
|
|
12
|
+
};
|
|
13
|
+
export const processMiddleware = (middleware, options = { type: "normal" }) => {
|
|
14
|
+
if (!middleware)
|
|
15
|
+
return [];
|
|
16
|
+
if (Array.isArray(middleware)) {
|
|
17
|
+
return middleware
|
|
18
|
+
.filter((mw) => !!mw)
|
|
19
|
+
.map((mw) => {
|
|
20
|
+
throwErrorIfInterceptorIsNotAFunction(mw);
|
|
21
|
+
return safeCatchAsync(mw, options);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
throwErrorIfInterceptorIsNotAFunction(middleware);
|
|
26
|
+
return [safeCatchAsync(middleware, options)];
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=routers.helpers.js.map
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
export function capitalize(text) {
|
|
2
|
+
if (!text)
|
|
3
|
+
return "";
|
|
4
|
+
return text
|
|
5
|
+
.split(" ")
|
|
6
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
7
|
+
.join(" ");
|
|
8
|
+
}
|
|
9
|
+
export function removeBeginningSlash(str) {
|
|
10
|
+
if (str.startsWith("/"))
|
|
11
|
+
return str.substring(1);
|
|
12
|
+
return str;
|
|
13
|
+
}
|
|
14
|
+
export function removeEndingSlash(str) {
|
|
15
|
+
if (str.endsWith("/"))
|
|
16
|
+
return str.substring(0, str.length - 1);
|
|
17
|
+
return str;
|
|
18
|
+
}
|
|
19
|
+
export function removeBothSlashes(str) {
|
|
20
|
+
return removeEndingSlash(removeBeginningSlash(str));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=text.helpers.js.map
|