@carlonicora/nextjs-jsonapi 1.2.0 → 1.3.1
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/{BlockNoteEditor-CNXQ3WL3.js → BlockNoteEditor-7WYPN34K.js} +17 -17
- package/dist/{BlockNoteEditor-CNXQ3WL3.js.map → BlockNoteEditor-7WYPN34K.js.map} +1 -1
- package/dist/{BlockNoteEditor-DC33K4IF.mjs → BlockNoteEditor-V625C23O.mjs} +7 -7
- package/dist/{JsonApiRequest-O7BGUMFO.mjs → JsonApiRequest-6UR7DIAR.mjs} +4 -2
- package/dist/JsonApiRequest-UJ7FGIVI.js +25 -0
- package/dist/JsonApiRequest-UJ7FGIVI.js.map +1 -0
- package/dist/{chunk-EZK3H6EJ.js → chunk-5IET37O4.js} +206 -206
- package/dist/{chunk-EZK3H6EJ.js.map → chunk-5IET37O4.js.map} +1 -1
- package/dist/{chunk-Y4XI3AZR.mjs → chunk-5QC7A6BL.mjs} +32 -20
- package/dist/chunk-5QC7A6BL.mjs.map +1 -0
- package/dist/{chunk-LJRD4SRV.js → chunk-DEYKTLA3.js} +6 -6
- package/dist/{chunk-LJRD4SRV.js.map → chunk-DEYKTLA3.js.map} +1 -1
- package/dist/{chunk-NPPQNSXN.mjs → chunk-FMBQZAIP.mjs} +3 -3
- package/dist/{chunk-MHVXFWZY.mjs → chunk-HTLEKZND.mjs} +3 -3
- package/dist/{chunk-74F6BBHH.mjs → chunk-IKBA4AHN.mjs} +2 -1
- package/dist/chunk-IKBA4AHN.mjs.map +1 -0
- package/dist/{chunk-JLN6UWII.mjs → chunk-JGFWIT2E.mjs} +2 -2
- package/dist/{chunk-KDFDGXCX.js → chunk-K2ANOT66.js} +576 -564
- package/dist/chunk-K2ANOT66.js.map +1 -0
- package/dist/{chunk-X53MF5ZN.mjs → chunk-P2F54I7Q.mjs} +2 -2
- package/dist/{chunk-5ZEADNNP.js → chunk-PMXG5WBC.js} +3 -2
- package/dist/chunk-PMXG5WBC.js.map +1 -0
- package/dist/{chunk-L6LH7WA4.js → chunk-PO5Q3H5I.js} +190 -190
- package/dist/{chunk-L6LH7WA4.js.map → chunk-PO5Q3H5I.js.map} +1 -1
- package/dist/{chunk-WZJDLITG.js → chunk-Q4FXESVT.js} +3 -3
- package/dist/{chunk-WZJDLITG.js.map → chunk-Q4FXESVT.js.map} +1 -1
- package/dist/client/index.js +7 -7
- package/dist/client/index.mjs +6 -6
- package/dist/components/index.js +7 -7
- package/dist/components/index.mjs +6 -6
- package/dist/contexts/index.js +7 -7
- package/dist/contexts/index.mjs +6 -6
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/features/index.js +4 -4
- package/dist/features/index.mjs +3 -3
- package/dist/hooks/index.js +7 -7
- package/dist/hooks/index.mjs +6 -6
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -2
- package/dist/scripts/generate-web-module/generator.d.ts +15 -0
- package/dist/scripts/generate-web-module/generator.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/generator.js +320 -0
- package/dist/scripts/generate-web-module/generator.js.map +1 -0
- package/dist/scripts/generate-web-module/index.d.ts +16 -0
- package/dist/scripts/generate-web-module/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/index.js +80 -0
- package/dist/scripts/generate-web-module/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.js +124 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.d.ts +15 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.js +39 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.js +51 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.js +109 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.js +459 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/index.d.ts +15 -0
- package/dist/scripts/generate-web-module/templates/components/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/index.js +29 -0
- package/dist/scripts/generate-web-module/templates/components/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.js +30 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.js +84 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.js +184 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.js +199 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/context.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/context.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/context.template.js +121 -0
- package/dist/scripts/generate-web-module/templates/context.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.js +55 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/index.d.ts +10 -0
- package/dist/scripts/generate-web-module/templates/data/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/index.js +26 -0
- package/dist/scripts/generate-web-module/templates/data/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.js +116 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.js +274 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.js +168 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/index.d.ts +12 -0
- package/dist/scripts/generate-web-module/templates/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/index.js +37 -0
- package/dist/scripts/generate-web-module/templates/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/module.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/module.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/module.template.js +64 -0
- package/dist/scripts/generate-web-module/templates/module.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.js +65 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/index.d.ts +8 -0
- package/dist/scripts/generate-web-module/templates/pages/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/index.js +13 -0
- package/dist/scripts/generate-web-module/templates/pages/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.js +37 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.js +174 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.d.ts +55 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.js +179 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.d.ts +78 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.js +182 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.d.ts +106 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.js +193 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/index.d.ts +12 -0
- package/dist/scripts/generate-web-module/transformers/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/index.js +28 -0
- package/dist/scripts/generate-web-module/transformers/index.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.d.ts +60 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.js +115 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.d.ts +57 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.js +88 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.d.ts +68 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.js +219 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.js.map +1 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.d.ts +68 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.js +129 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.js.map +1 -0
- package/dist/scripts/generate-web-module/types/index.d.ts +9 -0
- package/dist/scripts/generate-web-module/types/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/index.js +25 -0
- package/dist/scripts/generate-web-module/types/index.js.map +1 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.d.ts +40 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.js +10 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.js.map +1 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.d.ts +128 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.js +9 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.d.ts +29 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.js +153 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/file-writer.d.ts +38 -0
- package/dist/scripts/generate-web-module/utils/file-writer.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/file-writer.js +126 -0
- package/dist/scripts/generate-web-module/utils/file-writer.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.d.ts +28 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.js +122 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/index.d.ts +9 -0
- package/dist/scripts/generate-web-module/utils/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/index.js +20 -0
- package/dist/scripts/generate-web-module/utils/index.js.map +1 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.d.ts +46 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.js +265 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.js.map +1 -0
- package/dist/shadcnui/index.js +4 -4
- package/dist/shadcnui/index.mjs +3 -3
- package/dist/utils/index.js +3 -3
- package/dist/utils/index.mjs +2 -2
- package/package.json +27 -21
- package/scripts/generate-web-module/generator.ts +363 -0
- package/scripts/generate-web-module/index.ts +49 -0
- package/scripts/generate-web-module/templates/components/container.template.ts +129 -0
- package/scripts/generate-web-module/templates/components/content.template.ts +40 -0
- package/scripts/generate-web-module/templates/components/deleter.template.ts +51 -0
- package/scripts/generate-web-module/templates/components/details.template.ts +115 -0
- package/scripts/generate-web-module/templates/components/editor.template.ts +495 -0
- package/scripts/generate-web-module/templates/components/index.ts +18 -0
- package/scripts/generate-web-module/templates/components/list-container.template.ts +30 -0
- package/scripts/generate-web-module/templates/components/list.template.ts +91 -0
- package/scripts/generate-web-module/templates/components/multi-selector.template.ts +184 -0
- package/scripts/generate-web-module/templates/components/selector.template.ts +199 -0
- package/scripts/generate-web-module/templates/context.template.ts +121 -0
- package/scripts/generate-web-module/templates/data/fields.template.ts +64 -0
- package/scripts/generate-web-module/templates/data/index.ts +10 -0
- package/scripts/generate-web-module/templates/data/interface.template.ts +136 -0
- package/scripts/generate-web-module/templates/data/model.template.ts +327 -0
- package/scripts/generate-web-module/templates/data/service.template.ts +185 -0
- package/scripts/generate-web-module/templates/index.ts +34 -0
- package/scripts/generate-web-module/templates/module.template.ts +69 -0
- package/scripts/generate-web-module/templates/pages/detail-page.template.ts +65 -0
- package/scripts/generate-web-module/templates/pages/index.ts +8 -0
- package/scripts/generate-web-module/templates/pages/list-page.template.ts +37 -0
- package/scripts/generate-web-module/templates/table-hook.template.ts +182 -0
- package/scripts/generate-web-module/transformers/field-mapper.ts +201 -0
- package/scripts/generate-web-module/transformers/i18n-generator.ts +199 -0
- package/scripts/generate-web-module/transformers/import-resolver.ts +250 -0
- package/scripts/generate-web-module/transformers/index.ts +12 -0
- package/scripts/generate-web-module/transformers/name-transformer.ts +115 -0
- package/scripts/generate-web-module/transformers/parent-detector.ts +87 -0
- package/scripts/generate-web-module/transformers/relationship-resolver.ts +221 -0
- package/scripts/generate-web-module/tsconfig.json +24 -0
- package/scripts/generate-web-module/types/field-mapping.types.ts +141 -0
- package/scripts/generate-web-module/types/index.ts +9 -0
- package/scripts/generate-web-module/types/json-schema.interface.ts +42 -0
- package/scripts/generate-web-module/types/template-data.interface.ts +164 -0
- package/scripts/generate-web-module/utils/bootstrapper-updater.ts +145 -0
- package/scripts/generate-web-module/utils/file-writer.ts +115 -0
- package/scripts/generate-web-module/utils/i18n-updater.ts +108 -0
- package/scripts/generate-web-module/utils/index.ts +9 -0
- package/scripts/generate-web-module/validators/json-schema-validator.ts +306 -0
- package/src/components/errors/ErrorDetails.tsx +2 -2
- package/src/features/auth/components/containers/AuthContainer.tsx +1 -1
- package/src/features/auth/components/details/LandingComponent.tsx +20 -1
- package/src/features/auth/components/forms/AcceptInvitation.tsx +1 -1
- package/src/features/auth/components/forms/ActivateAccount.tsx +1 -1
- package/src/features/auth/components/forms/ForgotPassword.tsx +1 -1
- package/src/features/auth/components/forms/Login.tsx +1 -1
- package/src/features/auth/components/forms/Register.tsx +1 -1
- package/src/features/auth/components/forms/ResetPassword.tsx +1 -1
- package/src/features/company/components/forms/CompanyLicense.tsx +1 -8
- package/src/unified/JsonApiRequest.ts +2 -2
- package/dist/JsonApiRequest-VARLNKAF.js +0 -23
- package/dist/JsonApiRequest-VARLNKAF.js.map +0 -1
- package/dist/chunk-5ZEADNNP.js.map +0 -1
- package/dist/chunk-74F6BBHH.mjs.map +0 -1
- package/dist/chunk-KDFDGXCX.js.map +0 -1
- package/dist/chunk-Y4XI3AZR.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-DC33K4IF.mjs.map → BlockNoteEditor-V625C23O.mjs.map} +0 -0
- /package/dist/{JsonApiRequest-O7BGUMFO.mjs.map → JsonApiRequest-6UR7DIAR.mjs.map} +0 -0
- /package/dist/{chunk-NPPQNSXN.mjs.map → chunk-FMBQZAIP.mjs.map} +0 -0
- /package/dist/{chunk-MHVXFWZY.mjs.map → chunk-HTLEKZND.mjs.map} +0 -0
- /package/dist/{chunk-JLN6UWII.mjs.map → chunk-JGFWIT2E.mjs.map} +0 -0
- /package/dist/{chunk-X53MF5ZN.mjs.map → chunk-P2F54I7Q.mjs.map} +0 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* i18n Generator
|
|
4
|
+
*
|
|
5
|
+
* Generates internationalization keys and messages for a module.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.generateI18nKeys = generateI18nKeys;
|
|
9
|
+
exports.buildI18nMessages = buildI18nMessages;
|
|
10
|
+
exports.getFieldLabelKey = getFieldLabelKey;
|
|
11
|
+
exports.getFieldPlaceholderKey = getFieldPlaceholderKey;
|
|
12
|
+
exports.getFieldErrorKey = getFieldErrorKey;
|
|
13
|
+
exports.getTypeKey = getTypeKey;
|
|
14
|
+
exports.generateTranslationCall = generateTranslationCall;
|
|
15
|
+
exports.mergeI18nMessages = mergeI18nMessages;
|
|
16
|
+
exports.sortObjectKeys = sortObjectKeys;
|
|
17
|
+
const name_transformer_1 = require("./name-transformer");
|
|
18
|
+
/**
|
|
19
|
+
* Generate complete i18n key set for a module
|
|
20
|
+
*
|
|
21
|
+
* @param names - Name transforms
|
|
22
|
+
* @param fields - Array of frontend fields
|
|
23
|
+
* @param relationships - Array of frontend relationships
|
|
24
|
+
* @returns i18n key set
|
|
25
|
+
*/
|
|
26
|
+
function generateI18nKeys(names, fields, relationships) {
|
|
27
|
+
const lowerModuleName = names.camelCase;
|
|
28
|
+
// Generate field keys
|
|
29
|
+
const fieldKeys = {};
|
|
30
|
+
fields.forEach((field) => {
|
|
31
|
+
fieldKeys[field.name] = {
|
|
32
|
+
label: (0, name_transformer_1.toTitleCase)(field.name),
|
|
33
|
+
placeholder: `Enter ${(0, name_transformer_1.toTitleCase)(field.name).toLowerCase()}`,
|
|
34
|
+
error: `${(0, name_transformer_1.toTitleCase)(field.name)} is required`,
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
// Generate relationship keys
|
|
38
|
+
const relationshipKeys = {};
|
|
39
|
+
relationships.forEach((rel) => {
|
|
40
|
+
const effectiveName = rel.variant || rel.name;
|
|
41
|
+
const effectiveKey = (0, name_transformer_1.toCamelCase)(effectiveName);
|
|
42
|
+
relationshipKeys[effectiveKey] = {
|
|
43
|
+
label: (0, name_transformer_1.toTitleCase)(effectiveName),
|
|
44
|
+
placeholder: `Select ${(0, name_transformer_1.toTitleCase)(effectiveName).toLowerCase()}`,
|
|
45
|
+
error: `${(0, name_transformer_1.toTitleCase)(effectiveName)} is required`,
|
|
46
|
+
list: (0, name_transformer_1.pluralize)((0, name_transformer_1.toTitleCase)(rel.name)),
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
// Generate type keys
|
|
50
|
+
const singularTitle = names.titleCase;
|
|
51
|
+
const pluralTitle = names.pluralTitleCase;
|
|
52
|
+
return {
|
|
53
|
+
moduleName: lowerModuleName,
|
|
54
|
+
fields: fieldKeys,
|
|
55
|
+
relationships: relationshipKeys,
|
|
56
|
+
type: {
|
|
57
|
+
singular: singularTitle,
|
|
58
|
+
plural: pluralTitle,
|
|
59
|
+
icuPlural: `{count, plural, =1 {${singularTitle}} other {${pluralTitle}}}`,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build the i18n message object to merge into en.json
|
|
65
|
+
*
|
|
66
|
+
* @param i18nKeys - i18n key set
|
|
67
|
+
* @returns Object structure for en.json
|
|
68
|
+
*/
|
|
69
|
+
function buildI18nMessages(i18nKeys) {
|
|
70
|
+
return {
|
|
71
|
+
features: {
|
|
72
|
+
[i18nKeys.moduleName]: {
|
|
73
|
+
fields: i18nKeys.fields,
|
|
74
|
+
relationships: i18nKeys.relationships,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
types: {
|
|
78
|
+
[i18nKeys.moduleName + "s"]: i18nKeys.type.icuPlural,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the translation key path for a field label
|
|
84
|
+
*
|
|
85
|
+
* @param moduleName - Module name (lowercase)
|
|
86
|
+
* @param fieldName - Field name
|
|
87
|
+
* @returns Translation key path
|
|
88
|
+
*/
|
|
89
|
+
function getFieldLabelKey(moduleName, fieldName) {
|
|
90
|
+
return `features.${moduleName}.fields.${fieldName}.label`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the translation key path for a field placeholder
|
|
94
|
+
*
|
|
95
|
+
* @param moduleName - Module name (lowercase)
|
|
96
|
+
* @param fieldName - Field name
|
|
97
|
+
* @returns Translation key path
|
|
98
|
+
*/
|
|
99
|
+
function getFieldPlaceholderKey(moduleName, fieldName) {
|
|
100
|
+
return `features.${moduleName}.fields.${fieldName}.placeholder`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get the translation key path for a field error
|
|
104
|
+
*
|
|
105
|
+
* @param moduleName - Module name (lowercase)
|
|
106
|
+
* @param fieldName - Field name
|
|
107
|
+
* @returns Translation key path
|
|
108
|
+
*/
|
|
109
|
+
function getFieldErrorKey(moduleName, fieldName) {
|
|
110
|
+
return `features.${moduleName}.fields.${fieldName}.error`;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get the translation key path for type pluralization
|
|
114
|
+
*
|
|
115
|
+
* @param pluralKebab - Plural kebab-case name
|
|
116
|
+
* @returns Translation key path
|
|
117
|
+
*/
|
|
118
|
+
function getTypeKey(pluralKebab) {
|
|
119
|
+
return `types.${pluralKebab}`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Generate translation call for use in templates
|
|
123
|
+
*
|
|
124
|
+
* @param keyPath - Full translation key path
|
|
125
|
+
* @param params - Optional parameters for ICU messages
|
|
126
|
+
* @returns Translation function call as string
|
|
127
|
+
*/
|
|
128
|
+
function generateTranslationCall(keyPath, params) {
|
|
129
|
+
if (params) {
|
|
130
|
+
const paramStr = JSON.stringify(params);
|
|
131
|
+
return `t(\`${keyPath}\`, ${paramStr})`;
|
|
132
|
+
}
|
|
133
|
+
return `t(\`${keyPath}\`)`;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Merge i18n messages into existing messages object
|
|
137
|
+
* This performs a deep merge, preserving existing keys
|
|
138
|
+
*
|
|
139
|
+
* @param existing - Existing messages object
|
|
140
|
+
* @param newMessages - New messages to merge
|
|
141
|
+
* @returns Merged messages object
|
|
142
|
+
*/
|
|
143
|
+
function mergeI18nMessages(existing, newMessages) {
|
|
144
|
+
const result = { ...existing };
|
|
145
|
+
function deepMerge(target, source) {
|
|
146
|
+
for (const key of Object.keys(source)) {
|
|
147
|
+
if (source[key] &&
|
|
148
|
+
typeof source[key] === "object" &&
|
|
149
|
+
!Array.isArray(source[key])) {
|
|
150
|
+
if (!target[key]) {
|
|
151
|
+
target[key] = {};
|
|
152
|
+
}
|
|
153
|
+
deepMerge(target[key], source[key]);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
target[key] = source[key];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
deepMerge(result, newMessages);
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Sort object keys alphabetically (for consistent output)
|
|
165
|
+
*
|
|
166
|
+
* @param obj - Object to sort
|
|
167
|
+
* @returns New object with sorted keys
|
|
168
|
+
*/
|
|
169
|
+
function sortObjectKeys(obj) {
|
|
170
|
+
const sorted = {};
|
|
171
|
+
const keys = Object.keys(obj).sort();
|
|
172
|
+
for (const key of keys) {
|
|
173
|
+
if (obj[key] && typeof obj[key] === "object" && !Array.isArray(obj[key])) {
|
|
174
|
+
sorted[key] = sortObjectKeys(obj[key]);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
sorted[key] = obj[key];
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return sorted;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=i18n-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-generator.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/i18n-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import Resolver
|
|
3
|
+
*
|
|
4
|
+
* Builds import paths for selectors, models, and related modules.
|
|
5
|
+
*/
|
|
6
|
+
import { FrontendRelationship, ImportStatements, FrontendTemplateData } from "../types/template-data.interface";
|
|
7
|
+
/**
|
|
8
|
+
* Build all import statements needed for a module
|
|
9
|
+
*
|
|
10
|
+
* @param relationships - Array of frontend relationships
|
|
11
|
+
* @param extendsContent - Whether the module extends Content
|
|
12
|
+
* @returns Import statements grouped by category
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildImportStatements(relationships: FrontendRelationship[], extendsContent: boolean): ImportStatements;
|
|
15
|
+
/**
|
|
16
|
+
* Build model/interface import statements
|
|
17
|
+
*
|
|
18
|
+
* @param relationships - Array of frontend relationships
|
|
19
|
+
* @returns Array of import statements for models
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildModelImports(relationships: FrontendRelationship[]): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Build selector component import statements
|
|
24
|
+
*
|
|
25
|
+
* @param relationships - Array of frontend relationships
|
|
26
|
+
* @returns Array of import statements for selectors
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildSelectorImports(relationships: FrontendRelationship[]): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Build library import statements
|
|
31
|
+
*
|
|
32
|
+
* @param extendsContent - Whether the module extends Content
|
|
33
|
+
* @returns Array of import statements for library
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildLibraryImports(extendsContent: boolean): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Build import path for a module's own files
|
|
38
|
+
*
|
|
39
|
+
* @param targetDir - Target directory
|
|
40
|
+
* @param moduleName - Module name (PascalCase)
|
|
41
|
+
* @param fileName - File name without extension
|
|
42
|
+
* @returns Import path
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildModuleImportPath(targetDir: string, moduleName: string, fileName: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Build import path for a related module's selector
|
|
47
|
+
*
|
|
48
|
+
* @param rel - Frontend relationship
|
|
49
|
+
* @returns Import path for selector
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildSelectorImportPath(rel: FrontendRelationship): string;
|
|
52
|
+
/**
|
|
53
|
+
* Get the web base path for generated files
|
|
54
|
+
*
|
|
55
|
+
* @param targetDir - Target directory (features or foundations)
|
|
56
|
+
* @param moduleName - Module name (PascalCase)
|
|
57
|
+
* @returns Base path for generated files
|
|
58
|
+
*/
|
|
59
|
+
export declare function getWebBasePath(targetDir: string, moduleName: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Get the page path for generated pages
|
|
62
|
+
*
|
|
63
|
+
* @param pluralKebab - Plural kebab-case name (e.g., "comments")
|
|
64
|
+
* @returns Base path for page files
|
|
65
|
+
*/
|
|
66
|
+
export declare function getPageBasePath(pluralKebab: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* File paths interface
|
|
69
|
+
*/
|
|
70
|
+
export interface ModuleFilePaths {
|
|
71
|
+
interface: string;
|
|
72
|
+
model: string;
|
|
73
|
+
service: string;
|
|
74
|
+
fields: string;
|
|
75
|
+
editor: string;
|
|
76
|
+
deleter: string;
|
|
77
|
+
selector: string;
|
|
78
|
+
multiSelector: string;
|
|
79
|
+
list: string;
|
|
80
|
+
details: string;
|
|
81
|
+
content: string;
|
|
82
|
+
container: string;
|
|
83
|
+
listContainer: string;
|
|
84
|
+
context: string;
|
|
85
|
+
tableHook: string;
|
|
86
|
+
module: string;
|
|
87
|
+
listPage: string;
|
|
88
|
+
detailPage: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build all file paths for a module from template data
|
|
92
|
+
*
|
|
93
|
+
* @param data - Frontend template data
|
|
94
|
+
* @param rootPath - Root path for the monorepo (optional, defaults to "")
|
|
95
|
+
* @returns Object with all file paths
|
|
96
|
+
*/
|
|
97
|
+
export declare function buildFilePaths(data: FrontendTemplateData, rootPath?: string): ModuleFilePaths;
|
|
98
|
+
/**
|
|
99
|
+
* Build relative import path between two files
|
|
100
|
+
*
|
|
101
|
+
* @param fromPath - Source file path
|
|
102
|
+
* @param toPath - Target file path
|
|
103
|
+
* @returns Relative import path
|
|
104
|
+
*/
|
|
105
|
+
export declare function buildRelativeImport(fromPath: string, toPath: string): string;
|
|
106
|
+
//# sourceMappingURL=import-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/import-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIhH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,oBAAoB,EAAE,EACrC,cAAc,EAAE,OAAO,GACtB,gBAAgB,CAMlB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAWjF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAgBpF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,EAAE,CAgBrE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,CAGzE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,GAAE,MAAW,GACpB,eAAe,CAmCjB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0B5E"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Import Resolver
|
|
4
|
+
*
|
|
5
|
+
* Builds import paths for selectors, models, and related modules.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.buildImportStatements = buildImportStatements;
|
|
9
|
+
exports.buildModelImports = buildModelImports;
|
|
10
|
+
exports.buildSelectorImports = buildSelectorImports;
|
|
11
|
+
exports.buildLibraryImports = buildLibraryImports;
|
|
12
|
+
exports.buildModuleImportPath = buildModuleImportPath;
|
|
13
|
+
exports.buildSelectorImportPath = buildSelectorImportPath;
|
|
14
|
+
exports.getWebBasePath = getWebBasePath;
|
|
15
|
+
exports.getPageBasePath = getPageBasePath;
|
|
16
|
+
exports.buildFilePaths = buildFilePaths;
|
|
17
|
+
exports.buildRelativeImport = buildRelativeImport;
|
|
18
|
+
const field_mapping_types_1 = require("../types/field-mapping.types");
|
|
19
|
+
const name_transformer_1 = require("./name-transformer");
|
|
20
|
+
/**
|
|
21
|
+
* Build all import statements needed for a module
|
|
22
|
+
*
|
|
23
|
+
* @param relationships - Array of frontend relationships
|
|
24
|
+
* @param extendsContent - Whether the module extends Content
|
|
25
|
+
* @returns Import statements grouped by category
|
|
26
|
+
*/
|
|
27
|
+
function buildImportStatements(relationships, extendsContent) {
|
|
28
|
+
return {
|
|
29
|
+
models: buildModelImports(relationships),
|
|
30
|
+
selectors: buildSelectorImports(relationships),
|
|
31
|
+
library: buildLibraryImports(extendsContent),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build model/interface import statements
|
|
36
|
+
*
|
|
37
|
+
* @param relationships - Array of frontend relationships
|
|
38
|
+
* @returns Array of import statements for models
|
|
39
|
+
*/
|
|
40
|
+
function buildModelImports(relationships) {
|
|
41
|
+
const imports = [];
|
|
42
|
+
relationships.forEach((rel) => {
|
|
43
|
+
// Import interface for relationships
|
|
44
|
+
imports.push(`import { ${rel.interfaceName} } from "${rel.interfaceImportPath}";`);
|
|
45
|
+
});
|
|
46
|
+
return [...new Set(imports)]; // Deduplicate
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build selector component import statements
|
|
50
|
+
*
|
|
51
|
+
* @param relationships - Array of frontend relationships
|
|
52
|
+
* @returns Array of import statements for selectors
|
|
53
|
+
*/
|
|
54
|
+
function buildSelectorImports(relationships) {
|
|
55
|
+
const imports = [];
|
|
56
|
+
relationships.forEach((rel) => {
|
|
57
|
+
// Skip author - handled specially or auto-set
|
|
58
|
+
if (rel.variant === field_mapping_types_1.AUTHOR_VARIANT) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const componentName = rel.single ? `${rel.name}Selector` : `${rel.name}MultiSelector`;
|
|
62
|
+
imports.push(`import ${componentName} from "${rel.importPath}";`);
|
|
63
|
+
});
|
|
64
|
+
return [...new Set(imports)]; // Deduplicate
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Build library import statements
|
|
68
|
+
*
|
|
69
|
+
* @param extendsContent - Whether the module extends Content
|
|
70
|
+
* @returns Array of import statements for library
|
|
71
|
+
*/
|
|
72
|
+
function buildLibraryImports(extendsContent) {
|
|
73
|
+
const imports = [];
|
|
74
|
+
// Core imports always needed
|
|
75
|
+
imports.push(`import { AbstractApiData } from "@carlonicora/nextjs-jsonapi/core";`);
|
|
76
|
+
// Content import if extending
|
|
77
|
+
if (extendsContent) {
|
|
78
|
+
imports.push(`import { Content, ContentInterface, ContentInput } from "@carlonicora/nextjs-jsonapi/core";`);
|
|
79
|
+
}
|
|
80
|
+
return imports;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Build import path for a module's own files
|
|
84
|
+
*
|
|
85
|
+
* @param targetDir - Target directory
|
|
86
|
+
* @param moduleName - Module name (PascalCase)
|
|
87
|
+
* @param fileName - File name without extension
|
|
88
|
+
* @returns Import path
|
|
89
|
+
*/
|
|
90
|
+
function buildModuleImportPath(targetDir, moduleName, fileName) {
|
|
91
|
+
const kebab = (0, name_transformer_1.toKebabCase)(moduleName);
|
|
92
|
+
return `@/features/${targetDir}/${kebab}/data/${fileName}`;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Build import path for a related module's selector
|
|
96
|
+
*
|
|
97
|
+
* @param rel - Frontend relationship
|
|
98
|
+
* @returns Import path for selector
|
|
99
|
+
*/
|
|
100
|
+
function buildSelectorImportPath(rel) {
|
|
101
|
+
const componentName = rel.single ? `${rel.name}Selector` : `${rel.name}MultiSelector`;
|
|
102
|
+
return `@/features/${rel.directory}/${rel.modelKebab}/components/forms/${componentName}`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get the web base path for generated files
|
|
106
|
+
*
|
|
107
|
+
* @param targetDir - Target directory (features or foundations)
|
|
108
|
+
* @param moduleName - Module name (PascalCase)
|
|
109
|
+
* @returns Base path for generated files
|
|
110
|
+
*/
|
|
111
|
+
function getWebBasePath(targetDir, moduleName) {
|
|
112
|
+
const kebab = (0, name_transformer_1.toKebabCase)(moduleName);
|
|
113
|
+
return `apps/web/src/features/${targetDir}/${kebab}`;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the page path for generated pages
|
|
117
|
+
*
|
|
118
|
+
* @param pluralKebab - Plural kebab-case name (e.g., "comments")
|
|
119
|
+
* @returns Base path for page files
|
|
120
|
+
*/
|
|
121
|
+
function getPageBasePath(pluralKebab) {
|
|
122
|
+
return `apps/web/src/app/[locale]/(main)/(features)/${pluralKebab}`;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Build all file paths for a module from template data
|
|
126
|
+
*
|
|
127
|
+
* @param data - Frontend template data
|
|
128
|
+
* @param rootPath - Root path for the monorepo (optional, defaults to "")
|
|
129
|
+
* @returns Object with all file paths
|
|
130
|
+
*/
|
|
131
|
+
function buildFilePaths(data, rootPath = "") {
|
|
132
|
+
const { names, targetDir } = data;
|
|
133
|
+
const prefix = rootPath ? `${rootPath}/` : "";
|
|
134
|
+
const basePath = `${prefix}apps/web/src/features/${targetDir}/${names.kebabCase}`;
|
|
135
|
+
const pagePath = `${prefix}apps/web/src/app/[locale]/(main)/(features)/${names.pluralKebab}`;
|
|
136
|
+
return {
|
|
137
|
+
// Data layer
|
|
138
|
+
interface: `${basePath}/data/${names.pascalCase}Interface.ts`,
|
|
139
|
+
model: `${basePath}/data/${names.pascalCase}.ts`,
|
|
140
|
+
service: `${basePath}/data/${names.pascalCase}Service.ts`,
|
|
141
|
+
fields: `${basePath}/data/${names.pascalCase}Fields.ts`,
|
|
142
|
+
// Components
|
|
143
|
+
editor: `${basePath}/components/forms/${names.pascalCase}Editor.tsx`,
|
|
144
|
+
deleter: `${basePath}/components/forms/${names.pascalCase}Deleter.tsx`,
|
|
145
|
+
selector: `${basePath}/components/forms/${names.pascalCase}Selector.tsx`,
|
|
146
|
+
multiSelector: `${basePath}/components/forms/${names.pascalCase}MultiSelector.tsx`,
|
|
147
|
+
list: `${basePath}/components/lists/${names.pascalCase}List.tsx`,
|
|
148
|
+
details: `${basePath}/components/details/${names.pascalCase}Details.tsx`,
|
|
149
|
+
content: `${basePath}/components/details/${names.pascalCase}Content.tsx`,
|
|
150
|
+
container: `${basePath}/components/containers/${names.pascalCase}Container.tsx`,
|
|
151
|
+
listContainer: `${basePath}/components/containers/${names.pascalCase}ListContainer.tsx`,
|
|
152
|
+
// Context & Hooks
|
|
153
|
+
context: `${basePath}/contexts/${names.pascalCase}Context.tsx`,
|
|
154
|
+
tableHook: `${basePath}/hooks/use${names.pascalCase}TableStructure.tsx`,
|
|
155
|
+
// Module
|
|
156
|
+
module: `${basePath}/${names.pascalCase}Module.ts`,
|
|
157
|
+
// Pages
|
|
158
|
+
listPage: `${pagePath}/page.tsx`,
|
|
159
|
+
detailPage: `${pagePath}/[id]/page.tsx`,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Build relative import path between two files
|
|
164
|
+
*
|
|
165
|
+
* @param fromPath - Source file path
|
|
166
|
+
* @param toPath - Target file path
|
|
167
|
+
* @returns Relative import path
|
|
168
|
+
*/
|
|
169
|
+
function buildRelativeImport(fromPath, toPath) {
|
|
170
|
+
// For files in same feature, use @ alias
|
|
171
|
+
if (toPath.startsWith("@/")) {
|
|
172
|
+
return toPath;
|
|
173
|
+
}
|
|
174
|
+
// Calculate relative path
|
|
175
|
+
const fromParts = fromPath.split("/");
|
|
176
|
+
const toParts = toPath.split("/");
|
|
177
|
+
// Find common prefix
|
|
178
|
+
let commonLength = 0;
|
|
179
|
+
for (let i = 0; i < Math.min(fromParts.length, toParts.length); i++) {
|
|
180
|
+
if (fromParts[i] === toParts[i]) {
|
|
181
|
+
commonLength++;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Build relative path
|
|
188
|
+
const upCount = fromParts.length - commonLength - 1; // -1 for the file itself
|
|
189
|
+
const relativeParts = toParts.slice(commonLength);
|
|
190
|
+
const prefix = upCount > 0 ? "../".repeat(upCount) : "./";
|
|
191
|
+
return prefix + relativeParts.join("/");
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=import-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/import-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transformers Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all transformer modules.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./name-transformer";
|
|
7
|
+
export * from "./parent-detector";
|
|
8
|
+
export * from "./field-mapper";
|
|
9
|
+
export * from "./relationship-resolver";
|
|
10
|
+
export * from "./import-resolver";
|
|
11
|
+
export * from "./i18n-generator";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transformers Index
|
|
4
|
+
*
|
|
5
|
+
* Re-exports all transformer modules.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./name-transformer"), exports);
|
|
23
|
+
__exportStar(require("./parent-detector"), exports);
|
|
24
|
+
__exportStar(require("./field-mapper"), exports);
|
|
25
|
+
__exportStar(require("./relationship-resolver"), exports);
|
|
26
|
+
__exportStar(require("./import-resolver"), exports);
|
|
27
|
+
__exportStar(require("./i18n-generator"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,qDAAmC;AACnC,oDAAkC;AAClC,iDAA+B;AAC/B,0DAAwC;AACxC,oDAAkC;AAClC,mDAAiC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Name Transformer
|
|
3
|
+
*
|
|
4
|
+
* Transforms module names to various case conventions
|
|
5
|
+
* needed for code generation.
|
|
6
|
+
*/
|
|
7
|
+
import { NameTransforms } from "../types/template-data.interface";
|
|
8
|
+
/**
|
|
9
|
+
* Transform a module name to all necessary case conventions
|
|
10
|
+
*
|
|
11
|
+
* @param moduleName - PascalCase module name (e.g., "Comment")
|
|
12
|
+
* @param endpoint - Optional kebab-case plural endpoint (e.g., "comments"), derived from moduleName if not provided
|
|
13
|
+
* @returns All name transformations
|
|
14
|
+
*/
|
|
15
|
+
export declare function transformNames(moduleName: string, endpoint?: string): NameTransforms;
|
|
16
|
+
/**
|
|
17
|
+
* Convert PascalCase to camelCase
|
|
18
|
+
*
|
|
19
|
+
* @param str - PascalCase string
|
|
20
|
+
* @returns camelCase string
|
|
21
|
+
*/
|
|
22
|
+
export declare function toCamelCase(str: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Convert PascalCase to kebab-case
|
|
25
|
+
*
|
|
26
|
+
* @param str - PascalCase string
|
|
27
|
+
* @returns kebab-case string
|
|
28
|
+
*/
|
|
29
|
+
export declare function toKebabCase(str: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Convert string to PascalCase
|
|
32
|
+
*
|
|
33
|
+
* @param str - Any case string
|
|
34
|
+
* @returns PascalCase string
|
|
35
|
+
*/
|
|
36
|
+
export declare function toPascalCase(str: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Convert PascalCase/camelCase to Title Case with spaces
|
|
39
|
+
* e.g., "firstName" -> "First Name", "UserProfile" -> "User Profile"
|
|
40
|
+
*
|
|
41
|
+
* @param str - PascalCase or camelCase string
|
|
42
|
+
* @returns Title Case string with spaces
|
|
43
|
+
*/
|
|
44
|
+
export declare function toTitleCase(str: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Simple pluralization
|
|
47
|
+
* Note: This is a basic implementation. For production, consider using a library like 'pluralize'
|
|
48
|
+
*
|
|
49
|
+
* @param str - Singular form
|
|
50
|
+
* @returns Plural form
|
|
51
|
+
*/
|
|
52
|
+
export declare function pluralize(str: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Simple singularization (reverse of pluralize)
|
|
55
|
+
*
|
|
56
|
+
* @param str - Plural form
|
|
57
|
+
* @returns Singular form
|
|
58
|
+
*/
|
|
59
|
+
export declare function singularize(str: string): string;
|
|
60
|
+
//# sourceMappingURL=name-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-transformer.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/name-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAepF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW/C"}
|