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/LICENSE +21 -0
- package/README.md +366 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +65 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +263 -0
- package/dist/index.js.map +1 -0
- package/dist/templates.d.ts +29 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +597 -0
- package/dist/templates.js.map +1 -0
- package/package.json +55 -0
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAYtC,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,kBAA2B;IAC9D,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAE7D,2CAA2C;QAC3C,MAAM,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAErC,uBAAuB;QACvB,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAElC,iBAAiB;QACjB,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAE5B,wBAAwB;QACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE5B,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sBAAsB;QACtB,IAAI,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAK,KAAe,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACpF,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sBAAsB;QACtB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,WAAoB;IACrD,eAAe;IACf,MAAM,IAAI,GAAG,WAAW;QACtB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,6BAA6B;YACtC,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK;oBAAE,OAAO,0BAA0B,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,kDAAkD,CAAC;gBAC5D,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;IAEP,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IAED,yBAAyB;IACzB,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,IAAc;QACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAc,CAAC;QACtD,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAE1D,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,SAAiB;IACvD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iDAAiD;QACjD,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CAAC,MAAqB;IACzD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3E,gBAAgB;QAChB,MAAM,QAAQ,GAAoB;YAChC,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC;QAEF,mBAAmB;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACrF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACxF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACtF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC9E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1F,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EACtD,oBAAoB,EAAE,CACvB,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAE5F,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;QAEtF,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EACxD,mBAAmB,EAAE,CACtB,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEhG,uBAAuB;QACvB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAC1D,qBAAqB,EAAE,CACxB,CAAC;QAEF,wBAAwB;QACxB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAC5D,uBAAuB,EAAE,CAC1B,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAC7D,wBAAwB,EAAE,CAC3B,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAC5D,sBAAsB,EAAE,CACzB,CAAC;QAEF,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EACzD,oBAAoB,EAAE,CACvB,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EACxD,kBAAkB,EAAE,CACrB,CAAC;QAEF,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAE7F,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAqB;IACtD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEhE,QAAQ,CAAC,cAAc,EAAE;YACvB,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,cAAsB;IAC/C,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,cAAc,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,MAAqB;IAChD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,QAAQ,CAAC,UAAU,EAAE;YACnB,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,QAAQ,CAAC,WAAW,EAAE;YACpB,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,QAAQ,CAAC,sDAAsD,EAAE;YAC/D,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,uDAAuD;QACvD,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAqB;IAChD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,cAAc,MAAM,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,cAAc,UAAU,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -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"}
|