create-nexo 1.0.0
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/LICENSE +21 -0
- package/README.md +185 -0
- package/dist/api/index.d.ts +196 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +390 -0
- package/dist/api/index.js.map +1 -0
- package/dist/bin/nexo.d.ts +3 -0
- package/dist/bin/nexo.d.ts.map +1 -0
- package/dist/bin/nexo.js +427 -0
- package/dist/bin/nexo.js.map +1 -0
- package/dist/configurators/core/framework.d.ts +3 -0
- package/dist/configurators/core/framework.d.ts.map +1 -0
- package/dist/configurators/core/framework.js +56 -0
- package/dist/configurators/core/framework.js.map +1 -0
- package/dist/configurators/core/index.d.ts +4 -0
- package/dist/configurators/core/index.d.ts.map +1 -0
- package/dist/configurators/core/index.js +4 -0
- package/dist/configurators/core/index.js.map +1 -0
- package/dist/configurators/core/language.d.ts +3 -0
- package/dist/configurators/core/language.d.ts.map +1 -0
- package/dist/configurators/core/language.js +59 -0
- package/dist/configurators/core/language.js.map +1 -0
- package/dist/configurators/core/variant.d.ts +3 -0
- package/dist/configurators/core/variant.d.ts.map +1 -0
- package/dist/configurators/core/variant.js +22 -0
- package/dist/configurators/core/variant.js.map +1 -0
- package/dist/configurators/index.d.ts +5 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +6 -0
- package/dist/configurators/index.js.map +1 -0
- package/dist/configurators/project/auth.d.ts +3 -0
- package/dist/configurators/project/auth.d.ts.map +1 -0
- package/dist/configurators/project/auth.js +82 -0
- package/dist/configurators/project/auth.js.map +1 -0
- package/dist/configurators/project/cicd.d.ts +30 -0
- package/dist/configurators/project/cicd.d.ts.map +1 -0
- package/dist/configurators/project/cicd.js +289 -0
- package/dist/configurators/project/cicd.js.map +1 -0
- package/dist/configurators/project/i18n.d.ts +3 -0
- package/dist/configurators/project/i18n.d.ts.map +1 -0
- package/dist/configurators/project/i18n.js +67 -0
- package/dist/configurators/project/i18n.js.map +1 -0
- package/dist/configurators/project/index.d.ts +6 -0
- package/dist/configurators/project/index.d.ts.map +1 -0
- package/dist/configurators/project/index.js +6 -0
- package/dist/configurators/project/index.js.map +1 -0
- package/dist/configurators/project/mandatory.d.ts +3 -0
- package/dist/configurators/project/mandatory.d.ts.map +1 -0
- package/dist/configurators/project/mandatory.js +167 -0
- package/dist/configurators/project/mandatory.js.map +1 -0
- package/dist/configurators/project/structure.d.ts +3 -0
- package/dist/configurators/project/structure.d.ts.map +1 -0
- package/dist/configurators/project/structure.js +34 -0
- package/dist/configurators/project/structure.js.map +1 -0
- package/dist/configurators/state/dataFetching.d.ts +3 -0
- package/dist/configurators/state/dataFetching.d.ts.map +1 -0
- package/dist/configurators/state/dataFetching.js +23 -0
- package/dist/configurators/state/dataFetching.js.map +1 -0
- package/dist/configurators/state/forms.d.ts +3 -0
- package/dist/configurators/state/forms.d.ts.map +1 -0
- package/dist/configurators/state/forms.js +35 -0
- package/dist/configurators/state/forms.js.map +1 -0
- package/dist/configurators/state/index.d.ts +5 -0
- package/dist/configurators/state/index.d.ts.map +1 -0
- package/dist/configurators/state/index.js +5 -0
- package/dist/configurators/state/index.js.map +1 -0
- package/dist/configurators/state/routing.d.ts +3 -0
- package/dist/configurators/state/routing.d.ts.map +1 -0
- package/dist/configurators/state/routing.js +23 -0
- package/dist/configurators/state/routing.js.map +1 -0
- package/dist/configurators/state/state.d.ts +3 -0
- package/dist/configurators/state/state.d.ts.map +1 -0
- package/dist/configurators/state/state.js +91 -0
- package/dist/configurators/state/state.js.map +1 -0
- package/dist/configurators/styling/icons.d.ts +3 -0
- package/dist/configurators/styling/icons.d.ts.map +1 -0
- package/dist/configurators/styling/icons.js +27 -0
- package/dist/configurators/styling/icons.js.map +1 -0
- package/dist/configurators/styling/index.d.ts +4 -0
- package/dist/configurators/styling/index.d.ts.map +1 -0
- package/dist/configurators/styling/index.js +4 -0
- package/dist/configurators/styling/index.js.map +1 -0
- package/dist/configurators/styling/styling.d.ts +3 -0
- package/dist/configurators/styling/styling.d.ts.map +1 -0
- package/dist/configurators/styling/styling.js +62 -0
- package/dist/configurators/styling/styling.js.map +1 -0
- package/dist/configurators/styling/ui.d.ts +3 -0
- package/dist/configurators/styling/ui.d.ts.map +1 -0
- package/dist/configurators/styling/ui.js +188 -0
- package/dist/configurators/styling/ui.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lazy-loader.d.ts +57 -0
- package/dist/core/lazy-loader.d.ts.map +1 -0
- package/dist/core/lazy-loader.js +231 -0
- package/dist/core/lazy-loader.js.map +1 -0
- package/dist/core/parallel.d.ts +29 -0
- package/dist/core/parallel.d.ts.map +1 -0
- package/dist/core/parallel.js +127 -0
- package/dist/core/parallel.js.map +1 -0
- package/dist/core/presets.d.ts +10 -0
- package/dist/core/presets.d.ts.map +1 -0
- package/dist/core/presets.js +73 -0
- package/dist/core/presets.js.map +1 -0
- package/dist/core/prompts/core.d.ts +18 -0
- package/dist/core/prompts/core.d.ts.map +1 -0
- package/dist/core/prompts/core.js +420 -0
- package/dist/core/prompts/core.js.map +1 -0
- package/dist/core/prompts/filter.d.ts +34 -0
- package/dist/core/prompts/filter.d.ts.map +1 -0
- package/dist/core/prompts/filter.js +48 -0
- package/dist/core/prompts/filter.js.map +1 -0
- package/dist/core/prompts/index.d.ts +10 -0
- package/dist/core/prompts/index.d.ts.map +1 -0
- package/dist/core/prompts/index.js +16 -0
- package/dist/core/prompts/index.js.map +1 -0
- package/dist/core/prompts/optional.d.ts +15 -0
- package/dist/core/prompts/optional.d.ts.map +1 -0
- package/dist/core/prompts/optional.js +228 -0
- package/dist/core/prompts/optional.js.map +1 -0
- package/dist/core/prompts/utils.d.ts +37 -0
- package/dist/core/prompts/utils.d.ts.map +1 -0
- package/dist/core/prompts/utils.js +72 -0
- package/dist/core/prompts/utils.js.map +1 -0
- package/dist/core/prompts.d.ts +6 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +6 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/setup.d.ts +28 -0
- package/dist/core/setup.d.ts.map +1 -0
- package/dist/core/setup.js +96 -0
- package/dist/core/setup.js.map +1 -0
- package/dist/core/wizard.d.ts +39 -0
- package/dist/core/wizard.d.ts.map +1 -0
- package/dist/core/wizard.js +259 -0
- package/dist/core/wizard.js.map +1 -0
- package/dist/errors/index.d.ts +67 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +253 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/messages.d.ts +56 -0
- package/dist/errors/messages.d.ts.map +1 -0
- package/dist/errors/messages.js +234 -0
- package/dist/errors/messages.js.map +1 -0
- package/dist/generators/index.d.ts +86 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +441 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/index.d.ts +48 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +49 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/loader.d.ts +38 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +229 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +32 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +220 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/types.d.ts +186 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +5 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/security/index.d.ts +59 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +230 -0
- package/dist/security/index.js.map +1 -0
- package/dist/templates/entry.d.ts +9 -0
- package/dist/templates/entry.d.ts.map +1 -0
- package/dist/templates/entry.js +24 -0
- package/dist/templates/entry.js.map +1 -0
- package/dist/templates/index.d.ts +7 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +10 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/main.d.ts +6 -0
- package/dist/templates/main.d.ts.map +1 -0
- package/dist/templates/main.js +72 -0
- package/dist/templates/main.js.map +1 -0
- package/dist/templates/readme.d.ts +3 -0
- package/dist/templates/readme.d.ts.map +1 -0
- package/dist/templates/readme.js +127 -0
- package/dist/templates/readme.js.map +1 -0
- package/dist/templates/styles.d.ts +6 -0
- package/dist/templates/styles.d.ts.map +1 -0
- package/dist/templates/styles.js +212 -0
- package/dist/templates/styles.js.map +1 -0
- package/dist/templates/welcome.d.ts +10 -0
- package/dist/templates/welcome.d.ts.map +1 -0
- package/dist/templates/welcome.js +322 -0
- package/dist/templates/welcome.js.map +1 -0
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/batch-writer.d.ts +101 -0
- package/dist/utils/batch-writer.d.ts.map +1 -0
- package/dist/utils/batch-writer.js +232 -0
- package/dist/utils/batch-writer.js.map +1 -0
- package/dist/utils/cache.d.ts +60 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +119 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/fileTree.d.ts +3 -0
- package/dist/utils/fileTree.d.ts.map +1 -0
- package/dist/utils/fileTree.js +71 -0
- package/dist/utils/fileTree.js.map +1 -0
- package/dist/utils/fs.d.ts +22 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +75 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/helpers.d.ts +91 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +192 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/progress.d.ts +85 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +142 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/spinner.d.ts +9 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +56 -0
- package/dist/utils/spinner.js.map +1 -0
- package/dist/validation/index.d.ts +63 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +262 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { exec } from 'node:child_process';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import { addDependency, ensureDir, getPackageJson, savePackageJson, writeFile } from '../../utils/index.js';
|
|
5
|
+
const execAsync = promisify(exec);
|
|
6
|
+
export const mandatoryConfigurator = async (ctx) => {
|
|
7
|
+
const pkg = await getPackageJson(ctx);
|
|
8
|
+
const { projectName, variant } = ctx.selections;
|
|
9
|
+
const isTypeScript = variant.startsWith('ts');
|
|
10
|
+
// PWA - using @vite-pwa/vite for Vite 6 support
|
|
11
|
+
addDependency(pkg, '@vite-pwa/assets-generator', '^0.2.0', true);
|
|
12
|
+
addDependency(pkg, 'workbox-window', '^7.1.0');
|
|
13
|
+
await savePackageJson(ctx, pkg);
|
|
14
|
+
// Create manifest.json
|
|
15
|
+
const manifest = {
|
|
16
|
+
name: projectName,
|
|
17
|
+
short_name: projectName,
|
|
18
|
+
theme_color: '#ffffff',
|
|
19
|
+
background_color: '#ffffff',
|
|
20
|
+
display: 'standalone',
|
|
21
|
+
start_url: '/',
|
|
22
|
+
icons: [
|
|
23
|
+
{
|
|
24
|
+
src: '/icon-192.png',
|
|
25
|
+
sizes: '192x192',
|
|
26
|
+
type: 'image/png',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
src: '/icon-512.png',
|
|
30
|
+
sizes: '512x512',
|
|
31
|
+
type: 'image/png',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
await ensureDir(path.join(ctx.projectPath, 'public'));
|
|
36
|
+
await writeFile(path.join(ctx.projectPath, 'public', 'manifest.json'), JSON.stringify(manifest, null, 2));
|
|
37
|
+
// MIT License
|
|
38
|
+
const year = new Date().getFullYear();
|
|
39
|
+
const license = `MIT License
|
|
40
|
+
|
|
41
|
+
Copyright (c) ${year} ${projectName}
|
|
42
|
+
|
|
43
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
44
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
45
|
+
in the Software without restriction, including without limitation the rights
|
|
46
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
47
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
48
|
+
furnished to do so, subject to the following conditions:
|
|
49
|
+
|
|
50
|
+
The above copyright notice and this permission notice shall be included in all
|
|
51
|
+
copies or substantial portions of the Software.
|
|
52
|
+
|
|
53
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
54
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
55
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
56
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
57
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
58
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
59
|
+
SOFTWARE.
|
|
60
|
+
`;
|
|
61
|
+
await writeFile(path.join(ctx.projectPath, 'LICENSE'), license);
|
|
62
|
+
// CI/CD
|
|
63
|
+
await ensureDir(path.join(ctx.projectPath, '.github', 'workflows'));
|
|
64
|
+
const ciWorkflow = `name: CI
|
|
65
|
+
|
|
66
|
+
on:
|
|
67
|
+
push:
|
|
68
|
+
branches: [main]
|
|
69
|
+
pull_request:
|
|
70
|
+
branches: [main]
|
|
71
|
+
|
|
72
|
+
jobs:
|
|
73
|
+
build:
|
|
74
|
+
runs-on: ubuntu-latest
|
|
75
|
+
|
|
76
|
+
steps:
|
|
77
|
+
- uses: actions/checkout@v4
|
|
78
|
+
|
|
79
|
+
- name: Setup Node.js
|
|
80
|
+
uses: actions/setup-node@v4
|
|
81
|
+
with:
|
|
82
|
+
node-version: '24'
|
|
83
|
+
cache: 'npm'
|
|
84
|
+
|
|
85
|
+
- name: Install dependencies
|
|
86
|
+
run: npm ci
|
|
87
|
+
|
|
88
|
+
- name: Build
|
|
89
|
+
run: npm run build
|
|
90
|
+
|
|
91
|
+
- name: Lint
|
|
92
|
+
run: npm run lint || true
|
|
93
|
+
`;
|
|
94
|
+
await writeFile(path.join(ctx.projectPath, '.github', 'workflows', 'ci.yml'), ciWorkflow);
|
|
95
|
+
// .gitignore
|
|
96
|
+
const gitignore = `# Dependencies
|
|
97
|
+
node_modules
|
|
98
|
+
|
|
99
|
+
# Build output
|
|
100
|
+
dist
|
|
101
|
+
dist-ssr
|
|
102
|
+
|
|
103
|
+
# Editor directories and files
|
|
104
|
+
.vscode/*
|
|
105
|
+
!.vscode/extensions.json
|
|
106
|
+
.idea
|
|
107
|
+
*.suo
|
|
108
|
+
*.ntvs*
|
|
109
|
+
*.njsproj
|
|
110
|
+
*.sln
|
|
111
|
+
*.sw?
|
|
112
|
+
|
|
113
|
+
# Environment files
|
|
114
|
+
.env
|
|
115
|
+
.env.local
|
|
116
|
+
.env.*.local
|
|
117
|
+
|
|
118
|
+
# Logs
|
|
119
|
+
npm-debug.log*
|
|
120
|
+
yarn-debug.log*
|
|
121
|
+
yarn-error.log*
|
|
122
|
+
|
|
123
|
+
# OS generated files
|
|
124
|
+
.DS_Store
|
|
125
|
+
Thumbs.db
|
|
126
|
+
|
|
127
|
+
# TypeScript cache
|
|
128
|
+
*.tsbuildinfo
|
|
129
|
+
|
|
130
|
+
# Testing
|
|
131
|
+
coverage
|
|
132
|
+
`;
|
|
133
|
+
await writeFile(path.join(ctx.projectPath, '.gitignore'), gitignore);
|
|
134
|
+
// README.md
|
|
135
|
+
const readme = `# ${projectName}
|
|
136
|
+
|
|
137
|
+
Built with [NEXO](https://github.com/nexo-cli) — Next-generation scaffolding CLI.
|
|
138
|
+
|
|
139
|
+
## Getting Started
|
|
140
|
+
|
|
141
|
+
\`\`\`bash
|
|
142
|
+
npm install
|
|
143
|
+
npm run dev
|
|
144
|
+
\`\`\`
|
|
145
|
+
|
|
146
|
+
## Scripts
|
|
147
|
+
|
|
148
|
+
- \`npm run dev\` - Start development server
|
|
149
|
+
- \`npm run build\` - Build for production
|
|
150
|
+
- \`npm run preview\` - Preview production build
|
|
151
|
+
|
|
152
|
+
## License
|
|
153
|
+
|
|
154
|
+
MIT
|
|
155
|
+
`;
|
|
156
|
+
await writeFile(path.join(ctx.projectPath, 'README.md'), readme);
|
|
157
|
+
// Git init
|
|
158
|
+
try {
|
|
159
|
+
await execAsync('git init', { cwd: ctx.projectPath });
|
|
160
|
+
await execAsync('git add -A', { cwd: ctx.projectPath });
|
|
161
|
+
await execAsync('git commit -m "Initial commit from NEXO"', { cwd: ctx.projectPath });
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
// Git might not be available, ignore errors
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=mandatory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mandatory.js","sourceRoot":"","sources":["../../../src/configurators/project/mandatory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../src/configurators/project/structure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,eAAO,MAAM,qBAAqB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkFlF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { ensureDir } from '../../utils/index.js';
|
|
3
|
+
export const structureConfigurator = async (ctx) => {
|
|
4
|
+
const dirs = [];
|
|
5
|
+
switch (ctx.selections.structure) {
|
|
6
|
+
case 'feature-based':
|
|
7
|
+
dirs.push('src/app', 'src/features', 'src/shared/components', 'src/shared/hooks', 'src/shared/utils', 'src/shared/types');
|
|
8
|
+
break;
|
|
9
|
+
case 'fsd':
|
|
10
|
+
// Feature-Sliced Design
|
|
11
|
+
dirs.push('src/app', 'src/pages', 'src/widgets', 'src/features', 'src/entities', 'src/shared/api', 'src/shared/config', 'src/shared/lib', 'src/shared/ui');
|
|
12
|
+
break;
|
|
13
|
+
case 'atomic':
|
|
14
|
+
dirs.push('src/components/atoms', 'src/components/molecules', 'src/components/organisms', 'src/components/templates', 'src/hooks', 'src/utils');
|
|
15
|
+
break;
|
|
16
|
+
case 'clean':
|
|
17
|
+
// Clean Architecture
|
|
18
|
+
dirs.push('src/domain/entities', 'src/domain/usecases', 'src/application/services', 'src/infrastructure/api', 'src/infrastructure/storage', 'src/presentation/components', 'src/presentation/pages', 'src/presentation/hooks');
|
|
19
|
+
break;
|
|
20
|
+
case 'mvc':
|
|
21
|
+
// MVC Pattern
|
|
22
|
+
dirs.push('src/models', 'src/views/components', 'src/views/pages', 'src/controllers', 'src/services', 'src/utils');
|
|
23
|
+
break;
|
|
24
|
+
case 'simple':
|
|
25
|
+
default:
|
|
26
|
+
dirs.push('src/components', 'src/hooks', 'src/utils', 'src/assets');
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
for (const dir of dirs) {
|
|
30
|
+
const fullPath = path.join(ctx.projectPath, dir);
|
|
31
|
+
await ensureDir(fullPath);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=structure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../src/configurators/project/structure.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAwB,EAAiB,EAAE;IACrF,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,QAAQ,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACjC,KAAK,eAAe;YAClB,IAAI,CAAC,IAAI,CACP,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC;YACF,MAAM;QAER,KAAK,KAAK;YACR,wBAAwB;YACxB,IAAI,CAAC,IAAI,CACP,SAAS,EACT,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,CAChB,CAAC;YACF,MAAM;QAER,KAAK,QAAQ;YACX,IAAI,CAAC,IAAI,CACP,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,WAAW,EACX,WAAW,CACZ,CAAC;YACF,MAAM;QAER,KAAK,OAAO;YACV,qBAAqB;YACrB,IAAI,CAAC,IAAI,CACP,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,CACzB,CAAC;YACF,MAAM;QAER,KAAK,KAAK;YACR,cAAc;YACd,IAAI,CAAC,IAAI,CACP,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,WAAW,CACZ,CAAC;YACF,MAAM;QAER,KAAK,QAAQ,CAAC;QACd;YACE,IAAI,CAAC,IAAI,CACP,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,CACb,CAAC;YACF,MAAM;IACV,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataFetching.d.ts","sourceRoot":"","sources":["../../../src/configurators/state/dataFetching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,eAAO,MAAM,wBAAwB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAwBrF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { addDependency, getPackageJson, savePackageJson } from '../../utils/index.js';
|
|
2
|
+
export const dataFetchingConfigurator = async (ctx) => {
|
|
3
|
+
const { dataFetching, framework } = ctx.selections;
|
|
4
|
+
if (!dataFetching || dataFetching === 'none')
|
|
5
|
+
return;
|
|
6
|
+
const pkg = await getPackageJson(ctx);
|
|
7
|
+
switch (dataFetching) {
|
|
8
|
+
case 'tanstack-query':
|
|
9
|
+
if (framework === 'react') {
|
|
10
|
+
addDependency(pkg, '@tanstack/react-query', '^5.60.0');
|
|
11
|
+
addDependency(pkg, '@tanstack/react-query-devtools', '^5.60.0');
|
|
12
|
+
}
|
|
13
|
+
break;
|
|
14
|
+
case 'axios':
|
|
15
|
+
addDependency(pkg, 'axios', '^1.7.0');
|
|
16
|
+
break;
|
|
17
|
+
case 'fetch':
|
|
18
|
+
// Native fetch, no dependencies needed
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
await savePackageJson(ctx, pkg);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=dataFetching.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataFetching.js","sourceRoot":"","sources":["../../../src/configurators/state/dataFetching.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,GAAwB,EAAiB,EAAE;IACxF,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;IACnD,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM;QAAE,OAAO;IAErD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAEtC,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,gBAAgB;YACnB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;gBACvD,aAAa,CAAC,GAAG,EAAE,gCAAgC,EAAE,SAAS,CAAC,CAAC;YAClE,CAAC;YACD,MAAM;QAER,KAAK,OAAO;YACV,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,OAAO;YACV,uCAAuC;YACvC,MAAM;IACV,CAAC;IAED,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/configurators/state/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAyB3D,eAAO,MAAM,iBAAiB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAa9E,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { addDependency, getPackageJson, savePackageJson } from '../../utils/index.js';
|
|
2
|
+
const FORMS_CONFIGS = {
|
|
3
|
+
'rhf-zod': {
|
|
4
|
+
'react-hook-form': '^7.54.0',
|
|
5
|
+
'zod': '^3.24.0',
|
|
6
|
+
'@hookform/resolvers': '^3.9.0',
|
|
7
|
+
},
|
|
8
|
+
'rhf-yup': {
|
|
9
|
+
'react-hook-form': '^7.54.0',
|
|
10
|
+
'yup': '^1.6.0',
|
|
11
|
+
'@hookform/resolvers': '^3.9.0',
|
|
12
|
+
},
|
|
13
|
+
'formik-zod': {
|
|
14
|
+
'formik': '^2.4.6',
|
|
15
|
+
'zod': '^3.24.0',
|
|
16
|
+
'zod-formik-adapter': '^1.3.0',
|
|
17
|
+
},
|
|
18
|
+
'formik-yup': {
|
|
19
|
+
'formik': '^2.4.6',
|
|
20
|
+
'yup': '^1.6.0',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export const formsConfigurator = async (ctx) => {
|
|
24
|
+
if (ctx.selections.forms === 'none')
|
|
25
|
+
return;
|
|
26
|
+
const config = FORMS_CONFIGS[ctx.selections.forms];
|
|
27
|
+
if (!config)
|
|
28
|
+
return;
|
|
29
|
+
const pkg = await getPackageJson(ctx);
|
|
30
|
+
for (const [name, version] of Object.entries(config)) {
|
|
31
|
+
addDependency(pkg, name, version);
|
|
32
|
+
}
|
|
33
|
+
await savePackageJson(ctx, pkg);
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=forms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/configurators/state/forms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,MAAM,aAAa,GAA2C;IAC5D,SAAS,EAAE;QACT,iBAAiB,EAAE,SAAS;QAC5B,KAAK,EAAE,SAAS;QAChB,qBAAqB,EAAE,QAAQ;KAChC;IACD,SAAS,EAAE;QACT,iBAAiB,EAAE,SAAS;QAC5B,KAAK,EAAE,QAAQ;QACf,qBAAqB,EAAE,QAAQ;KAChC;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;QAChB,oBAAoB,EAAE,QAAQ;KAC/B;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;KAChB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAwB,EAAiB,EAAE;IACjF,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO;IAE5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configurators/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configurators/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/configurators/state/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAa3D,eAAO,MAAM,mBAAmB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAahF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { addDependency, getPackageJson, savePackageJson } from '../../utils/index.js';
|
|
2
|
+
const ROUTING_CONFIGS = {
|
|
3
|
+
'react-router': {
|
|
4
|
+
'react-router-dom': '^7.1.0',
|
|
5
|
+
},
|
|
6
|
+
'tanstack-router': {
|
|
7
|
+
'@tanstack/react-router': '^1.95.0',
|
|
8
|
+
'@tanstack/react-router-devtools': '^1.95.0',
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
export const routingConfigurator = async (ctx) => {
|
|
12
|
+
if (ctx.selections.framework !== 'react')
|
|
13
|
+
return;
|
|
14
|
+
const config = ROUTING_CONFIGS[ctx.selections.routing];
|
|
15
|
+
if (!config)
|
|
16
|
+
return;
|
|
17
|
+
const pkg = await getPackageJson(ctx);
|
|
18
|
+
for (const [name, version] of Object.entries(config)) {
|
|
19
|
+
addDependency(pkg, name, version);
|
|
20
|
+
}
|
|
21
|
+
await savePackageJson(ctx, pkg);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/configurators/state/routing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,MAAM,eAAe,GAA2C;IAC9D,cAAc,EAAE;QACd,kBAAkB,EAAE,QAAQ;KAC7B;IACD,iBAAiB,EAAE;QACjB,wBAAwB,EAAE,SAAS;QACnC,iCAAiC,EAAE,SAAS;KAC7C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,GAAwB,EAAiB,EAAE;IACnF,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO;IAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/configurators/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB3D,eAAO,MAAM,iBAAiB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAmF9E,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { addDependency, getPackageJson, savePackageJson } from '../../utils/index.js';
|
|
2
|
+
const STATE_CONFIGS = {
|
|
3
|
+
zustand: {
|
|
4
|
+
'zustand': '^5.0.0',
|
|
5
|
+
},
|
|
6
|
+
redux: {
|
|
7
|
+
'@reduxjs/toolkit': '^2.5.0',
|
|
8
|
+
'react-redux': '^9.2.0',
|
|
9
|
+
},
|
|
10
|
+
jotai: {
|
|
11
|
+
'jotai': '^2.11.0',
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export const stateConfigurator = async (ctx) => {
|
|
15
|
+
if (ctx.selections.state === 'none')
|
|
16
|
+
return;
|
|
17
|
+
const config = STATE_CONFIGS[ctx.selections.state];
|
|
18
|
+
if (!config)
|
|
19
|
+
return;
|
|
20
|
+
const pkg = await getPackageJson(ctx);
|
|
21
|
+
for (const [name, version] of Object.entries(config)) {
|
|
22
|
+
addDependency(pkg, name, version);
|
|
23
|
+
}
|
|
24
|
+
await savePackageJson(ctx, pkg);
|
|
25
|
+
if (ctx.selections.state === 'redux') {
|
|
26
|
+
const isTypeScript = ctx.selections.variant.startsWith('ts');
|
|
27
|
+
const ext = isTypeScript ? 'ts' : 'js';
|
|
28
|
+
const { writeFile, ensureDir } = await import('../../utils/index.js');
|
|
29
|
+
const path = await import('node:path');
|
|
30
|
+
await ensureDir(path.join(ctx.projectPath, 'src/store'));
|
|
31
|
+
// Create store
|
|
32
|
+
const storeContent = `import { configureStore } from '@reduxjs/toolkit'
|
|
33
|
+
import counterReducer from './counterSlice'
|
|
34
|
+
|
|
35
|
+
export const store = configureStore({
|
|
36
|
+
reducer: {
|
|
37
|
+
counter: counterReducer,
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
${isTypeScript ? `export type RootState = ReturnType<typeof store.getState>
|
|
42
|
+
export type AppDispatch = typeof store.dispatch` : ''}
|
|
43
|
+
`;
|
|
44
|
+
await writeFile(path.join(ctx.projectPath, 'src/store', `store.${ext}`), storeContent);
|
|
45
|
+
// Create example slice
|
|
46
|
+
const sliceContent = `import { createSlice } from '@reduxjs/toolkit'
|
|
47
|
+
${isTypeScript ? "import type { PayloadAction } from '@reduxjs/toolkit'\n\nexport interface CounterState {\n value: number\n}" : ''}
|
|
48
|
+
|
|
49
|
+
const initialState${isTypeScript ? ': CounterState' : ''} = {
|
|
50
|
+
value: 0,
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const counterSlice = createSlice({
|
|
54
|
+
name: 'counter',
|
|
55
|
+
initialState,
|
|
56
|
+
reducers: {
|
|
57
|
+
increment: (state) => {
|
|
58
|
+
state.value += 1
|
|
59
|
+
},
|
|
60
|
+
decrement: (state) => {
|
|
61
|
+
state.value -= 1
|
|
62
|
+
},
|
|
63
|
+
incrementByAmount: (state, action${isTypeScript ? ': PayloadAction<number>' : ''}) => {
|
|
64
|
+
state.value += action.payload
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
export const { increment, decrement, incrementByAmount } = counterSlice.actions
|
|
70
|
+
|
|
71
|
+
export default counterSlice.reducer
|
|
72
|
+
`;
|
|
73
|
+
await writeFile(path.join(ctx.projectPath, 'src/store', `counterSlice.${ext}`), sliceContent);
|
|
74
|
+
// Create hooks
|
|
75
|
+
const hooksContent = isTypeScript
|
|
76
|
+
? `import { useDispatch, useSelector } from 'react-redux'
|
|
77
|
+
import type { TypedUseSelectorHook } from 'react-redux'
|
|
78
|
+
import type { RootState, AppDispatch } from './store'
|
|
79
|
+
|
|
80
|
+
export const useAppDispatch: () => AppDispatch = useDispatch
|
|
81
|
+
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
|
|
82
|
+
`
|
|
83
|
+
: `import { useDispatch, useSelector } from 'react-redux'
|
|
84
|
+
|
|
85
|
+
export const useAppDispatch = useDispatch
|
|
86
|
+
export const useAppSelector = useSelector
|
|
87
|
+
`;
|
|
88
|
+
await writeFile(path.join(ctx.projectPath, 'src/store', `hooks.${ext}`), hooksContent);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/configurators/state/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,MAAM,aAAa,GAA2C;IAC5D,OAAO,EAAE;QACP,SAAS,EAAE,QAAQ;KACpB;IACD,KAAK,EAAE;QACL,kBAAkB,EAAE,QAAQ;QAC5B,aAAa,EAAE,QAAQ;KACxB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAwB,EAAiB,EAAE;IACjF,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO;IAE5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEhC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzD,eAAe;QACf,MAAM,YAAY,GAAG;;;;;;;;;EASvB,YAAY,CAAC,CAAC,CAAC;gDAC+B,CAAC,CAAC,CAAC,EAAE;CACpD,CAAC;QACE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAEvF,uBAAuB;QACvB,MAAM,YAAY,GAAG;EACvB,YAAY,CAAC,CAAC,CAAC,8GAA8G,CAAC,CAAC,CAAC,EAAE;;oBAEhH,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;uCAcjB,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;CASnF,CAAC;QACE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAE9F,eAAe;QACf,MAAM,YAAY,GAAG,YAAY;YAC/B,CAAC,CAAC;;;;;;CAMP;YACK,CAAC,CAAC;;;;CAIP,CAAC;QACE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IACzF,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/configurators/styling/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiB3D,eAAO,MAAM,iBAAiB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAa9E,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { addDependency, getPackageJson, savePackageJson } from '../../utils/index.js';
|
|
2
|
+
const ICONS_CONFIGS = {
|
|
3
|
+
lucide: {
|
|
4
|
+
'lucide-react': '^0.474.0',
|
|
5
|
+
},
|
|
6
|
+
heroicons: {
|
|
7
|
+
'@heroicons/react': '^2.2.0',
|
|
8
|
+
},
|
|
9
|
+
fontawesome: {
|
|
10
|
+
'@fortawesome/fontawesome-svg-core': '^6.7.0',
|
|
11
|
+
'@fortawesome/free-solid-svg-icons': '^6.7.0',
|
|
12
|
+
'@fortawesome/react-fontawesome': '^0.2.2',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
export const iconsConfigurator = async (ctx) => {
|
|
16
|
+
if (ctx.selections.icons === 'none')
|
|
17
|
+
return;
|
|
18
|
+
const config = ICONS_CONFIGS[ctx.selections.icons];
|
|
19
|
+
if (!config)
|
|
20
|
+
return;
|
|
21
|
+
const pkg = await getPackageJson(ctx);
|
|
22
|
+
for (const [name, version] of Object.entries(config)) {
|
|
23
|
+
addDependency(pkg, name, version);
|
|
24
|
+
}
|
|
25
|
+
await savePackageJson(ctx, pkg);
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/configurators/styling/icons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,MAAM,aAAa,GAA2C;IAC5D,MAAM,EAAE;QACN,cAAc,EAAE,UAAU;KAC3B;IACD,SAAS,EAAE;QACT,kBAAkB,EAAE,QAAQ;KAC7B;IACD,WAAW,EAAE;QACX,mCAAmC,EAAE,QAAQ;QAC7C,mCAAmC,EAAE,QAAQ;QAC7C,gCAAgC,EAAE,QAAQ;KAC3C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAwB,EAAiB,EAAE;IACjF,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO;IAE5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configurators/styling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configurators/styling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styling.d.ts","sourceRoot":"","sources":["../../../src/configurators/styling/styling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,eAAO,MAAM,mBAAmB,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAqFhF,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { addDependency, ensureDir, getPackageJson, savePackageJson, writeFile } from '../../utils/index.js';
|
|
3
|
+
export const stylingConfigurator = async (ctx) => {
|
|
4
|
+
const pkg = await getPackageJson(ctx);
|
|
5
|
+
const { variant } = ctx.selections;
|
|
6
|
+
const isTypeScript = variant.startsWith('ts');
|
|
7
|
+
const configExt = isTypeScript ? 'ts' : 'js';
|
|
8
|
+
switch (ctx.selections.styling) {
|
|
9
|
+
case 'tailwind':
|
|
10
|
+
// Tailwind CSS v4 setup
|
|
11
|
+
addDependency(pkg, 'tailwindcss', '^4.0.0', true);
|
|
12
|
+
addDependency(pkg, '@tailwindcss/vite', '^4.0.0', true);
|
|
13
|
+
await savePackageJson(ctx, pkg);
|
|
14
|
+
// Update vite.config with @tailwindcss/vite plugin
|
|
15
|
+
// We read the existing file content or assume structure if we just created it
|
|
16
|
+
// A safer approach is to read and inject, but we know exact structure from framework.ts
|
|
17
|
+
const vitePluginImport = variant.includes('swc')
|
|
18
|
+
? "import react from '@vitejs/plugin-react-swc'"
|
|
19
|
+
: "import react from '@vitejs/plugin-react'";
|
|
20
|
+
const viteConfig = `${vitePluginImport}
|
|
21
|
+
import { defineConfig } from 'vite'
|
|
22
|
+
import tailwindcss from '@tailwindcss/vite'
|
|
23
|
+
|
|
24
|
+
export default defineConfig({
|
|
25
|
+
plugins: [
|
|
26
|
+
react(),
|
|
27
|
+
tailwindcss(),
|
|
28
|
+
],
|
|
29
|
+
})
|
|
30
|
+
`;
|
|
31
|
+
await writeFile(path.join(ctx.projectPath, `vite.config.${configExt}`), viteConfig);
|
|
32
|
+
const cssContent = `@import "tailwindcss";`;
|
|
33
|
+
await ensureDir(path.join(ctx.projectPath, 'src'));
|
|
34
|
+
await writeFile(path.join(ctx.projectPath, 'src', 'index.css'), cssContent);
|
|
35
|
+
break;
|
|
36
|
+
case 'css-modules':
|
|
37
|
+
await savePackageJson(ctx, pkg);
|
|
38
|
+
await ensureDir(path.join(ctx.projectPath, 'src'));
|
|
39
|
+
await writeFile(path.join(ctx.projectPath, 'src', 'index.css'), `/* CSS Modules - import styles from './Component.module.css' */\n:root {\n font-family: system-ui, sans-serif;\n}\n`);
|
|
40
|
+
break;
|
|
41
|
+
case 'plain-css':
|
|
42
|
+
await savePackageJson(ctx, pkg);
|
|
43
|
+
await ensureDir(path.join(ctx.projectPath, 'src'));
|
|
44
|
+
await writeFile(path.join(ctx.projectPath, 'src', 'index.css'), `/* Plain CSS */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:root {\n font-family: system-ui, -apple-system, sans-serif;\n line-height: 1.5;\n color: #213547;\n background-color: #ffffff;\n}\n`);
|
|
45
|
+
break;
|
|
46
|
+
case 'sass':
|
|
47
|
+
addDependency(pkg, 'sass', '^1.77.0', true);
|
|
48
|
+
await savePackageJson(ctx, pkg);
|
|
49
|
+
await ensureDir(path.join(ctx.projectPath, 'src'));
|
|
50
|
+
await ensureDir(path.join(ctx.projectPath, 'src', 'styles'));
|
|
51
|
+
// Create main SCSS file
|
|
52
|
+
await writeFile(path.join(ctx.projectPath, 'src', 'index.scss'), `// Import variables and mixins\n@import './styles/variables';\n@import './styles/mixins';\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:root {\n font-family: $font-family;\n line-height: 1.5;\n}\n`);
|
|
53
|
+
// Create variables file
|
|
54
|
+
await writeFile(path.join(ctx.projectPath, 'src', 'styles', '_variables.scss'), `// Colors\n$primary: #646cff;\n$secondary: #535bf2;\n$background: #ffffff;\n$text: #213547;\n\n// Typography\n$font-family: system-ui, -apple-system, sans-serif;\n$font-size-base: 16px;\n\n// Spacing\n$spacing-unit: 8px;\n`);
|
|
55
|
+
// Create mixins file
|
|
56
|
+
await writeFile(path.join(ctx.projectPath, 'src', 'styles', '_mixins.scss'), `// Responsive breakpoints\n@mixin mobile {\n @media (max-width: 768px) {\n @content;\n }\n}\n\n@mixin tablet {\n @media (max-width: 1024px) {\n @content;\n }\n}\n\n// Flexbox helpers\n@mixin flex-center {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n`);
|
|
57
|
+
break;
|
|
58
|
+
default:
|
|
59
|
+
await savePackageJson(ctx, pkg);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=styling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styling.js","sourceRoot":"","sources":["../../../src/configurators/styling/styling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/configurators/styling/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAmC3D,eAAO,MAAM,cAAc,GAAU,KAAK,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAmK3E,CAAC"}
|