create-velox-app 0.3.4 → 0.3.6
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/cli.js +126 -13
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +218 -82
- package/dist/index.js.map +1 -1
- package/dist/templates/auth.d.ts +9 -0
- package/dist/templates/auth.d.ts.map +1 -0
- package/dist/templates/auth.js +1143 -0
- package/dist/templates/auth.js.map +1 -0
- package/dist/templates/default.d.ts +9 -0
- package/dist/templates/default.d.ts.map +1 -0
- package/dist/{templates.js → templates/default.js} +52 -300
- package/dist/templates/default.js.map +1 -0
- package/dist/templates/index.d.ts +20 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +45 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/shared.d.ts +22 -0
- package/dist/templates/shared.d.ts.map +1 -0
- package/dist/templates/shared.js +301 -0
- package/dist/templates/shared.js.map +1 -0
- package/dist/templates/types.d.ts +91 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +78 -0
- package/dist/templates/types.js.map +1 -0
- package/package.json +2 -1
- package/dist/templates.d.ts +0 -35
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
* Handles command-line arguments and initiates the scaffolding process.
|
|
7
7
|
*/
|
|
8
8
|
import { CREATE_VERSION, createVeloxApp } from './index.js';
|
|
9
|
+
import { getAvailableTemplates, isValidTemplate, TEMPLATE_METADATA } from './templates/index.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/** Get list of available template names for error messages */
|
|
14
|
+
function getTemplateNames() {
|
|
15
|
+
return getAvailableTemplates()
|
|
16
|
+
.map((t) => t.type)
|
|
17
|
+
.join(', ');
|
|
18
|
+
}
|
|
9
19
|
// ============================================================================
|
|
10
20
|
// Help & Version
|
|
11
21
|
// ============================================================================
|
|
@@ -13,17 +23,105 @@ const HELP_TEXT = `
|
|
|
13
23
|
create-velox-app v${CREATE_VERSION}
|
|
14
24
|
|
|
15
25
|
Usage:
|
|
16
|
-
npx create-velox-app [project-name]
|
|
17
|
-
pnpm create velox-app [project-name]
|
|
26
|
+
npx create-velox-app [project-name] [options]
|
|
27
|
+
pnpm create velox-app [project-name] [options]
|
|
18
28
|
|
|
19
29
|
Options:
|
|
20
|
-
-
|
|
21
|
-
|
|
30
|
+
-t, --template <name> Template to use (default: "default")
|
|
31
|
+
Available: ${getTemplateNames()}
|
|
32
|
+
-h, --help Show this help message
|
|
33
|
+
-v, --version Show version number
|
|
34
|
+
|
|
35
|
+
Templates:
|
|
36
|
+
default ${TEMPLATE_METADATA.default.description}
|
|
37
|
+
auth ${TEMPLATE_METADATA.auth.description}
|
|
22
38
|
|
|
23
39
|
Examples:
|
|
24
|
-
npx create-velox-app my-app
|
|
25
|
-
npx create-velox-app
|
|
40
|
+
npx create-velox-app my-app # Interactive mode
|
|
41
|
+
npx create-velox-app my-app --template=auth # Auth template
|
|
42
|
+
npx create-velox-app # Prompt for name
|
|
26
43
|
`;
|
|
44
|
+
function parseArgs(args) {
|
|
45
|
+
const result = {
|
|
46
|
+
help: false,
|
|
47
|
+
version: false,
|
|
48
|
+
};
|
|
49
|
+
const unexpectedArgs = [];
|
|
50
|
+
let templateFlagSeen = false;
|
|
51
|
+
for (let i = 0; i < args.length; i++) {
|
|
52
|
+
const arg = args[i];
|
|
53
|
+
// Handle --help / -h
|
|
54
|
+
if (arg === '-h' || arg === '--help') {
|
|
55
|
+
result.help = true;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// Handle --version / -v
|
|
59
|
+
if (arg === '-v' || arg === '--version') {
|
|
60
|
+
result.version = true;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
// Handle --template=<value> or -t=<value>
|
|
64
|
+
if (arg.startsWith('--template=') || arg.startsWith('-t=')) {
|
|
65
|
+
// Check for duplicate flag
|
|
66
|
+
if (templateFlagSeen) {
|
|
67
|
+
console.error('Error: --template flag specified multiple times');
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
templateFlagSeen = true;
|
|
71
|
+
const value = arg.split('=')[1];
|
|
72
|
+
if (!value) {
|
|
73
|
+
console.error(`Error: --template requires a value. Available: ${getTemplateNames()}`);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
if (isValidTemplate(value)) {
|
|
77
|
+
result.template = value;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
console.error(`Invalid template: ${value}. Available: ${getTemplateNames()}`);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// Handle --template <value> or -t <value>
|
|
86
|
+
if (arg === '--template' || arg === '-t') {
|
|
87
|
+
// Check for duplicate flag
|
|
88
|
+
if (templateFlagSeen) {
|
|
89
|
+
console.error('Error: --template flag specified multiple times');
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
templateFlagSeen = true;
|
|
93
|
+
const value = args[i + 1];
|
|
94
|
+
if (!value || value.startsWith('-')) {
|
|
95
|
+
console.error(`Error: --template requires a value. Available: ${getTemplateNames()}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
if (isValidTemplate(value)) {
|
|
99
|
+
result.template = value;
|
|
100
|
+
i++; // Skip next arg
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.error(`Invalid template: ${value}. Available: ${getTemplateNames()}`);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
// Non-flag argument
|
|
109
|
+
if (!arg.startsWith('-')) {
|
|
110
|
+
if (!result.projectName) {
|
|
111
|
+
result.projectName = arg;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Track unexpected positional arguments
|
|
115
|
+
unexpectedArgs.push(arg);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Warn about unexpected arguments
|
|
120
|
+
if (unexpectedArgs.length > 0) {
|
|
121
|
+
console.warn(`Warning: Unexpected arguments ignored: ${unexpectedArgs.join(', ')}`);
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
27
125
|
// ============================================================================
|
|
28
126
|
// Main Entry Point
|
|
29
127
|
// ============================================================================
|
|
@@ -32,30 +130,45 @@ Examples:
|
|
|
32
130
|
*/
|
|
33
131
|
async function main() {
|
|
34
132
|
try {
|
|
35
|
-
// Get arguments
|
|
36
133
|
const args = process.argv.slice(2);
|
|
134
|
+
const parsed = parseArgs(args);
|
|
37
135
|
// Handle --help
|
|
38
|
-
if (
|
|
136
|
+
if (parsed.help) {
|
|
39
137
|
console.log(HELP_TEXT);
|
|
40
138
|
process.exit(0);
|
|
41
139
|
}
|
|
42
140
|
// Handle --version
|
|
43
|
-
if (
|
|
141
|
+
if (parsed.version) {
|
|
44
142
|
console.log(CREATE_VERSION);
|
|
45
143
|
process.exit(0);
|
|
46
144
|
}
|
|
47
|
-
// Get project name (first non-flag argument)
|
|
48
|
-
const projectName = args.find((arg) => !arg.startsWith('-'));
|
|
49
145
|
// Run scaffolder
|
|
50
|
-
await createVeloxApp(projectName);
|
|
146
|
+
await createVeloxApp(parsed.projectName, parsed.template);
|
|
51
147
|
}
|
|
52
148
|
catch (error) {
|
|
53
|
-
// Handle unexpected errors
|
|
149
|
+
// Handle unexpected errors with actionable guidance
|
|
54
150
|
if (error instanceof Error) {
|
|
55
151
|
console.error(`\nError: ${error.message}`);
|
|
152
|
+
// Provide contextual help based on error type
|
|
153
|
+
const msg = error.message.toLowerCase();
|
|
154
|
+
if (msg.includes('eacces') || msg.includes('permission')) {
|
|
155
|
+
console.error('\nTry running with appropriate permissions or choose a different directory.');
|
|
156
|
+
}
|
|
157
|
+
else if (msg.includes('enospc') || msg.includes('no space')) {
|
|
158
|
+
console.error('\nInsufficient disk space. Free up some space and try again.');
|
|
159
|
+
}
|
|
160
|
+
else if (msg.includes('enotfound') ||
|
|
161
|
+
msg.includes('network') ||
|
|
162
|
+
msg.includes('etimedout')) {
|
|
163
|
+
console.error('\nCheck your internet connection and try again.');
|
|
164
|
+
}
|
|
165
|
+
else if (msg.includes('already exists')) {
|
|
166
|
+
console.error('\nChoose a different project name or remove the existing directory.');
|
|
167
|
+
}
|
|
56
168
|
}
|
|
57
169
|
else {
|
|
58
170
|
console.error('\nAn unexpected error occurred');
|
|
171
|
+
console.error('Please report this issue at: https://github.com/veloxts/velox-ts-framework/issues');
|
|
59
172
|
}
|
|
60
173
|
process.exit(1);
|
|
61
174
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,8DAA8D;AAC9D,SAAS,gBAAgB;IACvB,OAAO,qBAAqB,EAAE;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,SAAS,GAAG;oBACE,cAAc;;;;;;;;sCAQI,gBAAgB,EAAE;;;;;eAKzC,iBAAiB,CAAC,OAAO,CAAC,WAAW;eACrC,iBAAiB,CAAC,IAAI,CAAC,WAAW;;;;;;CAMhD,CAAC;AAaF,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,MAAM,GAAe;QACzB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,qBAAqB;QACrB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,2BAA2B;YAC3B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kDAAkD,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACzC,2BAA2B;YAC3B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,kDAAkD,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,CAAC,EAAE,CAAC,CAAC,gBAAgB;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,0CAA0C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/B,gBAAgB;QAChB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iBAAiB;QACjB,MAAM,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oDAAoD;QACpD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAE3C,8CAA8C;YAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,KAAK,CACX,6EAA6E,CAC9E,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9D,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAChF,CAAC;iBAAM,IACL,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACzB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CACX,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* create-velox-app - Project scaffolding tool
|
|
3
3
|
*
|
|
4
|
-
* CLI tool for bootstrapping new VeloxTS applications with
|
|
4
|
+
* CLI tool for bootstrapping new VeloxTS applications with multiple templates.
|
|
5
5
|
* Provides an interactive setup experience similar to create-next-app.
|
|
6
6
|
*/
|
|
7
|
+
import type { TemplateType } from './templates/index.js';
|
|
7
8
|
/** Create-velox-app package version */
|
|
8
9
|
export declare const CREATE_VERSION: string;
|
|
9
10
|
/**
|
|
10
11
|
* Main scaffolding function that creates a new VeloxTS project
|
|
11
12
|
*/
|
|
12
|
-
export declare function createVeloxApp(initialProjectName?: string): Promise<void>;
|
|
13
|
+
export declare function createVeloxApp(initialProjectName?: string, initialTemplate?: TemplateType): Promise<void>;
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,EAAgC,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAiBvF,uCAAuC;AACvC,eAAO,MAAM,cAAc,EAAE,MAA+C,CAAC;AAkD7E;;GAEG;AACH,wBAAsB,cAAc,CAClC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,YAAY,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|