create-velox-app 0.1.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/dist/index.js ADDED
@@ -0,0 +1,263 @@
1
+ /**
2
+ * create-velox-app - Project scaffolding tool
3
+ *
4
+ * CLI tool for bootstrapping new VeloxTS applications with a default template.
5
+ * Provides an interactive setup experience similar to create-next-app.
6
+ */
7
+ import { execSync } from 'node:child_process';
8
+ import fs from 'node:fs/promises';
9
+ import path from 'node:path';
10
+ import * as p from '@clack/prompts';
11
+ import pc from 'picocolors';
12
+ import { generateConfigApp, generateConfigIndex, generateDatabaseIndex, generateEnvExample, generateGitignore, generateHealthProcedures, generateIndexHtml, generateIndexTs, generatePackageJson, generatePrismaConfig, generatePrismaSchema, generateProceduresIndex, generateReadme, generateSchemasIndex, generateTsConfig, generateTsupConfig, generateUserProcedures, generateUserSchema, } from './templates.js';
13
+ // ============================================================================
14
+ // Constants
15
+ // ============================================================================
16
+ export const CREATE_VERSION = '0.1.0';
17
+ // ============================================================================
18
+ // Main Scaffolder
19
+ // ============================================================================
20
+ /**
21
+ * Main scaffolding function that creates a new VeloxTS project
22
+ */
23
+ export async function createVeloxApp(initialProjectName) {
24
+ // Print welcome banner
25
+ console.log('');
26
+ p.intro(pc.cyan(pc.bold('create-velox-app')));
27
+ try {
28
+ // Collect project configuration
29
+ const config = await promptProjectConfig(initialProjectName);
30
+ // Validate project directory doesn't exist
31
+ await validateProjectDirectory(config.directory);
32
+ // Create project structure
33
+ await createProjectStructure(config);
34
+ // Install dependencies
35
+ await installDependencies(config);
36
+ // Initialize git
37
+ await initializeGit(config);
38
+ // Print success message
39
+ printSuccessMessage(config);
40
+ p.outro(pc.green('Done! Your VeloxTS app is ready.'));
41
+ }
42
+ catch (error) {
43
+ // Handle cancellation
44
+ if (error === Symbol.for('clack.cancel') || error.message === 'canceled') {
45
+ p.cancel('Setup cancelled');
46
+ process.exit(0);
47
+ }
48
+ // Handle other errors
49
+ p.cancel('Setup failed');
50
+ if (error instanceof Error) {
51
+ console.error(pc.red(`\nError: ${error.message}`));
52
+ }
53
+ process.exit(1);
54
+ }
55
+ }
56
+ // ============================================================================
57
+ // Configuration Prompts
58
+ // ============================================================================
59
+ /**
60
+ * Prompt user for project configuration
61
+ */
62
+ async function promptProjectConfig(initialName) {
63
+ // Project name
64
+ const name = initialName
65
+ ? initialName
66
+ : await p.text({
67
+ message: 'What is your project named?',
68
+ placeholder: 'my-velox-app',
69
+ validate: (value) => {
70
+ if (!value)
71
+ return 'Project name is required';
72
+ if (!/^[a-z0-9-]+$/.test(value)) {
73
+ return 'Use lowercase letters, numbers, and hyphens only';
74
+ }
75
+ return undefined;
76
+ },
77
+ });
78
+ if (p.isCancel(name)) {
79
+ throw new Error('canceled');
80
+ }
81
+ // Validate project name format
82
+ if (typeof name === 'string' && !/^[a-z0-9-]+$/.test(name)) {
83
+ throw new Error('Project name must use lowercase letters, numbers, and hyphens only');
84
+ }
85
+ // Detect package manager
86
+ const packageManager = detectPackageManager();
87
+ return {
88
+ name: name,
89
+ directory: path.resolve(process.cwd(), name),
90
+ packageManager,
91
+ };
92
+ }
93
+ /**
94
+ * Detect which package manager is being used
95
+ */
96
+ function detectPackageManager() {
97
+ const userAgent = process.env.npm_config_user_agent || '';
98
+ if (userAgent.includes('pnpm'))
99
+ return 'pnpm';
100
+ if (userAgent.includes('yarn'))
101
+ return 'yarn';
102
+ return 'npm';
103
+ }
104
+ // ============================================================================
105
+ // Project Creation
106
+ // ============================================================================
107
+ /**
108
+ * Validate that project directory doesn't already exist
109
+ */
110
+ async function validateProjectDirectory(directory) {
111
+ try {
112
+ await fs.access(directory);
113
+ throw new Error(`Directory ${path.basename(directory)} already exists`);
114
+ }
115
+ catch (error) {
116
+ // Directory doesn't exist - this is what we want
117
+ if (error.code !== 'ENOENT') {
118
+ throw error;
119
+ }
120
+ }
121
+ }
122
+ /**
123
+ * Create the complete project structure with all files
124
+ */
125
+ async function createProjectStructure(config) {
126
+ const spinner = p.spinner();
127
+ spinner.start('Creating project files');
128
+ try {
129
+ // Create directory structure
130
+ await fs.mkdir(config.directory, { recursive: true });
131
+ await fs.mkdir(path.join(config.directory, 'src'), { recursive: true });
132
+ await fs.mkdir(path.join(config.directory, 'src', 'config'), { recursive: true });
133
+ await fs.mkdir(path.join(config.directory, 'src', 'database'), { recursive: true });
134
+ await fs.mkdir(path.join(config.directory, 'src', 'procedures'), { recursive: true });
135
+ await fs.mkdir(path.join(config.directory, 'src', 'schemas'), { recursive: true });
136
+ await fs.mkdir(path.join(config.directory, 'prisma'), { recursive: true });
137
+ await fs.mkdir(path.join(config.directory, 'public'), { recursive: true });
138
+ // Template data
139
+ const template = {
140
+ projectName: config.name,
141
+ packageManager: config.packageManager,
142
+ };
143
+ // Write root files
144
+ await fs.writeFile(path.join(config.directory, 'package.json'), generatePackageJson(template));
145
+ await fs.writeFile(path.join(config.directory, 'tsconfig.json'), generateTsConfig());
146
+ await fs.writeFile(path.join(config.directory, 'tsup.config.ts'), generateTsupConfig());
147
+ await fs.writeFile(path.join(config.directory, '.env.example'), generateEnvExample());
148
+ await fs.writeFile(path.join(config.directory, '.env'), generateEnvExample());
149
+ await fs.writeFile(path.join(config.directory, '.gitignore'), generateGitignore());
150
+ await fs.writeFile(path.join(config.directory, 'README.md'), generateReadme(config.name));
151
+ // Write Prisma files
152
+ await fs.writeFile(path.join(config.directory, 'prisma', 'schema.prisma'), generatePrismaSchema());
153
+ await fs.writeFile(path.join(config.directory, 'prisma.config.ts'), generatePrismaConfig());
154
+ // Write source files
155
+ await fs.writeFile(path.join(config.directory, 'src', 'index.ts'), generateIndexTs());
156
+ // Write config files
157
+ await fs.writeFile(path.join(config.directory, 'src', 'config', 'index.ts'), generateConfigIndex());
158
+ await fs.writeFile(path.join(config.directory, 'src', 'config', 'app.ts'), generateConfigApp());
159
+ // Write database files
160
+ await fs.writeFile(path.join(config.directory, 'src', 'database', 'index.ts'), generateDatabaseIndex());
161
+ // Write procedure files
162
+ await fs.writeFile(path.join(config.directory, 'src', 'procedures', 'index.ts'), generateProceduresIndex());
163
+ await fs.writeFile(path.join(config.directory, 'src', 'procedures', 'health.ts'), generateHealthProcedures());
164
+ await fs.writeFile(path.join(config.directory, 'src', 'procedures', 'users.ts'), generateUserProcedures());
165
+ // Write schema files
166
+ await fs.writeFile(path.join(config.directory, 'src', 'schemas', 'index.ts'), generateSchemasIndex());
167
+ await fs.writeFile(path.join(config.directory, 'src', 'schemas', 'user.ts'), generateUserSchema());
168
+ // Write public files
169
+ await fs.writeFile(path.join(config.directory, 'public', 'index.html'), generateIndexHtml());
170
+ spinner.stop('Project files created');
171
+ }
172
+ catch (error) {
173
+ spinner.stop('Failed to create project files');
174
+ throw error;
175
+ }
176
+ }
177
+ // ============================================================================
178
+ // Dependency Installation
179
+ // ============================================================================
180
+ /**
181
+ * Install project dependencies using the detected package manager
182
+ */
183
+ async function installDependencies(config) {
184
+ const spinner = p.spinner();
185
+ spinner.start('Installing dependencies');
186
+ try {
187
+ const installCommand = getInstallCommand(config.packageManager);
188
+ execSync(installCommand, {
189
+ cwd: config.directory,
190
+ stdio: 'ignore',
191
+ });
192
+ spinner.stop('Dependencies installed');
193
+ }
194
+ catch (error) {
195
+ spinner.stop('Failed to install dependencies');
196
+ throw error;
197
+ }
198
+ }
199
+ /**
200
+ * Get the install command for the package manager
201
+ */
202
+ function getInstallCommand(packageManager) {
203
+ switch (packageManager) {
204
+ case 'pnpm':
205
+ return 'pnpm install';
206
+ case 'yarn':
207
+ return 'yarn install';
208
+ default:
209
+ return 'npm install';
210
+ }
211
+ }
212
+ // ============================================================================
213
+ // Git Initialization
214
+ // ============================================================================
215
+ /**
216
+ * Initialize git repository
217
+ */
218
+ async function initializeGit(config) {
219
+ const spinner = p.spinner();
220
+ spinner.start('Initializing git repository');
221
+ try {
222
+ execSync('git init', {
223
+ cwd: config.directory,
224
+ stdio: 'ignore',
225
+ });
226
+ execSync('git add .', {
227
+ cwd: config.directory,
228
+ stdio: 'ignore',
229
+ });
230
+ execSync('git commit -m "Initial commit from create-velox-app"', {
231
+ cwd: config.directory,
232
+ stdio: 'ignore',
233
+ });
234
+ spinner.stop('Git repository initialized');
235
+ }
236
+ catch (_error) {
237
+ // Git init is optional - don't fail if it doesn't work
238
+ spinner.stop('Skipped git initialization');
239
+ }
240
+ }
241
+ // ============================================================================
242
+ // Success Message
243
+ // ============================================================================
244
+ /**
245
+ * Print success message with next steps
246
+ */
247
+ function printSuccessMessage(config) {
248
+ const cdCommand = `cd ${config.name}`;
249
+ const devCommand = `${config.packageManager} dev`;
250
+ const dbCommand = `${config.packageManager} db:push`;
251
+ console.log('');
252
+ console.log(pc.green(` Success! Created ${pc.bold(config.name)}`));
253
+ console.log('');
254
+ console.log(' Next steps:');
255
+ console.log('');
256
+ console.log(` ${pc.cyan(cdCommand)}`);
257
+ console.log(` ${pc.cyan(dbCommand)}${pc.dim(' # Setup database')}`);
258
+ console.log(` ${pc.cyan(devCommand)}${pc.dim(' # Start dev server')}`);
259
+ console.log('');
260
+ console.log(` Your app will be available at ${pc.cyan('http://localhost:3210')}`);
261
+ console.log('');
262
+ }
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Template Generation Functions
3
+ *
4
+ * Generates all files needed for a new VeloxTS project.
5
+ * Templates are based on the playground app structure.
6
+ */
7
+ export interface ProjectTemplate {
8
+ projectName: string;
9
+ packageManager: 'npm' | 'pnpm' | 'yarn';
10
+ }
11
+ export declare function generatePackageJson(template: ProjectTemplate): string;
12
+ export declare function generateTsConfig(): string;
13
+ export declare function generateTsupConfig(): string;
14
+ export declare function generateEnvExample(): string;
15
+ export declare function generateGitignore(): string;
16
+ export declare function generatePrismaSchema(): string;
17
+ export declare function generatePrismaConfig(): string;
18
+ export declare function generateIndexTs(): string;
19
+ export declare function generateConfigIndex(): string;
20
+ export declare function generateConfigApp(): string;
21
+ export declare function generateDatabaseIndex(): string;
22
+ export declare function generateProceduresIndex(): string;
23
+ export declare function generateHealthProcedures(): string;
24
+ export declare function generateUserProcedures(): string;
25
+ export declare function generateSchemasIndex(): string;
26
+ export declare function generateUserSchema(): string;
27
+ export declare function generateIndexHtml(): string;
28
+ export declare function generateReadme(projectName: string): string;
29
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACzC;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAuCrE;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CA8BzC;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,CAe3C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAoC1C;AAMD,wBAAgB,oBAAoB,IAAI,MAAM,CA8B7C;AAMD,wBAAgB,oBAAoB,IAAI,MAAM,CAmB7C;AAMD,wBAAgB,eAAe,IAAI,MAAM,CAiFxC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAO5C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAyB1C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAkB9C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAQhD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CA4BjD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CA4F/C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAyB3C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CA8B1C;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAyD1D"}