@kosdev-code/kos-nx-plugin 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/generators.json +70 -0
- package/migrations.json +81 -0
- package/package.json +25 -0
- package/src/generators/kos-companion-model/files/types/index.d.ts.template +11 -0
- package/src/generators/kos-companion-model/generator.d.ts +5 -0
- package/src/generators/kos-companion-model/generator.d.ts.map +1 -0
- package/src/generators/kos-companion-model/generator.js +45 -0
- package/src/generators/kos-companion-model/generator.js.map +1 -0
- package/src/generators/kos-companion-model/schema.d.ts +6 -0
- package/src/generators/kos-companion-model/schema.json +36 -0
- package/src/generators/kos-component/cui/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/cui/__nameDashCase__.tsx__template__ +35 -0
- package/src/generators/kos-component/cui/index.ts__template__ +1 -0
- package/src/generators/kos-component/files/__nameDashCase__.css__template__ +2 -0
- package/src/generators/kos-component/files/__nameDashCase__.tsx__template__ +20 -0
- package/src/generators/kos-component/files/index.ts__template__ +1 -0
- package/src/generators/kos-component/generator.d.ts +5 -0
- package/src/generators/kos-component/generator.d.ts.map +1 -0
- package/src/generators/kos-component/generator.js +270 -0
- package/src/generators/kos-component/generator.js.map +1 -0
- package/src/generators/kos-component/nav/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/nav/__nameDashCase__.tsx__template__ +25 -0
- package/src/generators/kos-component/nav/index.ts__template__ +1 -0
- package/src/generators/kos-component/schema.d.ts +18 -0
- package/src/generators/kos-component/schema.json +88 -0
- package/src/generators/kos-component/setting/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/setting/__nameDashCase__.tsx__template__ +25 -0
- package/src/generators/kos-component/setting/index.ts__template__ +1 -0
- package/src/generators/kos-component/setup/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/setup/__nameDashCase__.tsx__template__ +32 -0
- package/src/generators/kos-component/setup/index.ts__template__ +1 -0
- package/src/generators/kos-component/trouble-action/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/trouble-action/__nameDashCase__.tsx__template__ +58 -0
- package/src/generators/kos-component/trouble-action/index.ts__template__ +1 -0
- package/src/generators/kos-component/utility/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/utility/__nameDashCase__.tsx__template__ +45 -0
- package/src/generators/kos-component/utility/index.ts__template__ +1 -0
- package/src/generators/kos-container-model/files/model/__nameDashCase__-model.ts.template +80 -0
- package/src/generators/kos-container-model/files/model/__nameDashCase__-registration.ts.template +113 -0
- package/src/generators/kos-container-model/files/model/index.ts.template +6 -0
- package/src/generators/kos-container-model/files/model/types/index.d.ts.template +24 -0
- package/src/generators/kos-container-model/files/services/__modelNameDashCase__-services.ts.template +28 -0
- package/src/generators/kos-container-model/files/services/index.ts.template +1 -0
- package/src/generators/kos-container-model/generator.d.ts +5 -0
- package/src/generators/kos-container-model/generator.d.ts.map +1 -0
- package/src/generators/kos-container-model/generator.js +74 -0
- package/src/generators/kos-container-model/generator.js.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-options.d.ts +4 -0
- package/src/generators/kos-container-model/lib/normalize-options.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-options.js +32 -0
- package/src/generators/kos-container-model/lib/normalize-options.js.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-value.d.ts +7 -0
- package/src/generators/kos-container-model/lib/normalize-value.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-value.js +28 -0
- package/src/generators/kos-container-model/lib/normalize-value.js.map +1 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.d.ts +6 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.js +53 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.js.map +1 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.d.ts +8 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.js +122 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.js.map +1 -0
- package/src/generators/kos-container-model/schema.d.ts +35 -0
- package/src/generators/kos-container-model/schema.json +50 -0
- package/src/generators/kos-context/files/__nameDashCase__-provider.tsx.template +40 -0
- package/src/generators/kos-context/files/index.ts.template +1 -0
- package/src/generators/kos-context/generator.d.ts +5 -0
- package/src/generators/kos-context/generator.d.ts.map +1 -0
- package/src/generators/kos-context/generator.js +56 -0
- package/src/generators/kos-context/generator.js.map +1 -0
- package/src/generators/kos-context/schema.d.ts +14 -0
- package/src/generators/kos-context/schema.json +36 -0
- package/src/generators/kos-hook/files/index.ts.template +2 -0
- package/src/generators/kos-hook/files/use-__nameDashCase__.ts.template +13 -0
- package/src/generators/kos-hook/files/with-__nameDashCase__.tsx.template +28 -0
- package/src/generators/kos-hook/generator.d.ts +5 -0
- package/src/generators/kos-hook/generator.d.ts.map +1 -0
- package/src/generators/kos-hook/generator.js +56 -0
- package/src/generators/kos-hook/generator.js.map +1 -0
- package/src/generators/kos-hook/schema.d.ts +21 -0
- package/src/generators/kos-hook/schema.json +36 -0
- package/src/generators/kos-i18n-project/files/.kos.json.template +5 -0
- package/src/generators/kos-i18n-project/files/src/assets/locales/en/__nameDashCase__.json.template +3 -0
- package/src/generators/kos-i18n-project/generator.d.ts +5 -0
- package/src/generators/kos-i18n-project/generator.d.ts.map +1 -0
- package/src/generators/kos-i18n-project/generator.js +82 -0
- package/src/generators/kos-i18n-project/generator.js.map +1 -0
- package/src/generators/kos-i18n-project/schema.d.ts +3 -0
- package/src/generators/kos-i18n-project/schema.json +18 -0
- package/src/generators/kos-init/generator.d.ts +5 -0
- package/src/generators/kos-init/generator.d.ts.map +1 -0
- package/src/generators/kos-init/generator.js +43 -0
- package/src/generators/kos-init/generator.js.map +1 -0
- package/src/generators/kos-init/schema.d.ts +5 -0
- package/src/generators/kos-init/schema.json +29 -0
- package/src/generators/kos-model/files/model/__nameDashCase__-model.ts.template +57 -0
- package/src/generators/kos-model/files/model/__nameDashCase__-registration.ts.template +110 -0
- package/src/generators/kos-model/files/model/index.ts__template__ +4 -0
- package/src/generators/kos-model/files/model/types/index.d.ts.template +7 -0
- package/src/generators/kos-model/files/services/__nameDashCase__-services.ts.template +28 -0
- package/src/generators/kos-model/files/services/index.ts.template +1 -0
- package/src/generators/kos-model/generator.d.ts +5 -0
- package/src/generators/kos-model/generator.d.ts.map +1 -0
- package/src/generators/kos-model/generator.js +115 -0
- package/src/generators/kos-model/generator.js.map +1 -0
- package/src/generators/kos-model/lib/normalize-options.d.ts +4 -0
- package/src/generators/kos-model/lib/normalize-options.d.ts.map +1 -0
- package/src/generators/kos-model/lib/normalize-options.js +35 -0
- package/src/generators/kos-model/lib/normalize-options.js.map +1 -0
- package/src/generators/kos-model/lib/normalize-value.d.ts +7 -0
- package/src/generators/kos-model/lib/normalize-value.d.ts.map +1 -0
- package/src/generators/kos-model/lib/normalize-value.js +28 -0
- package/src/generators/kos-model/lib/normalize-value.js.map +1 -0
- package/src/generators/kos-model/lib/utils/name-utils.d.ts +6 -0
- package/src/generators/kos-model/lib/utils/name-utils.d.ts.map +1 -0
- package/src/generators/kos-model/lib/utils/name-utils.js +42 -0
- package/src/generators/kos-model/lib/utils/name-utils.js.map +1 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.d.ts +8 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.d.ts.map +1 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.js +126 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.js.map +1 -0
- package/src/generators/kos-model/schema.d.ts +41 -0
- package/src/generators/kos-model/schema.json +91 -0
- package/src/generators/kos-plugin-project/files/.env.template +7 -0
- package/src/generators/kos-plugin-project/files/.kos.json.template +40 -0
- package/src/generators/kos-plugin-project/files/.storybook/main.ts.template +45 -0
- package/src/generators/kos-plugin-project/files/.storybook/preview.tsx.template +82 -0
- package/src/generators/kos-plugin-project/files/.storybook/registration.ts.template +40 -0
- package/src/generators/kos-plugin-project/files/index.html.template +15 -0
- package/src/generators/kos-plugin-project/files/module-federation.config.ts.template +1 -0
- package/src/generators/kos-plugin-project/files/src/app/app.css.template +2 -0
- package/src/generators/kos-plugin-project/files/src/app/app.tsx.template +54 -0
- package/src/generators/kos-plugin-project/files/src/app/components/main-view/index.ts.template +1 -0
- package/src/generators/kos-plugin-project/files/src/app/components/main-view/main-view.tsx.template +14 -0
- package/src/generators/kos-plugin-project/files/src/app/tools/experience-resolver.ts.template +10 -0
- package/src/generators/kos-plugin-project/files/src/app/tools/index.ts.template +2 -0
- package/src/generators/kos-plugin-project/files/src/app/tools/kOSJSON.ts.template +1 -0
- package/src/generators/kos-plugin-project/files/src/assets/kos-logo.svg.template +4 -0
- package/src/generators/kos-plugin-project/files/src/assets/locales/en/__nameDashCase__.json.template +3 -0
- package/src/generators/kos-plugin-project/files/src/registration.ts.template +13 -0
- package/src/generators/kos-plugin-project/files/webpack.config.prod.ts.template +24 -0
- package/src/generators/kos-plugin-project/files/webpack.config.ts.template +7 -0
- package/src/generators/kos-plugin-project/generator.d.ts +5 -0
- package/src/generators/kos-plugin-project/generator.d.ts.map +1 -0
- package/src/generators/kos-plugin-project/generator.js +108 -0
- package/src/generators/kos-plugin-project/generator.js.map +1 -0
- package/src/generators/kos-plugin-project/schema.d.ts +5 -0
- package/src/generators/kos-plugin-project/schema.json +33 -0
- package/src/generators/kos-splash-project/files/project/project.json.template +17 -0
- package/src/generators/kos-splash-project/files/project/src/start.html.template +13 -0
- package/src/generators/kos-splash-project/files/tools/splashtool.mjs.template +247 -0
- package/src/generators/kos-splash-project/generator.d.ts +5 -0
- package/src/generators/kos-splash-project/generator.d.ts.map +1 -0
- package/src/generators/kos-splash-project/generator.js +17 -0
- package/src/generators/kos-splash-project/generator.js.map +1 -0
- package/src/generators/kos-splash-project/schema.d.ts +3 -0
- package/src/generators/kos-splash-project/schema.json +18 -0
- package/src/generators/kos-theme-project/files/.kos.json.template +5 -0
- package/src/generators/kos-theme-project/files/theme/component.css.template +2 -0
- package/src/generators/kos-theme-project/files/theme/generic.css.template +2 -0
- package/src/generators/kos-theme-project/files/theme/semantic.css.template +2 -0
- package/src/generators/kos-theme-project/files/theme/theme-overlay.css.template +7 -0
- package/src/generators/kos-theme-project/files/vite.config.ts.template +48 -0
- package/src/generators/kos-theme-project/generator.d.ts +5 -0
- package/src/generators/kos-theme-project/generator.d.ts.map +1 -0
- package/src/generators/kos-theme-project/generator.js +54 -0
- package/src/generators/kos-theme-project/generator.js.map +1 -0
- package/src/generators/kos-theme-project/schema.d.ts +3 -0
- package/src/generators/kos-theme-project/schema.json +18 -0
- package/src/generators/kos-ui-project/files/.env.template +7 -0
- package/src/generators/kos-ui-project/files/.kos.json.template +5 -0
- package/src/generators/kos-ui-project/files/bootstrap.tsx.template +13 -0
- package/src/generators/kos-ui-project/files/main.ts.template +18 -0
- package/src/generators/kos-ui-project/files/src/app/app.css.template +38 -0
- package/src/generators/kos-ui-project/files/src/app/app.tsx.template +45 -0
- package/src/generators/kos-ui-project/files/src/app/components/main-view/index.ts.template +1 -0
- package/src/generators/kos-ui-project/files/src/app/components/main-view/main-view.tsx.template +31 -0
- package/src/generators/kos-ui-project/files/src/app/registration.ts.template +13 -0
- package/src/generators/kos-ui-project/files/src/assets/kos-logo.svg.template +4 -0
- package/src/generators/kos-ui-project/files/src/assets/locales/en/__nameDashCase__.json.template +4 -0
- package/src/generators/kos-ui-project/files/src/bootstrap.tsx.template +13 -0
- package/src/generators/kos-ui-project/files/src/index.html.template +14 -0
- package/src/generators/kos-ui-project/files/webpack.config.ts.template +45 -0
- package/src/generators/kos-ui-project/generator.d.ts +5 -0
- package/src/generators/kos-ui-project/generator.d.ts.map +1 -0
- package/src/generators/kos-ui-project/generator.js +135 -0
- package/src/generators/kos-ui-project/generator.js.map +1 -0
- package/src/generators/kos-ui-project/internal/vite.config.ts.template +49 -0
- package/src/generators/kos-ui-project/schema.d.ts +7 -0
- package/src/generators/kos-ui-project/schema.json +34 -0
- package/src/generators/preset/api/utils/service.ts.template +15 -0
- package/src/generators/preset/files/.env.template +7 -0
- package/src/generators/preset/files/.kos.json.template +5 -0
- package/src/generators/preset/files/src/app/app.css.template +38 -0
- package/src/generators/preset/files/src/app/app.tsx.template +38 -0
- package/src/generators/preset/files/src/app/components/main-view/index.ts.template +1 -0
- package/src/generators/preset/files/src/app/components/main-view/main-view.tsx.template +32 -0
- package/src/generators/preset/files/src/app/registration.ts.template +20 -0
- package/src/generators/preset/files/src/assets/kos-logo.svg.template +4 -0
- package/src/generators/preset/files/src/assets/locales/en/__nameDashCase__.json.template +4 -0
- package/src/generators/preset/files/src/bootstrap.tsx.template +13 -0
- package/src/generators/preset/files/src/index.html.template +15 -0
- package/src/generators/preset/files/src/main.ts.template +6 -0
- package/src/generators/preset/files/webpack.config.ts.template +45 -0
- package/src/generators/preset/generator.d.ts +5 -0
- package/src/generators/preset/generator.d.ts.map +1 -0
- package/src/generators/preset/generator.js +252 -0
- package/src/generators/preset/generator.js.map +1 -0
- package/src/generators/preset/local/.env.local.template +5 -0
- package/src/generators/preset/schema.d.ts +8 -0
- package/src/generators/preset/schema.json +14 -0
- package/src/generators/preset/tools/tools/scripts/archiver.js.template +79 -0
- package/src/generators/preset/tools/tools/scripts/descriptor.mjs.template +114 -0
- package/src/generators/preset/tools/tools/scripts/generate-api-types.mjs.template +25 -0
- package/src/generators/preset/tools/tools/scripts/kabtool.mjs.template +87 -0
- package/src/generators/preset/tools/tools/scripts/update.mjs.template +67 -0
- package/src/generators/preset/tools/tools/tsconfig.tools.json.template +12 -0
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -0
- package/src/migrations/add-overrides/add-overrides.d.ts +3 -0
- package/src/migrations/add-overrides/add-overrides.d.ts.map +1 -0
- package/src/migrations/add-overrides/add-overrides.js +85 -0
- package/src/migrations/add-overrides/add-overrides.js.map +1 -0
- package/src/migrations/add-overrides/files/.env.local__template__ +5 -0
- package/src/migrations/add-overrides/files/tools/scripts/archiver.js__template__ +79 -0
- package/src/migrations/add-overrides/files/tools/scripts/kabtool.mjs__template__ +85 -0
- package/src/migrations/add-overrides/projectFiles/.kos.json__template__ +5 -0
- package/src/migrations/add-update-tool/files/tools/scripts/update.mjs.template +67 -0
- package/src/migrations/add-update-tool/migrate.d.ts +3 -0
- package/src/migrations/add-update-tool/migrate.d.ts.map +1 -0
- package/src/migrations/add-update-tool/migrate.js +24 -0
- package/src/migrations/add-update-tool/migrate.js.map +1 -0
- package/src/migrations/cms-sdk/cms-sdk.d.ts +3 -0
- package/src/migrations/cms-sdk/cms-sdk.d.ts.map +1 -0
- package/src/migrations/cms-sdk/cms-sdk.js +22 -0
- package/src/migrations/cms-sdk/cms-sdk.js.map +1 -0
- package/src/migrations/consolidate-sdk/api/utils/service.ts.template +15 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.d.ts +3 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.d.ts.map +1 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.js +100 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.js.map +1 -0
- package/src/migrations/consolidate-sdk/files/tools/scripts/generate-api-types.mjs.template +25 -0
- package/src/migrations/default-projects/default-projects.d.ts +3 -0
- package/src/migrations/default-projects/default-projects.d.ts.map +1 -0
- package/src/migrations/default-projects/default-projects.js +45 -0
- package/src/migrations/default-projects/default-projects.js.map +1 -0
- package/src/migrations/default-projects/files/index.ts__template__ +2 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.d.ts +3 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.d.ts.map +1 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.js +18 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.js.map +1 -0
- package/src/migrations/kabtool-env/migrate.d.ts +3 -0
- package/src/migrations/kabtool-env/migrate.d.ts.map +1 -0
- package/src/migrations/kabtool-env/migrate.js +11 -0
- package/src/migrations/kabtool-env/migrate.js.map +1 -0
- package/src/migrations/migrate-extensions/migrate-extensions.d.ts +3 -0
- package/src/migrations/migrate-extensions/migrate-extensions.d.ts.map +1 -0
- package/src/migrations/migrate-extensions/migrate-extensions.js +77 -0
- package/src/migrations/migrate-extensions/migrate-extensions.js.map +1 -0
- package/src/migrations/translation-format/translation-format.d.ts +3 -0
- package/src/migrations/translation-format/translation-format.d.ts.map +1 -0
- package/src/migrations/translation-format/translation-format.js +56 -0
- package/src/migrations/translation-format/translation-format.js.map +1 -0
- package/src/migrations/translations/add-descriptor.d.ts +3 -0
- package/src/migrations/translations/add-descriptor.d.ts.map +1 -0
- package/src/migrations/translations/add-descriptor.js +48 -0
- package/src/migrations/translations/add-descriptor.js.map +1 -0
- package/src/migrations/translations/files/tools/scripts/descriptor.mjs.template +114 -0
- package/src/migrations/update-kabtool/files/tools/scripts/kabtool.mjs.template +87 -0
- package/src/migrations/update-kabtool/update-kabtool.d.ts +3 -0
- package/src/migrations/update-kabtool/update-kabtool.d.ts.map +1 -0
- package/src/migrations/update-kabtool/update-kabtool.js +11 -0
- package/src/migrations/update-kabtool/update-kabtool.js.map +1 -0
- package/src/migrations/update-sdk/update-sdk.d.ts +3 -0
- package/src/migrations/update-sdk/update-sdk.d.ts.map +1 -0
- package/src/migrations/update-sdk/update-sdk.js +17 -0
- package/src/migrations/update-sdk/update-sdk.js.map +1 -0
- package/src/utils/java-home.d.ts +2 -0
- package/src/utils/java-home.d.ts.map +1 -0
- package/src/utils/java-home.js +44 -0
- package/src/utils/java-home.js.map +1 -0
- package/src/utils/logger.d.ts +9 -0
- package/src/utils/logger.d.ts.map +1 -0
- package/src/utils/logger.js +46 -0
- package/src/utils/logger.js.map +1 -0
- package/src/utils/name-utils.d.ts +6 -0
- package/src/utils/name-utils.d.ts.map +1 -0
- package/src/utils/name-utils.js +60 -0
- package/src/utils/name-utils.js.map +1 -0
- package/src/utils/normalize-value.d.ts +7 -0
- package/src/utils/normalize-value.d.ts.map +1 -0
- package/src/utils/normalize-value.js +33 -0
- package/src/utils/normalize-value.js.map +1 -0
- package/src/utils/project-utils.d.ts +36 -0
- package/src/utils/project-utils.d.ts.map +1 -0
- package/src/utils/project-utils.js +102 -0
- package/src/utils/project-utils.js.map +1 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateModelIndex = exports.updateModelRegistration = exports.addKosModelRegistration = exports.updateRegistrationImport = exports.visitAllFiles = void 0;
|
|
4
|
+
const ts = require("typescript");
|
|
5
|
+
const logger_1 = require("../../../../utils/logger");
|
|
6
|
+
function visitAllFiles(tree, path, callback) {
|
|
7
|
+
tree.children(path).forEach((fileName) => {
|
|
8
|
+
const filePath = `${path}/${fileName}`;
|
|
9
|
+
if (!tree.isFile(filePath)) {
|
|
10
|
+
visitAllFiles(tree, filePath, callback);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
callback(filePath);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
exports.visitAllFiles = visitAllFiles;
|
|
18
|
+
function findByName(node, name, parent) {
|
|
19
|
+
let result = undefined;
|
|
20
|
+
if (ts.isIdentifier(node) && node.text === name) {
|
|
21
|
+
result = parent;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
node.forEachChild((child) => {
|
|
25
|
+
if (!result) {
|
|
26
|
+
result = findByName(child, name, node);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
function findByType(node, type) {
|
|
33
|
+
let result = undefined;
|
|
34
|
+
if (node.kind === type) {
|
|
35
|
+
result = node;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
node.forEachChild((child) => {
|
|
39
|
+
if (!result) {
|
|
40
|
+
result = findByType(child, type);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
const createImportStatement = (modelName, modelImportPath) => {
|
|
47
|
+
const importStatement = ts.factory.createImportDeclaration(undefined, ts.factory.createImportClause(false, undefined, ts.factory.createNamedImports([
|
|
48
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(modelName)),
|
|
49
|
+
])), ts.factory.createStringLiteral(modelImportPath));
|
|
50
|
+
return importStatement;
|
|
51
|
+
};
|
|
52
|
+
const updateRegistrationImport = (modelName, modelImportPath) => (context) => (rootNode) => {
|
|
53
|
+
function visit(node) {
|
|
54
|
+
const { factory } = context;
|
|
55
|
+
node = ts.visitEachChild(node, visit, context);
|
|
56
|
+
if (node === rootNode) {
|
|
57
|
+
const updated = factory.updateSourceFile(node, [
|
|
58
|
+
createImportStatement(modelName, modelImportPath),
|
|
59
|
+
...node.statements,
|
|
60
|
+
]);
|
|
61
|
+
return updated;
|
|
62
|
+
}
|
|
63
|
+
return node;
|
|
64
|
+
}
|
|
65
|
+
return ts.visitNode(rootNode, visit);
|
|
66
|
+
};
|
|
67
|
+
exports.updateRegistrationImport = updateRegistrationImport;
|
|
68
|
+
const addKosModelRegistration = (modelName) => (context) => (rootNode) => {
|
|
69
|
+
const spreadAssignment = context.factory.createSpreadAssignment(context.factory.createPropertyAccessExpression(context.factory.createIdentifier(modelName), context.factory.createIdentifier("registration")));
|
|
70
|
+
const coreModelsVariable = findByName(rootNode, "kosModels");
|
|
71
|
+
if (!coreModelsVariable) {
|
|
72
|
+
logger_1.logger.info("coreModelsVariable not found");
|
|
73
|
+
return rootNode;
|
|
74
|
+
}
|
|
75
|
+
const coreModelsObjectLiteral = findByType(coreModelsVariable, ts.SyntaxKind.ObjectLiteralExpression);
|
|
76
|
+
function visit(node) {
|
|
77
|
+
const { factory } = context;
|
|
78
|
+
node = ts.visitEachChild(node, visit, context);
|
|
79
|
+
if (node === coreModelsObjectLiteral) {
|
|
80
|
+
const updated = factory.updateObjectLiteralExpression(coreModelsObjectLiteral, [...coreModelsObjectLiteral.properties, spreadAssignment]);
|
|
81
|
+
return updated;
|
|
82
|
+
}
|
|
83
|
+
return node;
|
|
84
|
+
}
|
|
85
|
+
return ts.visitNode(rootNode, visit);
|
|
86
|
+
};
|
|
87
|
+
exports.addKosModelRegistration = addKosModelRegistration;
|
|
88
|
+
function updateModelRegistration(registrationPath, modelName, modelImportPath, tree) {
|
|
89
|
+
logger_1.logger.log(`Updating registration: ${registrationPath}`);
|
|
90
|
+
const program = ts.createProgram([registrationPath], {});
|
|
91
|
+
const sourceFile = program.getSourceFile(registrationPath);
|
|
92
|
+
const result = ts.transform(sourceFile, [
|
|
93
|
+
(0, exports.updateRegistrationImport)(modelName, modelImportPath),
|
|
94
|
+
(0, exports.addKosModelRegistration)(modelName, modelImportPath),
|
|
95
|
+
]);
|
|
96
|
+
const tsPrinter = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
|
97
|
+
const newContents = tsPrinter.printFile(result.transformed[0]); // Prints the
|
|
98
|
+
tree.write(registrationPath, newContents);
|
|
99
|
+
}
|
|
100
|
+
exports.updateModelRegistration = updateModelRegistration;
|
|
101
|
+
function updateModelIndex(modelIndex, modelPath, tree) {
|
|
102
|
+
if (modelIndex) {
|
|
103
|
+
logger_1.logger.info(`Updating ${modelIndex}`);
|
|
104
|
+
logger_1.logger.info(`Adding export for ${modelPath}`);
|
|
105
|
+
const program = ts.createProgram([modelIndex], {});
|
|
106
|
+
const sourceFile = program.getSourceFile(modelIndex);
|
|
107
|
+
const exportDeclaration = ts.factory.createExportDeclaration(
|
|
108
|
+
/* decorators */ undefined,
|
|
109
|
+
/* modifiers */ false, undefined, ts.factory.createStringLiteral(`./${modelPath}`) // Module specifier
|
|
110
|
+
);
|
|
111
|
+
// Update the source file with the export declaration
|
|
112
|
+
const updatedSourceFile = ts.factory.updateSourceFile(sourceFile, [
|
|
113
|
+
...sourceFile.statements,
|
|
114
|
+
exportDeclaration,
|
|
115
|
+
]);
|
|
116
|
+
const tsPrinter = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
|
117
|
+
const newContents = tsPrinter.printFile(updatedSourceFile); // Prints the
|
|
118
|
+
tree.write(modelIndex, newContents);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.updateModelIndex = updateModelIndex;
|
|
122
|
+
//# sourceMappingURL=ts-visitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-visitor.js","sourceRoot":"","sources":["../../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-container-model/lib/utils/ts-visitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface KosBaseGeneratorSchema {
|
|
2
|
+
name: string;
|
|
3
|
+
modelName: string;
|
|
4
|
+
modelProject: string;
|
|
5
|
+
registrationProject?: string;
|
|
6
|
+
skipRegistration?: boolean;
|
|
7
|
+
modelDirectory: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface KosModelGeneratorSchema extends KosBaseGeneratorSchema {
|
|
11
|
+
singleton?: boolean;
|
|
12
|
+
dataServices?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface NormalizedKosBaseGeneratorSchema<
|
|
16
|
+
T extends KosBaseGeneratorSchema
|
|
17
|
+
> extends T {
|
|
18
|
+
nameDashCase: string;
|
|
19
|
+
nameProperCase: string;
|
|
20
|
+
nameCamelCase: string;
|
|
21
|
+
namePascalCase: string;
|
|
22
|
+
nameConstantCase: string;
|
|
23
|
+
nameLowerCase: string;
|
|
24
|
+
modelNameDashCase: string;
|
|
25
|
+
modelNameProperCase: string;
|
|
26
|
+
modelNameCamelCase: string;
|
|
27
|
+
modelNamePascalCase: string;
|
|
28
|
+
modelNameConstantCase: string;
|
|
29
|
+
modelNameLowerCase: string;
|
|
30
|
+
registrationProject: string;
|
|
31
|
+
importPath: string;
|
|
32
|
+
template: string;
|
|
33
|
+
}
|
|
34
|
+
export type NormalizedKosModelGeneratorSchema =
|
|
35
|
+
NormalizedKosBaseGeneratorSchema<KosModelGeneratorSchema>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "KosContainerModel",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "container model name",
|
|
10
|
+
"x-prompt": "What name would you like to use?"
|
|
11
|
+
},
|
|
12
|
+
"modelName": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "model name",
|
|
15
|
+
"x-prompt": "What model is managed by the container?"
|
|
16
|
+
},
|
|
17
|
+
"modelProject": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "The project where the model will be located.",
|
|
20
|
+
"x-prompt": "Which project will this model be located in?",
|
|
21
|
+
"x-dropdown": "projects"
|
|
22
|
+
},
|
|
23
|
+
"registrationProject": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "The project where the model will be registered. Defaults to the appProject if not specified",
|
|
26
|
+
"x-prompt": "Which project will this model put UI components?",
|
|
27
|
+
"x-dropdown": "projects"
|
|
28
|
+
},
|
|
29
|
+
"modelDirectory": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "the directory withing the model project to create the model"
|
|
32
|
+
},
|
|
33
|
+
"singleton": {
|
|
34
|
+
"type": "boolean",
|
|
35
|
+
"default": false,
|
|
36
|
+
"description": "Is there a need for more than one instance of this model type"
|
|
37
|
+
},
|
|
38
|
+
"dataServices": {
|
|
39
|
+
"type": "boolean",
|
|
40
|
+
"default": false,
|
|
41
|
+
"description": "Generate data services for this model?"
|
|
42
|
+
},
|
|
43
|
+
"skipRegistration": {
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"default": false,
|
|
46
|
+
"description": "skip automated registration of the model?"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"required": []
|
|
50
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PropsWithChildren, createContext, useContext, useMemo } from "react";
|
|
2
|
+
import { use<%= namePascalCase %> } from '../../hooks/<%= nameDashCase %>/use-<%= nameDashCase %>';
|
|
3
|
+
import { <%= namePascalCase %>Model } from "<%= importPath %>";
|
|
4
|
+
|
|
5
|
+
interface <%= namePascalCase %>Type {
|
|
6
|
+
model?: <%= namePascalCase %>Model;
|
|
7
|
+
}
|
|
8
|
+
export const <%= namePascalCase %> = createContext<
|
|
9
|
+
<%= namePascalCase %>Type | undefined
|
|
10
|
+
>(undefined);
|
|
11
|
+
|
|
12
|
+
interface <%= namePascalCase %>ProviderProps {
|
|
13
|
+
<% if (!singleton) { %>id: string;<% } %>
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const <%= namePascalCase %>Provider: React.FunctionComponent<
|
|
17
|
+
PropsWithChildren<<%= namePascalCase %>ProviderProps>
|
|
18
|
+
> = ({ children<% if (!singleton) { %>, id<% } %> }) => {
|
|
19
|
+
const { model, ready } = use<%= namePascalCase %>(<% if (!singleton) { %>id<% } %>);
|
|
20
|
+
const value: <%= namePascalCase %>Type = useMemo(() => {
|
|
21
|
+
if (ready && model) {
|
|
22
|
+
return { model };
|
|
23
|
+
}
|
|
24
|
+
return {};
|
|
25
|
+
}, [ready, model]);
|
|
26
|
+
return (
|
|
27
|
+
<<%= namePascalCase %>.Provider value={value}>
|
|
28
|
+
{children}
|
|
29
|
+
</<%= namePascalCase %>.Provider>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
export const use<%= namePascalCase %>Context = () => {
|
|
33
|
+
const context = useContext(<%= namePascalCase %>);
|
|
34
|
+
if (!context) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
"use<%= namePascalCase %>Context must be used within a <%= namePascalCase %>Provider"
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return context;
|
|
40
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./<%= nameDashCase %>-provider";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tree } from "@nx/devkit";
|
|
2
|
+
import { KosContextGeneratorSchema } from "./schema";
|
|
3
|
+
export declare function kosContextGenerator(tree: Tree, options: KosContextGeneratorSchema): Promise<void>;
|
|
4
|
+
export default kosContextGenerator;
|
|
5
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-context/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EACL,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAQrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,iBA6EnC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kosContextGenerator = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const normalize_options_1 = require("../kos-model/lib/normalize-options");
|
|
7
|
+
const project_utils_1 = require("../../utils/project-utils");
|
|
8
|
+
const logger_1 = require("../../utils/logger");
|
|
9
|
+
async function kosContextGenerator(tree, options) {
|
|
10
|
+
if (!options.appProject) {
|
|
11
|
+
throw new Error("No app project specified");
|
|
12
|
+
}
|
|
13
|
+
logger_1.logger.info(`current directory name: ${(0, project_utils_1.getCurrentDirectoryName)(process.cwd())}`);
|
|
14
|
+
logger_1.logger.info(`current working directory: ${process.cwd()}`);
|
|
15
|
+
const currentProject = await (0, project_utils_1.getProject)(tree, process.cwd());
|
|
16
|
+
const modelProjectName = options.modelProject || currentProject?.name;
|
|
17
|
+
if (!modelProjectName) {
|
|
18
|
+
throw new Error("No model project found. Please specify a model project with --modelProject or run this command in a directory with a model project.");
|
|
19
|
+
}
|
|
20
|
+
const modelName = options.name || (0, project_utils_1.getCurrentDirectoryName)(process.cwd());
|
|
21
|
+
if (!modelName) {
|
|
22
|
+
throw new Error("No model name found. Please specify a model name with --name or run this command in a directory with the model name as the last part of the path.");
|
|
23
|
+
}
|
|
24
|
+
const baseConfig = {
|
|
25
|
+
tree,
|
|
26
|
+
project: modelProjectName,
|
|
27
|
+
modelName,
|
|
28
|
+
};
|
|
29
|
+
const singletonProp = (0, project_utils_1.getKosModelConfigProp)({
|
|
30
|
+
...baseConfig,
|
|
31
|
+
prop: "singleton",
|
|
32
|
+
});
|
|
33
|
+
options.singleton = !!singletonProp;
|
|
34
|
+
options.name = modelName;
|
|
35
|
+
options.modelProject = modelProjectName;
|
|
36
|
+
const normalized = (0, normalize_options_1.normalizeOptions)(tree, options);
|
|
37
|
+
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, normalized.appProject);
|
|
38
|
+
const projectRoot = projectConfiguration.sourceRoot;
|
|
39
|
+
if (projectRoot) {
|
|
40
|
+
const dir = projectConfiguration.projectType === "application" || options.internal
|
|
41
|
+
? options.appDirectory
|
|
42
|
+
: options.appDirectory ?? "lib";
|
|
43
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, "files"), path.join(projectRoot, dir, "contexts", normalized.nameDashCase), normalized);
|
|
44
|
+
const buff = tree.read(path.join(projectRoot, dir, "contexts", "index.ts"));
|
|
45
|
+
const context = buff?.toString("utf-8") ?? "";
|
|
46
|
+
const lines = context.split("\n");
|
|
47
|
+
if (lines.findIndex((l) => l.includes(`export * from './${normalized.nameDashCase}'`)) === -1) {
|
|
48
|
+
lines.push(`export * from './${normalized.nameDashCase}'`);
|
|
49
|
+
tree.write(path.join(projectRoot, dir, "contexts", "index.ts"), lines.join("\n"));
|
|
50
|
+
}
|
|
51
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.kosContextGenerator = kosContextGenerator;
|
|
55
|
+
exports.default = kosContextGenerator;
|
|
56
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-context/generator.ts"],"names":[],"mappings":";;;AAAA,uCAKoB;AACpB,6BAA6B;AAC7B,0EAAsE;AAEtE,6DAImC;AACnC,+CAA4C;AAErC,KAAK,UAAU,mBAAmB,CACvC,IAAU,EACV,OAAkC;IAElC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,eAAM,CAAC,IAAI,CACT,2BAA2B,IAAA,uCAAuB,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CACpE,CAAC;IACF,eAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,MAAM,IAAA,0BAAU,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,IAAI,cAAc,EAAE,IAAI,CAAC;IACtE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,IAAA,uCAAuB,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,mJAAmJ,CACpJ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,IAAI;QACJ,OAAO,EAAE,gBAAgB;QACzB,SAAS;KACV,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,qCAAqB,EAAC;QAC1C,GAAG,UAAU;QACb,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC;IAEpC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAC;IACxC,MAAM,UAAU,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,UAAU,CAAC,UAAU,CACtB,CAAC;IAEF,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC;IAEpD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,GACP,oBAAoB,CAAC,WAAW,KAAK,aAAa,IAAI,OAAO,CAAC,QAAQ;YACpE,CAAC,CAAC,OAAO,CAAC,YAAY;YACtB,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QACpC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAEhE,UAAU,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IACE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,UAAU,CAAC,YAAY,GAAG,CAAC,CAC3D,KAAK,CAAC,CAAC,EACR,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,oBAAoB,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AA/ED,kDA+EC;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KosBaseGeneratorSchema,
|
|
3
|
+
NormalizedKosBaseGeneratorSchema,
|
|
4
|
+
} from "../kos-model/schema";
|
|
5
|
+
|
|
6
|
+
export type KosContextGeneratorSchema = KosBaseGeneratorSchema & {
|
|
7
|
+
singleton?: boolean;
|
|
8
|
+
internal?: boolean;
|
|
9
|
+
appProject: string;
|
|
10
|
+
appDirectory: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type NormalizedKosModelGeneratorSchema =
|
|
14
|
+
NormalizedKosBaseGeneratorSchema<KosModelGeneratorSchema>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "KosContext",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"appProject": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The project where the ui components will be located.",
|
|
10
|
+
"x-prompt": "Which project will this model put UI components?",
|
|
11
|
+
"x-dropdown": "projects"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "The model to create a hook for. If run from a model directory, this will default to that model.",
|
|
16
|
+
"x-prompt": "What name would you like to use?"
|
|
17
|
+
},
|
|
18
|
+
"modelProject": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The project where the model will be located.",
|
|
21
|
+
"x-prompt": "Which project will this model be located in?. If run from a model directory, this will default to that model project.",
|
|
22
|
+
"x-dropdown": "projects"
|
|
23
|
+
},
|
|
24
|
+
"appDirectory": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "The directory where the ui components will be located.",
|
|
27
|
+
"default": ""
|
|
28
|
+
},
|
|
29
|
+
"modelDirectory": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "the directory withing the model project to create the model",
|
|
32
|
+
"default": ""
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": ["appProject"]
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useKosModel } from "@kosdev-code/kos-ui-sdk";
|
|
2
|
+
import { <%= nameProperCase %>, <%= nameProperCase %>Model } from "<%= importPath %>";
|
|
3
|
+
|
|
4
|
+
export const use<%= nameProperCase %> = (<% if (!singleton) { %>id: string<% } %>) => {
|
|
5
|
+
const modelId = <% if (singleton) { %><%= nameProperCase %>.type<% } else {%>id<% } %>;
|
|
6
|
+
const result = useKosModel<<%= nameProperCase %>Model>({
|
|
7
|
+
modelId,
|
|
8
|
+
modelType: <%= nameProperCase %>.type,
|
|
9
|
+
options: {},
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { <%= nameProperCase %>Model } from "<%= importPath %>";
|
|
2
|
+
import { use<%= nameProperCase %> } from "./use-<%= nameDashCase %>";
|
|
3
|
+
|
|
4
|
+
interface <%= nameProperCase %>Props {
|
|
5
|
+
<%= nameCamelCase %>: <%= nameProperCase %>Model;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
<% if (!singleton) { %>
|
|
9
|
+
interface Identifiable {
|
|
10
|
+
id: string;
|
|
11
|
+
}
|
|
12
|
+
<% } %>
|
|
13
|
+
|
|
14
|
+
type HoC<%= nameProperCase %>Props = <%= nameProperCase %>Props<% if (!singleton) { %> & Identifiable<% } %>;
|
|
15
|
+
// react HOC to provide a <%= nameProperCase %> to a component
|
|
16
|
+
export function with<%= nameProperCase %><T extends HoC<%= nameProperCase %>Props = HoC<%= nameProperCase %>Props>(
|
|
17
|
+
WrappedComponent: React.ComponentType<T>
|
|
18
|
+
) {
|
|
19
|
+
return (props: Omit<T, keyof <%= nameProperCase %>Props>) => {
|
|
20
|
+
const { model, status, KosModelLoader } = use<%= nameProperCase %>(<% if (!singleton) { %>props.id<% } %>);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<KosModelLoader {...status}>
|
|
24
|
+
<WrappedComponent {...(props as T)} <%= nameCamelCase %>={model} />
|
|
25
|
+
</KosModelLoader>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-hook/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EACL,MAAM,YAAY,CAAC;AAUpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,iBA4FhC;AACD,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kosHookGenerator = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const logger_1 = require("../../utils/logger");
|
|
7
|
+
const project_utils_1 = require("../../utils/project-utils");
|
|
8
|
+
const normalize_options_1 = require("../kos-model/lib/normalize-options");
|
|
9
|
+
async function kosHookGenerator(tree, options) {
|
|
10
|
+
if (!options.appProject) {
|
|
11
|
+
throw new Error("No app project specified");
|
|
12
|
+
}
|
|
13
|
+
logger_1.logger.info((0, project_utils_1.getCurrentDirectoryName)(process.cwd()) || "");
|
|
14
|
+
logger_1.logger.info(`generator exectued from ${process.cwd()}`);
|
|
15
|
+
const currentProject = await (0, project_utils_1.getProject)(tree, process.cwd());
|
|
16
|
+
const modelProjectName = options.modelProject || currentProject?.name;
|
|
17
|
+
if (!modelProjectName) {
|
|
18
|
+
throw new Error("No model project found. Please specify a model project with --modelProject or run this command in a directory with a model project.");
|
|
19
|
+
}
|
|
20
|
+
const modelName = options.name || (0, project_utils_1.getCurrentDirectoryName)(process.cwd());
|
|
21
|
+
if (!modelName) {
|
|
22
|
+
throw new Error("No model name found. Please specify a model name with --name or run this command in a directory with the model name as the last part of the path.");
|
|
23
|
+
}
|
|
24
|
+
const kosModelConfig = (0, project_utils_1.getKosModelConfiguration)(tree, modelProjectName, modelName);
|
|
25
|
+
logger_1.logger.info(`kosModelConfig ${JSON.stringify(kosModelConfig)}`);
|
|
26
|
+
if (kosModelConfig) {
|
|
27
|
+
const configuredSingleton = !!kosModelConfig.singleton;
|
|
28
|
+
logger_1.logger.info(`configuredSingleton ${configuredSingleton}`);
|
|
29
|
+
options.singleton = configuredSingleton;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
options.singleton = false;
|
|
33
|
+
}
|
|
34
|
+
options.name = modelName;
|
|
35
|
+
options.modelProject = modelProjectName;
|
|
36
|
+
const normalized = (0, normalize_options_1.normalizeOptions)(tree, options);
|
|
37
|
+
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, normalized.appProject);
|
|
38
|
+
const kosConfig = (0, project_utils_1.getKosProjectConfiguration)(tree, projectConfiguration.name);
|
|
39
|
+
const componentLocation = kosConfig?.generator?.defaults?.components?.folder || "";
|
|
40
|
+
options.appDirectory = options.appDirectory || componentLocation;
|
|
41
|
+
const projectRoot = projectConfiguration.sourceRoot;
|
|
42
|
+
if (projectRoot) {
|
|
43
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, "files"), path.join(projectRoot, options.appDirectory, "hooks", normalized.nameDashCase), normalized);
|
|
44
|
+
const buff = tree.read(path.join(projectRoot, options.appDirectory, "hooks", "index.ts"));
|
|
45
|
+
const context = buff?.toString("utf-8") ?? "";
|
|
46
|
+
const lines = context.split("\n");
|
|
47
|
+
if (lines.findIndex((l) => l.includes(`export * from './${normalized.nameDashCase}'`)) === -1) {
|
|
48
|
+
lines.push(`export * from './${normalized.nameDashCase}'`);
|
|
49
|
+
tree.write(path.join(projectRoot, options.appDirectory, "hooks", "index.ts"), lines.join("\n"));
|
|
50
|
+
}
|
|
51
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.kosHookGenerator = kosHookGenerator;
|
|
55
|
+
exports.default = kosHookGenerator;
|
|
56
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-hook/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface KosHookGeneratorSchema {
|
|
2
|
+
name: string;
|
|
3
|
+
modelProject: string;
|
|
4
|
+
appProject: string;
|
|
5
|
+
modelDirectory: string;
|
|
6
|
+
appDirectory: string;
|
|
7
|
+
singleton?: boolean;
|
|
8
|
+
internal?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface NormalizedKosHookGeneratorSchema
|
|
12
|
+
extends KosHookGeneratorSchema {
|
|
13
|
+
nameDashCase: string;
|
|
14
|
+
nameProperCase: string;
|
|
15
|
+
nameCamelCase: string;
|
|
16
|
+
namePascalCase: string;
|
|
17
|
+
nameConstantCase: string;
|
|
18
|
+
nameLowerCase: string;
|
|
19
|
+
registrationProject: string;
|
|
20
|
+
template: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "KosHook",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"appProject": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The project where the ui components will be located.",
|
|
10
|
+
"x-prompt": "Which project will this model put UI components?",
|
|
11
|
+
"x-dropdown": "projects"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "The model to create a hook for. If run from a model directory, this will default to that model.",
|
|
16
|
+
"x-prompt": "What name would you like to use?"
|
|
17
|
+
},
|
|
18
|
+
"modelProject": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The project where the model will be located.",
|
|
21
|
+
"x-prompt": "Which project will this model be located in?",
|
|
22
|
+
"x-dropdown": "projects"
|
|
23
|
+
},
|
|
24
|
+
"appDirectory": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "The directory where the ui components will be located.",
|
|
27
|
+
"default": ""
|
|
28
|
+
},
|
|
29
|
+
"modelDirectory": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "the directory withing the model project to create the model",
|
|
32
|
+
"default": ""
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": ["appProject"]
|
|
36
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tree } from "@nx/devkit";
|
|
2
|
+
import { KosLocalizationProjectGeneratorSchema } from "./schema";
|
|
3
|
+
export declare function kosLocalizationProjectGenerator(tree: Tree, options: KosLocalizationProjectGeneratorSchema): Promise<void>;
|
|
4
|
+
export default kosLocalizationProjectGenerator;
|
|
5
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-i18n-project/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAOL,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,qCAAqC,EAAE,MAAM,UAAU,CAAC;AACjE,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,qCAAqC,iBAuF/C;AAED,eAAe,+BAA+B,CAAC"}
|