@xeno-js/cli 0.1.0 → 0.1.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.
Files changed (91) hide show
  1. package/dist/index.js +3675 -18
  2. package/dist/index.js.map +1 -0
  3. package/eslint.config.mjs +1 -0
  4. package/package.json +4 -3
  5. package/tsup.config.ts +13 -0
  6. package/dist/domain/contracts/icommand-cli.contracts.js +0 -2
  7. package/dist/domain/contracts/icommand-runner.contracts.js +0 -2
  8. package/dist/domain/contracts/idispatch.contracts.js +0 -2
  9. package/dist/domain/contracts/ifile-service.contracts.js +0 -2
  10. package/dist/domain/contracts/igenerator.contracts.js +0 -2
  11. package/dist/domain/contracts/index.js +0 -2
  12. package/dist/domain/contracts/iscaffold-strategy.contracts.js +0 -2
  13. package/dist/domain/index.js +0 -2
  14. package/dist/generator.contracts.js +0 -13
  15. package/dist/infrastructure/bootstrap/bootstrapper.js +0 -32
  16. package/dist/infrastructure/bootstrap/index.js +0 -17
  17. package/dist/infrastructure/builder/builder.js +0 -16
  18. package/dist/infrastructure/builder/builder.test.js +0 -30
  19. package/dist/infrastructure/builder/index.js +0 -17
  20. package/dist/infrastructure/command_launcher/command.utils.js +0 -30
  21. package/dist/infrastructure/command_launcher/index.js +0 -2
  22. package/dist/infrastructure/commands/command-runner.service.js +0 -36
  23. package/dist/infrastructure/commands/generate.command.js +0 -48
  24. package/dist/infrastructure/commands/help.command.js +0 -44
  25. package/dist/infrastructure/commands/index.js +0 -20
  26. package/dist/infrastructure/commands/new-project.command.js +0 -43
  27. package/dist/infrastructure/dispatcher/dispatcher.js +0 -39
  28. package/dist/infrastructure/dispatcher/index.js +0 -17
  29. package/dist/infrastructure/file/file.service.js +0 -13
  30. package/dist/infrastructure/file/index.js +0 -17
  31. package/dist/infrastructure/generators/bootstrap.generator.js +0 -118
  32. package/dist/infrastructure/generators/core/bootstrap.generator.js +0 -118
  33. package/dist/infrastructure/generators/core/command/cqrs.generator.js +0 -49
  34. package/dist/infrastructure/generators/core/command/generate-command.generator.js +0 -163
  35. package/dist/infrastructure/generators/core/command/generate-query.generator.js +0 -131
  36. package/dist/infrastructure/generators/core/drizzle-sql-lite.generator.js +0 -78
  37. package/dist/infrastructure/generators/core/drizzle.generator.js +0 -85
  38. package/dist/infrastructure/generators/core/env.generator.js +0 -69
  39. package/dist/infrastructure/generators/core/index.js +0 -25
  40. package/dist/infrastructure/generators/core/main.generator.js +0 -45
  41. package/dist/infrastructure/generators/core/packagejson.generator.js +0 -78
  42. package/dist/infrastructure/generators/core/readme.generator.js +0 -431
  43. package/dist/infrastructure/generators/core/registry.generator.js +0 -46
  44. package/dist/infrastructure/generators/core/tsconfig.generator.js +0 -41
  45. package/dist/infrastructure/generators/core-packagejson.generator.js +0 -78
  46. package/dist/infrastructure/generators/drizzle-sql-lite.generator.js +0 -78
  47. package/dist/infrastructure/generators/drizzle.generator.js +0 -85
  48. package/dist/infrastructure/generators/env-vue.generator.js +0 -40
  49. package/dist/infrastructure/generators/env.generator.js +0 -71
  50. package/dist/infrastructure/generators/gitignore.generator.js +0 -62
  51. package/dist/infrastructure/generators/index.js +0 -26
  52. package/dist/infrastructure/generators/main.generator.js +0 -45
  53. package/dist/infrastructure/generators/readme.generator.js +0 -431
  54. package/dist/infrastructure/generators/registry.generator.js +0 -46
  55. package/dist/infrastructure/generators/tsconfig-vue.generator.js +0 -39
  56. package/dist/infrastructure/generators/tsconfig.generator.js +0 -41
  57. package/dist/infrastructure/generators/vite-config.generator.js +0 -39
  58. package/dist/infrastructure/generators/vue/app-vue.generator.js +0 -26
  59. package/dist/infrastructure/generators/vue/bootstrap-ts.generator.js +0 -59
  60. package/dist/infrastructure/generators/vue/command_query/cqrs.generator.js +0 -36
  61. package/dist/infrastructure/generators/vue/command_query/generate-command-vue.generator.js +0 -139
  62. package/dist/infrastructure/generators/vue/command_query/generate-query-vue.generator.js +0 -147
  63. package/dist/infrastructure/generators/vue/env.generator.js +0 -40
  64. package/dist/infrastructure/generators/vue/index-html.generator.js +0 -29
  65. package/dist/infrastructure/generators/vue/index.js +0 -28
  66. package/dist/infrastructure/generators/vue/main.generator.js +0 -45
  67. package/dist/infrastructure/generators/vue/packagejson.generator.js +0 -59
  68. package/dist/infrastructure/generators/vue/readme.generator.js +0 -394
  69. package/dist/infrastructure/generators/vue/registry-ts.generator.js +0 -28
  70. package/dist/infrastructure/generators/vue/router.generator.js +0 -33
  71. package/dist/infrastructure/generators/vue/tailwind.generator.js +0 -19
  72. package/dist/infrastructure/generators/vue/tsconfig.generator.js +0 -39
  73. package/dist/infrastructure/generators/vue/use-app.generator.js +0 -43
  74. package/dist/infrastructure/generators/vue/vite-config.generator.js +0 -39
  75. package/dist/infrastructure/generators/vue-packagejson.generator.js +0 -59
  76. package/dist/infrastructure/generators/vue-readme.generator.js +0 -53
  77. package/dist/infrastructure/generators/vue-source-files.generator.js +0 -136
  78. package/dist/infrastructure/index.js +0 -21
  79. package/dist/infrastructure/strategies/core-scaffold.strategy.js +0 -99
  80. package/dist/infrastructure/strategies/index.js +0 -18
  81. package/dist/infrastructure/strategies/vue-scaffold.strategy.js +0 -79
  82. package/dist/scaffolding.engine.js +0 -60
  83. package/dist/shared/constants/command.constants.js +0 -19
  84. package/dist/shared/constants/core.constants.js +0 -10
  85. package/dist/shared/constants/index.js +0 -18
  86. package/dist/shared/index.js +0 -18
  87. package/dist/shared/types/common.types.js +0 -2
  88. package/dist/shared/types/index.js +0 -2
  89. package/dist/shared/utils/guards.utils.js +0 -310
  90. package/dist/shared/utils/index.js +0 -18
  91. package/dist/shared/utils/string.utils.js +0 -62
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ReadmeVueGenerator = void 0;
7
- // src/infrastructure/generators/vue-readme.generator.ts
8
- const node_path_1 = __importDefault(require("node:path"));
9
- class ReadmeVueGenerator {
10
- _fileService;
11
- constructor(_fileService) {
12
- this._fileService = _fileService;
13
- }
14
- async generate(projectPath, options) {
15
- const content = `# ${options.targetDir}
16
-
17
- Enterprise-grade Vue SPA scaffolded with **Xeno**.
18
-
19
- ## Architecture & Integration
20
-
21
- This project is pre-configured with \`@xeno-js/vue\` to enforce pure Dependency Injection and CQRS patterns directly in the browser.
22
-
23
- The application initialization is handled in \`src/main.ts\` via \`XenoAppBuilder\`. The resulting IoC container is injected into the Vue component tree using Provide/Inject under the \`XENO_SERVICES_KEY\`.
24
-
25
- ### Recommended Component Usage (Composition API)
26
-
27
- \`\`\`html
28
- <script setup lang="ts">
29
- import { inject } from 'vue';
30
- import { XENO_SERVICES_KEY, ContainerUtils } from '@xeno-js/vue';
31
- import type { MyRegistry } from '@/registry';
32
-
33
- const container = inject(XENO_SERVICES_KEY);
34
-
35
- if (!container) {
36
- throw new Error("Xeno Container not provided!");
37
- }
38
-
39
- // Safely resolve your dependencies
40
- const myService = ContainerUtils.resolveServiceScoped('MY_CUSTOM_SERVICE_TOKEN', container);
41
- </script>
42
- \`\`\`
43
-
44
- ## Scripts
45
-
46
- - \`npm run dev\`: Starts the Vite development server.
47
- - \`npm run build\`: Type-checks and builds the production application.
48
- - \`npm run preview\`: Previews the production build locally.
49
- `;
50
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'README.md'), content);
51
- }
52
- }
53
- exports.ReadmeVueGenerator = ReadmeVueGenerator;
@@ -1,136 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.VueSourceFilesGenerator = void 0;
7
- // src/infrastructure/generators/vue-source-files.generator.ts
8
- const node_path_1 = __importDefault(require("node:path"));
9
- class VueSourceFilesGenerator {
10
- _fileService;
11
- constructor(_fileService) {
12
- this._fileService = _fileService;
13
- }
14
- async generate(projectPath, options) {
15
- // 1. index.html
16
- const indexHtml = `<!DOCTYPE html>
17
- <html lang="en">
18
- <head>
19
- <meta charset="UTF-8" />
20
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
21
- <title>${options.targetDir}</title>
22
- </head>
23
- <body>
24
- <div id="app"></div>
25
- <script type="module" src="/src/main.ts"></script>
26
- </body>
27
- </html>`;
28
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'index.html'), indexHtml);
29
- // 2. src/App.vue
30
- const appVue = `<script setup lang="ts">
31
- </script>
32
-
33
- <template>
34
- <div id="xeno-app">
35
- ${options.router ? '<router-view />' : '<h1>Welcome to Xeno Vue App</h1>'}
36
- </div>
37
- </template>`;
38
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'App.vue'), appVue);
39
- // 3. src/registry.ts
40
- const registryTs = `import type { XenoVueRegistry } from '@xeno-js/vue';
41
-
42
- /**
43
- * @file registry.ts
44
- * @description Centralized Type Contract for Dependency Injection in Vue.
45
- */
46
- export interface MyRegistry extends XenoVueRegistry {
47
- // Add your frontend injection tokens here
48
- // e.g., USER_DATA_SOURCE: IUserDataSource;
49
- }
50
- `;
51
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'registry.ts'), registryTs);
52
- // 4. src/bootstrap.ts
53
- let builderNodes = ` const builder = XenoAppBuilder.create<MyRegistry>()\n .addContext(() => {});`;
54
- if (options.supabase) {
55
- builderNodes += `\n .addAuth((opts, config) => {
56
- opts.url = config.getOrThrow('VITE_SUPABASE_URL');
57
- opts.key = config.getOrThrow('VITE_SUPABASE_KEY');
58
- });`;
59
- }
60
- if (options.sentry) {
61
- builderNodes += `\n .addLogger((opts, config) => {
62
- opts.console = config.get('VITE_APP_ENV') === 'development';
63
- opts.sentry = {
64
- dsn: config.getOrThrow('VITE_SENTRY_DSN'),
65
- env: config.getOrThrow('VITE_APP_ENV')
66
- };
67
- });`;
68
- }
69
- else {
70
- builderNodes += `\n .addLogger((opts, config) => {
71
- opts.console = config.get('VITE_APP_ENV') === 'development';
72
- });`;
73
- }
74
- builderNodes += `\n .addServices((config, register) => {
75
- // Register custom stores, API clients, and CQRS services here
76
- });`;
77
- const bootstrapTs = `import { XenoAppBuilder } from '@xeno-js/vue';
78
- import type { MyRegistry } from './registry';
79
-
80
- export async function bootstrap() {
81
- ${builderNodes}
82
-
83
- return await builder.build();
84
- }
85
- `;
86
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'bootstrap.ts'), bootstrapTs);
87
- // 5. src/main.ts
88
- const routerImport = options.router ? `\nimport router from './router';` : '';
89
- const piniaImport = options.pinia ? `\nimport { createPinia } from 'pinia';` : '';
90
- const tailwindImport = options.tailwind ? `\nimport './assets/style.css';` : '';
91
- const mainTs = `import { createApp } from 'vue';
92
- import App from './App.vue';
93
- import { bootstrap } from './bootstrap';
94
- import { XENO_SERVICES_KEY } from '@xeno-js/vue';${routerImport}${piniaImport}${tailwindImport}
95
-
96
- async function mountApp() {
97
- try {
98
- const container = await bootstrap();
99
- const app = createApp(App);
100
-
101
- // Provide the Xeno IoC container globally to all components
102
- app.provide(XENO_SERVICES_KEY, container);
103
- ${options.pinia ? '\n app.use(createPinia());' : ''}${options.router ? '\n app.use(router);' : ''}
104
-
105
- app.mount('#app');
106
- } catch (error) {
107
- console.error('Critical error during frontend bootstrap:', error);
108
- }
109
- }
110
-
111
- mountApp();
112
- `;
113
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'main.ts'), mainTs);
114
- // 6. Optional router and assets
115
- if (options.router) {
116
- const routerTs = `import { createRouter, createWebHistory } from 'vue-router';
117
-
118
- export default createRouter({
119
- history: createWebHistory(),
120
- routes: [
121
- {
122
- path: '/',
123
- name: 'Home',
124
- component: () => import('./views/HomeView.vue')
125
- }
126
- ]
127
- });`;
128
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'router', 'index.ts'), routerTs);
129
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'views', 'HomeView.vue'), `<template>\n <h1>Home View</h1>\n</template>`);
130
- }
131
- if (options.tailwind) {
132
- await this._fileService.writeFileRecursive(node_path_1.default.join(projectPath, 'src', 'assets', 'style.css'), `@import "tailwindcss";\n`);
133
- }
134
- }
135
- }
136
- exports.VueSourceFilesGenerator = VueSourceFilesGenerator;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./bootstrap"), exports);
18
- __exportStar(require("./commands"), exports);
19
- __exportStar(require("./dispatcher"), exports);
20
- __exportStar(require("./file"), exports);
21
- __exportStar(require("./strategies"), exports);
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CoreScaffoldStrategy = void 0;
7
- // src/strategies/core.strategy.ts
8
- const prompts_1 = __importDefault(require("prompts"));
9
- const shared_1 = require("../../shared");
10
- class CoreScaffoldStrategy {
11
- _fileService;
12
- constructor(_fileService) {
13
- this._fileService = _fileService;
14
- }
15
- async promptOptions(targetDir) {
16
- const response = await (0, prompts_1.default)([
17
- { type: 'confirm', name: 'axios', message: 'Install Axios?', initial: true },
18
- { type: 'confirm', name: 'cockatiel', message: 'Install Cockatiel?', initial: true },
19
- { type: 'confirm', name: 'supabase', message: 'Install Supabase Auth?', initial: true },
20
- {
21
- type: 'select',
22
- name: 'database',
23
- message: 'Select database type',
24
- choices: [
25
- { title: 'Drizzle PostgreSQL', value: 'drizzle' },
26
- { title: 'SQL Lite', value: 'sqlLite' },
27
- { title: 'None', value: 'none' },
28
- ],
29
- },
30
- { type: 'confirm', name: 'pino', message: 'Install Pino Logger?', initial: true },
31
- { type: 'confirm', name: 'sentry', message: 'Install Sentry Logger?', initial: true },
32
- { type: 'confirm', name: 'redis', message: 'Install Redis?', initial: true },
33
- { type: 'confirm', name: 'zod', message: 'Install Zod?', initial: true },
34
- // {
35
- // type: 'select',
36
- // name: 'targetEnv',
37
- // message: 'Select target environment',
38
- // choices: [
39
- // { title: 'Console', value: 'console' },
40
- // { title: 'Vercel (Serverless)', value: 'vercel' },
41
- // { title: 'Fastify (Standalone)', value: 'fastify' },
42
- // ],
43
- // },
44
- {
45
- type: 'confirm',
46
- name: 'gitInit',
47
- message: 'Initialize a new Git repository?',
48
- initial: true,
49
- },
50
- ]);
51
- return {
52
- targetDir,
53
- projectType: 'core',
54
- targetEnv: 'console',
55
- ...response,
56
- };
57
- }
58
- async getGenerators(options) {
59
- // Lazy Loading: Importiamo i moduli solo se servono!
60
- const generators = [];
61
- const { PackageJsonCoreGenerator } = await import('../generators/core/packagejson.generator.js');
62
- const { BootstrapGenerator } = await import('../generators/core/bootstrap.generator.js');
63
- const { EnvGenerator } = await import('../generators/core/env.generator.js');
64
- const { GitIgnoreGenerator } = await import('../generators/gitignore.generator.js');
65
- const { ReadmeGenerator } = await import('../generators/core/readme.generator.js');
66
- const { RegistryGenerator } = await import('../generators/core/registry.generator.js');
67
- const { TsconfigGenerator } = await import('../generators/core/tsconfig.generator.js');
68
- generators.push(new PackageJsonCoreGenerator(this._fileService));
69
- generators.push(new BootstrapGenerator(this._fileService));
70
- generators.push(new EnvGenerator(this._fileService));
71
- generators.push(new GitIgnoreGenerator(this._fileService));
72
- generators.push(new ReadmeGenerator(this._fileService));
73
- generators.push(new RegistryGenerator(this._fileService));
74
- generators.push(new TsconfigGenerator(this._fileService));
75
- if (options.database !== shared_1.CORE_CONSTANTS.NONE) {
76
- if (options.database === shared_1.CORE_CONSTANTS.DRIZZLE) {
77
- const { DrizzleGenerator } = await import('../generators/core/drizzle.generator.js');
78
- generators.push(new DrizzleGenerator(this._fileService));
79
- }
80
- else if (options.database === shared_1.CORE_CONSTANTS.SQL_LITE) {
81
- const { DrizzleSqlLiteGenerator } = await import('../generators/core/drizzle-sql-lite.generator.js');
82
- generators.push(new DrizzleSqlLiteGenerator(this._fileService));
83
- }
84
- }
85
- if (options.targetEnv === shared_1.TARGET_ENV_CONSTANTS.CONSOLE) {
86
- const { MainGenerator } = await import('../generators/core/main.generator.js');
87
- generators.push(new MainGenerator(this._fileService));
88
- }
89
- // else if (options.targetEnv === CORE_CONSTANTS.VERCEL) {
90
- // const { VercelJsonGenerator } = await import('../generators');
91
- // generators.push(new VercelJsonGenerator());
92
- // } else if (options.targetEnv === CORE_CONSTANTS.FASTIFY) {
93
- // const { FastifysonGenerator } = await import('../generators');
94
- // generators.push(new FastifysonGenerator());
95
- // }
96
- return generators;
97
- }
98
- }
99
- exports.CoreScaffoldStrategy = CoreScaffoldStrategy;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./core-scaffold.strategy"), exports);
18
- __exportStar(require("./vue-scaffold.strategy"), exports);
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.VueScaffoldStrategy = void 0;
7
- const prompts_1 = __importDefault(require("prompts"));
8
- class VueScaffoldStrategy {
9
- _fileService;
10
- constructor(_fileService) {
11
- this._fileService = _fileService;
12
- }
13
- async promptOptions(targetDir) {
14
- const response = await (0, prompts_1.default)([
15
- { type: 'confirm', name: 'axios', message: 'Install Axios?', initial: true },
16
- {
17
- type: 'confirm',
18
- name: 'cockatiel',
19
- message: 'Install Cockatiel (Resilience)?',
20
- initial: true,
21
- },
22
- { type: 'confirm', name: 'supabase', message: 'Install Supabase Auth?', initial: true },
23
- { type: 'confirm', name: 'sentry', message: 'Install Sentry Logger?', initial: true },
24
- {
25
- type: 'confirm',
26
- name: 'pinia',
27
- message: 'Install Pinia (State Management)?',
28
- initial: true,
29
- },
30
- { type: 'confirm', name: 'router', message: 'Install vue-router?', initial: true },
31
- { type: 'confirm', name: 'tailwind', message: 'Install Tailwind CSS?', initial: true },
32
- { type: 'confirm', name: 'zod', message: 'Install Zod Validator?', initial: true },
33
- {
34
- type: 'confirm',
35
- name: 'gitInit',
36
- message: 'Initialize a new Git repository?',
37
- initial: true,
38
- },
39
- ]);
40
- return {
41
- targetDir,
42
- projectType: 'vue',
43
- ...response,
44
- };
45
- }
46
- async getGenerators(_options) {
47
- const generators = [];
48
- const { PackageJsonVueGenerator } = await import('../generators/vue/packagejson.generator.js');
49
- const { ViteconfigGenerator } = await import('../generators/vue/vite-config.generator.js');
50
- const { EnvVueGenerator } = await import('../generators/vue/env.generator.js');
51
- const { TsconfigVueGenerator } = await import('../generators/vue/tsconfig.generator.js');
52
- const { ReadmeVueGenerator } = await import('../generators/vue/readme.generator.js');
53
- const { GitIgnoreGenerator } = await import('../generators/gitignore.generator.js');
54
- const { AppVueGenerator } = await import('../generators/vue/app-vue.generator.js');
55
- const { BootstrapGenerator } = await import('../generators/vue/bootstrap-ts.generator.js');
56
- const { IndexVueGenerator } = await import('../generators/vue/index-html.generator.js');
57
- const { MainGenerator } = await import('../generators/vue/main.generator.js');
58
- const { RegistryGenerator } = await import('../generators/vue/registry-ts.generator.js');
59
- const { RouterGenerator } = await import('../generators/vue/router.generator.js');
60
- const { TailwindGenerator } = await import('../generators/vue/tailwind.generator.js');
61
- const { UseAppVueGenerator } = await import('../generators/vue/use-app.generator.js');
62
- generators.push(new PackageJsonVueGenerator(this._fileService));
63
- generators.push(new ViteconfigGenerator(this._fileService));
64
- generators.push(new EnvVueGenerator(this._fileService));
65
- generators.push(new TsconfigVueGenerator(this._fileService));
66
- generators.push(new AppVueGenerator(this._fileService));
67
- generators.push(new BootstrapGenerator(this._fileService));
68
- generators.push(new IndexVueGenerator(this._fileService));
69
- generators.push(new MainGenerator(this._fileService));
70
- generators.push(new RegistryGenerator(this._fileService));
71
- generators.push(new RouterGenerator(this._fileService));
72
- generators.push(new TailwindGenerator(this._fileService));
73
- generators.push(new ReadmeVueGenerator(this._fileService));
74
- generators.push(new GitIgnoreGenerator(this._fileService));
75
- generators.push(new UseAppVueGenerator(this._fileService));
76
- return generators;
77
- }
78
- }
79
- exports.VueScaffoldStrategy = VueScaffoldStrategy;
@@ -1,60 +0,0 @@
1
- "use strict";
2
- // import { mkdir } from 'fs/promises'
3
- // import { resolve } from 'path'
4
- // import pc from 'picocolors'
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- // import { type IGenerator } from './generator.contracts'
7
- // import { type ScaffoldingOptions } from './generator.contracts'
8
- // /**
9
- // * @class ScaffoldingEngine
10
- // * @description The ScaffoldingEngine orchestrates the execution of multiple generators based on user-selected options.
11
- // * It ensures that each generator is executed in the correct order and handles any errors that may arise during the scaffolding process.
12
- // *
13
- // * @author Xeno
14
- // * @version 1.0.0
15
- // * @license ISC
16
- // * @since 2025-09-30
17
- // * @link https://github.com/Mattia-Carcione/xeno-js
18
- // */
19
- // export class ScaffoldingEngine {
20
- // /**
21
- // * Creates an instance of ScaffoldingEngine.
22
- // * @param generators - An array of generators to be executed during the scaffolding process.
23
- // *
24
- // * @author Xeno
25
- // * @version 1.0.0
26
- // * @license ISC
27
- // * @since 2025-09-30
28
- // * @link https://github.com/Mattia-Carcione/xeno-js
29
- // */
30
- // constructor(private readonly generators: IGenerator[]) {}
31
- // /**
32
- // * Executes the scaffolding process by running each generator that should be executed based on the provided options.
33
- // * It creates the target directory if it does not exist and handles any errors that occur during the execution of generators.
34
- // *
35
- // * @param projectPath - The relative path of the target directory
36
- // * @param options - The user-selected options
37
- // *
38
- // * @author Xeno
39
- // * @version 1.0.0
40
- // * @license ISC
41
- // * @since 2025-09-30
42
- // * @link https://github.com/Mattia-Carcione/xeno-js
43
- // */
44
- // async run(projectPath: string, options: ScaffoldingOptions): Promise<void> {
45
- // console.info(pc.cyan('\n🔨 Starting scaffolding process...'))
46
- // const absolutePath = resolve(process.cwd(), projectPath)
47
- // await mkdir(absolutePath, { recursive: true })
48
- // for (const generator of this.generators) {
49
- // if (generator.shouldGenerate(options)) {
50
- // try {
51
- // await generator.generate(absolutePath, options)
52
- // } catch (error: unknown) {
53
- // console.error(pc.red(`\n❌ Failed to execute generator: ${String(error)}`))
54
- // throw error
55
- // }
56
- // }
57
- // }
58
- // console.info(pc.green('\n✨ Scaffolding completed successfully!'))
59
- // }
60
- // }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TARGET_ENV_CONSTANTS = exports.COMMAND_CONSTANTS = exports.ARGS_CONSTANTS = void 0;
4
- exports.ARGS_CONSTANTS = Object.freeze({
5
- HELP: '--help',
6
- VUE: '--vue',
7
- CORE: '--core',
8
- CONSOLE: '--console',
9
- });
10
- exports.COMMAND_CONSTANTS = Object.freeze({
11
- HELP: 'help',
12
- COMMAND: 'command',
13
- QUERY: 'query',
14
- });
15
- exports.TARGET_ENV_CONSTANTS = Object.freeze({
16
- CONSOLE: 'console',
17
- VERCEL: 'vercel',
18
- FASTIFY: 'fastify',
19
- });
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CORE_CONSTANTS = void 0;
4
- exports.CORE_CONSTANTS = Object.freeze({
5
- VERCEL: 'vercel',
6
- FASTIFY: 'fastify',
7
- DRIZZLE: 'drizzle',
8
- SQL_LITE: 'sqlLite',
9
- NONE: 'none',
10
- });
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./command.constants"), exports);
18
- __exportStar(require("./core.constants"), exports);
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./constants"), exports);
18
- __exportStar(require("./utils"), exports);
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });