create-oven 0.2.0 → 0.2.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 (2) hide show
  1. package/index.js +36 -15
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -103,13 +103,19 @@ async function main() {
103
103
 
104
104
  ${c.yellow}Options:${c.reset}
105
105
  --typescript, --ts Use TypeScript (default: true)
106
+ --no-typescript Don't use TypeScript
106
107
  --tailwind Add Tailwind CSS
108
+ --no-tailwind Don't add Tailwind CSS
107
109
  --eslint Add ESLint
110
+ --no-eslint Don't add ESLint
108
111
  --src-dir Use src/ directory
112
+ --no-src-dir Don't use src/ directory (default)
109
113
  --app Use App Router (default: true)
110
114
  --import-alias <alias> Set import alias (default: @/*)
111
115
  --use-bun Use Bun for installing dependencies
112
116
  --use-npm Use npm for installing dependencies
117
+ --no-install Skip installing dependencies
118
+ -y, --yes Use defaults without prompts
113
119
  -h, --help Show this help message
114
120
  -v, --version Show version
115
121
 
@@ -125,14 +131,14 @@ async function main() {
125
131
 
126
132
  // Show version
127
133
  if (args.includes('--version') || args.includes('-v')) {
128
- console.log('create-oven v0.2.0');
134
+ console.log('create-oven v0.2.1');
129
135
  process.exit(0);
130
136
  }
131
137
 
132
138
  console.log(`
133
139
  ${c.bold}${c.cyan} ╔═══════════════════════════════════════╗
134
140
  ║ ║
135
- ║ 🔥 Create Oven App v0.2.0
141
+ ║ 🔥 Create Oven App v0.2.1
136
142
  ║ ║
137
143
  ║ Next.js-style framework for Bun ║
138
144
  ║ ║
@@ -160,28 +166,41 @@ ${c.bold}${c.cyan} ╔═══════════════════
160
166
 
161
167
  // Parse CLI flags
162
168
  const hasFlag = (flag) => args.includes(flag);
169
+ const skipPrompts = hasFlag('--yes') || hasFlag('-y');
170
+ const noInstall = hasFlag('--no-install');
163
171
 
164
172
  // Interactive prompts (like create-next-app)
165
173
  console.log();
166
174
 
175
+ // If --yes flag, use defaults. If specific flag, use that value. Otherwise ask.
167
176
  const useTypescript = hasFlag('--typescript') || hasFlag('--ts') ||
177
+ hasFlag('--no-typescript') ? !hasFlag('--no-typescript') :
178
+ skipPrompts ? true :
168
179
  await askYesNo(rl, 'Would you like to use TypeScript?', true);
169
180
 
170
181
  const useEslint = hasFlag('--eslint') ||
182
+ hasFlag('--no-eslint') ? !hasFlag('--no-eslint') :
183
+ skipPrompts ? true :
171
184
  await askYesNo(rl, 'Would you like to use ESLint?', true);
172
185
 
173
186
  const useTailwind = hasFlag('--tailwind') ||
187
+ hasFlag('--no-tailwind') ? !hasFlag('--no-tailwind') :
188
+ skipPrompts ? true :
174
189
  await askYesNo(rl, 'Would you like to use Tailwind CSS?', true);
175
190
 
176
191
  const useSrcDir = hasFlag('--src-dir') ||
192
+ hasFlag('--no-src-dir') ? !hasFlag('--no-src-dir') :
193
+ skipPrompts ? false :
177
194
  await askYesNo(rl, 'Would you like to use `src/` directory?', false);
178
195
 
179
196
  const useAppRouter = hasFlag('--app') ||
197
+ hasFlag('--no-app') ? !hasFlag('--no-app') :
198
+ skipPrompts ? true :
180
199
  await askYesNo(rl, 'Would you like to use App Router? (recommended)', true);
181
200
 
182
201
  const importAliasArg = args.find((arg, i) => args[i - 1] === '--import-alias');
183
202
  const importAlias = importAliasArg ||
184
- await askText(rl, 'What import alias would you like configured?', '@/*');
203
+ (skipPrompts ? '@/*' : await askText(rl, 'What import alias would you like configured?', '@/*'));
185
204
 
186
205
  rl.close();
187
206
 
@@ -826,18 +845,20 @@ vercel --prod
826
845
 
827
846
  spin3.stop('Created app files');
828
847
 
829
- // Install dependencies
830
- const packageManager = hasFlag('--use-npm') ? 'npm' : 'bun';
831
- const spin4 = spinner(`Installing dependencies with ${packageManager}...`);
832
-
833
- try {
834
- execSync(`${packageManager} install`, {
835
- cwd: projectDir,
836
- stdio: 'pipe',
837
- });
838
- spin4.stop(`Installed dependencies with ${packageManager}`);
839
- } catch (e) {
840
- spin4.fail(`Failed to install dependencies. Run '${packageManager} install' manually.`);
848
+ // Install dependencies (unless --no-install)
849
+ if (!noInstall) {
850
+ const packageManager = hasFlag('--use-npm') ? 'npm' : 'bun';
851
+ const spin4 = spinner(`Installing dependencies with ${packageManager}...`);
852
+
853
+ try {
854
+ execSync(`${packageManager} install`, {
855
+ cwd: projectDir,
856
+ stdio: 'pipe',
857
+ });
858
+ spin4.stop(`Installed dependencies with ${packageManager}`);
859
+ } catch (e) {
860
+ spin4.fail(`Failed to install dependencies. Run '${packageManager} install' manually.`);
861
+ }
841
862
  }
842
863
 
843
864
  // Success message
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-oven",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Create a new Oven project - Next.js-style framework for Bun",
5
5
  "type": "module",
6
6
  "bin": {