create-asterui 0.1.2 → 0.1.3

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 (2) hide show
  1. package/dist/index.js +29 -5
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -140,6 +140,15 @@ async function main() {
140
140
  .map((pm) => ({ value: pm, label: pm })),
141
141
  ],
142
142
  }),
143
+ optionalDeps: () => p.multiselect({
144
+ message: 'Optional components (require extra dependencies)',
145
+ options: [
146
+ { value: 'chart', label: 'Chart', hint: 'apexcharts' },
147
+ { value: 'qrcode', label: 'QRCode', hint: 'qrcode' },
148
+ { value: 'virtuallist', label: 'VirtualList', hint: '@tanstack/react-virtual' },
149
+ ],
150
+ required: false,
151
+ }),
143
152
  }, {
144
153
  onCancel: () => {
145
154
  p.cancel('Operation cancelled.');
@@ -156,7 +165,7 @@ async function main() {
156
165
  // Copy template files
157
166
  copyDir(templateDir, projectDir);
158
167
  // Generate package.json
159
- const packageJson = generatePackageJson(options.projectName, options.language);
168
+ const packageJson = generatePackageJson(options.projectName, options.language, options.optionalDeps);
160
169
  fs.writeFileSync(path.join(projectDir, 'package.json'), JSON.stringify(packageJson, null, 2));
161
170
  // Generate index.css with theme config
162
171
  const themes = getThemes(options.themePreset, options.customThemes);
@@ -199,7 +208,7 @@ function copyDir(src, dest) {
199
208
  }
200
209
  }
201
210
  }
202
- function generatePackageJson(name, language) {
211
+ function generatePackageJson(name, language, optionalDeps = []) {
203
212
  const isTs = language === 'ts';
204
213
  const pkg = {
205
214
  name,
@@ -225,10 +234,25 @@ function generatePackageJson(name, language) {
225
234
  vite: '^7.0.0',
226
235
  },
227
236
  };
237
+ // Add optional dependencies
238
+ const deps = pkg.dependencies;
239
+ if (optionalDeps.includes('chart')) {
240
+ deps['apexcharts'] = '^5.0.0';
241
+ }
242
+ if (optionalDeps.includes('qrcode')) {
243
+ deps['qrcode'] = '^1.5.0';
244
+ }
245
+ if (optionalDeps.includes('virtuallist')) {
246
+ deps['@tanstack/react-virtual'] = '^3.0.0';
247
+ }
228
248
  if (isTs) {
229
- pkg.devDependencies['typescript'] = '^5.6.0';
230
- pkg.devDependencies['@types/react'] = '^19.0.0';
231
- pkg.devDependencies['@types/react-dom'] = '^19.0.0';
249
+ const devDeps = pkg.devDependencies;
250
+ devDeps['typescript'] = '^5.6.0';
251
+ devDeps['@types/react'] = '^19.0.0';
252
+ devDeps['@types/react-dom'] = '^19.0.0';
253
+ if (optionalDeps.includes('qrcode')) {
254
+ devDeps['@types/qrcode'] = '^1.5.0';
255
+ }
232
256
  }
233
257
  return pkg;
234
258
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-asterui",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Create a new AsterUI project",
5
5
  "type": "module",
6
6
  "bin": {