@tachui/cli 0.7.0-alpha1
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 +363 -0
- package/bin/tacho.js +10 -0
- package/dist/commands/analyze.d.ts +8 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +337 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/dev.d.ts +8 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +171 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/generate.d.ts +8 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +716 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +734 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/migrate.d.ts +8 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +335 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/optimize.d.ts +8 -0
- package/dist/commands/optimize.d.ts.map +1 -0
- package/dist/commands/optimize.js +357 -0
- package/dist/commands/optimize.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tacho CLI - Analyze Command
|
|
3
|
+
*
|
|
4
|
+
* Code analysis and performance insights for TachUI applications
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
7
|
+
import { resolve } from 'node:path';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { glob } from 'glob';
|
|
11
|
+
import ora from 'ora';
|
|
12
|
+
function analyzeFile(filePath, content) {
|
|
13
|
+
const lines = content.split('\n');
|
|
14
|
+
const analysis = {
|
|
15
|
+
file: filePath,
|
|
16
|
+
lines: lines.length,
|
|
17
|
+
size: Buffer.byteLength(content, 'utf8'),
|
|
18
|
+
hasState: false,
|
|
19
|
+
hasModifiers: false,
|
|
20
|
+
hasLifecycle: false,
|
|
21
|
+
hasNavigation: false,
|
|
22
|
+
imports: [],
|
|
23
|
+
exports: [],
|
|
24
|
+
components: [],
|
|
25
|
+
stateUsage: [],
|
|
26
|
+
modifierUsage: [],
|
|
27
|
+
layoutUsage: [],
|
|
28
|
+
lifecycleUsage: [],
|
|
29
|
+
navigationUsage: [],
|
|
30
|
+
complexity: 0,
|
|
31
|
+
};
|
|
32
|
+
// Analyze imports
|
|
33
|
+
const importMatches = content.match(/import.*from ['"]@tachui\/core['"]/g) || [];
|
|
34
|
+
analysis.imports = importMatches;
|
|
35
|
+
// Analyze state usage
|
|
36
|
+
if (content.includes('State(') ||
|
|
37
|
+
content.includes('ObservedObject(') ||
|
|
38
|
+
content.includes('EnvironmentObject(')) {
|
|
39
|
+
analysis.hasState = true;
|
|
40
|
+
const stateMatches = content.match(/const \w+ = State\([^)]*\)/g) || [];
|
|
41
|
+
analysis.stateUsage.push(...stateMatches);
|
|
42
|
+
}
|
|
43
|
+
// Analyze modifier usage
|
|
44
|
+
if (content.includes('.modifier')) {
|
|
45
|
+
analysis.hasModifiers = true;
|
|
46
|
+
const modifierChains = content.match(/\.modifier[\s\S]*?\.build\(\)/g) || [];
|
|
47
|
+
analysis.modifierUsage = modifierChains.map((chain) => chain
|
|
48
|
+
.split('.')
|
|
49
|
+
.filter((part) => part.trim() && !part.includes('modifier') && !part.includes('build()'))
|
|
50
|
+
.join('.'));
|
|
51
|
+
}
|
|
52
|
+
// Analyze layout usage
|
|
53
|
+
const layoutMatches = content.match(/Layout\.(VStack|HStack|ZStack)/g) || [];
|
|
54
|
+
analysis.layoutUsage = [...new Set(layoutMatches)];
|
|
55
|
+
if (layoutMatches.length > 0) {
|
|
56
|
+
analysis.complexity += layoutMatches.length;
|
|
57
|
+
}
|
|
58
|
+
// Analyze lifecycle usage
|
|
59
|
+
const lifecycleModifiers = ['onAppear', 'onDisappear', 'task', 'refreshable'];
|
|
60
|
+
lifecycleModifiers.forEach((modifier) => {
|
|
61
|
+
if (content.includes(`.${modifier}(`)) {
|
|
62
|
+
analysis.hasLifecycle = true;
|
|
63
|
+
analysis.lifecycleUsage.push(modifier);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
// Analyze navigation usage
|
|
67
|
+
const navigationComponents = ['NavigationView', 'NavigationLink', 'TabView', 'useNavigation'];
|
|
68
|
+
navigationComponents.forEach((component) => {
|
|
69
|
+
if (content.includes(component)) {
|
|
70
|
+
analysis.hasNavigation = true;
|
|
71
|
+
analysis.navigationUsage.push(component);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// Find component definitions
|
|
75
|
+
const componentMatches = content.match(/export function (\w+)\(/g) || [];
|
|
76
|
+
analysis.components = componentMatches.map((match) => match.replace('export function ', '').replace('(', ''));
|
|
77
|
+
// Calculate complexity score
|
|
78
|
+
analysis.complexity += (content.match(/if\s*\(/g) || []).length * 2;
|
|
79
|
+
analysis.complexity += (content.match(/for\s*\(/g) || []).length * 2;
|
|
80
|
+
analysis.complexity += (content.match(/while\s*\(/g) || []).length * 2;
|
|
81
|
+
analysis.complexity += (content.match(/switch\s*\(/g) || []).length * 3;
|
|
82
|
+
analysis.complexity += (content.match(/\.map\(/g) || []).length;
|
|
83
|
+
analysis.complexity += (content.match(/\.filter\(/g) || []).length;
|
|
84
|
+
analysis.complexity += analysis.modifierUsage.length * 0.5;
|
|
85
|
+
return analysis;
|
|
86
|
+
}
|
|
87
|
+
function generateSuggestions(results) {
|
|
88
|
+
const suggestions = [];
|
|
89
|
+
// State management suggestions
|
|
90
|
+
if (results.components.withState < results.components.total * 0.3) {
|
|
91
|
+
suggestions.push('Consider using @State for more reactive components');
|
|
92
|
+
}
|
|
93
|
+
// Modifier usage suggestions
|
|
94
|
+
if (results.components.withModifiers < results.components.total * 0.7) {
|
|
95
|
+
suggestions.push('Use TachUI modifiers for consistent styling (.modifier.padding(), .foregroundColor())');
|
|
96
|
+
}
|
|
97
|
+
// Lifecycle suggestions
|
|
98
|
+
if (results.components.withLifecycle < results.components.total * 0.2) {
|
|
99
|
+
suggestions.push('Consider using lifecycle modifiers (onAppear, task) for better component behavior');
|
|
100
|
+
}
|
|
101
|
+
// Performance suggestions
|
|
102
|
+
if (results.performance.largeComponents.length > 0) {
|
|
103
|
+
suggestions.push(`Break down large components (${results.performance.largeComponents.length} components >200 lines)`);
|
|
104
|
+
}
|
|
105
|
+
if (results.performance.complexComponents.length > 0) {
|
|
106
|
+
suggestions.push(`Simplify complex components (${results.performance.complexComponents.length} components with high complexity)`);
|
|
107
|
+
}
|
|
108
|
+
// Pattern suggestions
|
|
109
|
+
const hasNavigation = results.patterns.navigationUsage.length > 0;
|
|
110
|
+
if (!hasNavigation && results.components.total > 3) {
|
|
111
|
+
suggestions.push('Consider adding navigation (NavigationView, TabView) for better user experience');
|
|
112
|
+
}
|
|
113
|
+
// Layout suggestions
|
|
114
|
+
const layoutTypes = new Set(results.patterns.layoutUsage.map((usage) => usage.split('.')[1]));
|
|
115
|
+
if (layoutTypes.size === 1 && layoutTypes.has('VStack')) {
|
|
116
|
+
suggestions.push('Consider using HStack or ZStack for more dynamic layouts');
|
|
117
|
+
}
|
|
118
|
+
return suggestions;
|
|
119
|
+
}
|
|
120
|
+
export const analyzeCommand = new Command('analyze')
|
|
121
|
+
.description('Analyze TachUI codebase for patterns and performance')
|
|
122
|
+
.option('-p, --pattern <pattern>', 'File pattern to analyze', 'src/**/*.{js,jsx,ts,tsx}')
|
|
123
|
+
.option('-o, --output <file>', 'Output report to file')
|
|
124
|
+
.option('--performance', 'Include performance analysis', true)
|
|
125
|
+
.option('--suggestions', 'Include improvement suggestions', true)
|
|
126
|
+
.option('--detailed', 'Show detailed component analysis', false)
|
|
127
|
+
.action(async (options) => {
|
|
128
|
+
try {
|
|
129
|
+
console.log(chalk.cyan(`
|
|
130
|
+
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®
|
|
131
|
+
ā š TachUI Code Analyzer ā
|
|
132
|
+
ā Pattern analysis & metrics ā
|
|
133
|
+
ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ
|
|
134
|
+
`));
|
|
135
|
+
const spinner = ora('Analyzing codebase...').start();
|
|
136
|
+
// Find files to analyze
|
|
137
|
+
const files = await glob(options.pattern, {
|
|
138
|
+
cwd: process.cwd(),
|
|
139
|
+
absolute: true,
|
|
140
|
+
});
|
|
141
|
+
if (files.length === 0) {
|
|
142
|
+
spinner.fail('No files found matching pattern');
|
|
143
|
+
console.log(chalk.yellow(`Pattern: ${options.pattern}`));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const fileAnalyses = [];
|
|
147
|
+
const results = {
|
|
148
|
+
files: {
|
|
149
|
+
total: 0,
|
|
150
|
+
byType: {},
|
|
151
|
+
totalSize: 0,
|
|
152
|
+
averageSize: 0,
|
|
153
|
+
},
|
|
154
|
+
components: {
|
|
155
|
+
total: 0,
|
|
156
|
+
withState: 0,
|
|
157
|
+
withModifiers: 0,
|
|
158
|
+
withLifecycle: 0,
|
|
159
|
+
withNavigation: 0,
|
|
160
|
+
},
|
|
161
|
+
patterns: {
|
|
162
|
+
stateUsage: [],
|
|
163
|
+
modifierUsage: [],
|
|
164
|
+
layoutUsage: [],
|
|
165
|
+
lifecycleUsage: [],
|
|
166
|
+
navigationUsage: [],
|
|
167
|
+
},
|
|
168
|
+
performance: {
|
|
169
|
+
largeComponents: [],
|
|
170
|
+
complexComponents: [],
|
|
171
|
+
unusedImports: [],
|
|
172
|
+
},
|
|
173
|
+
suggestions: [],
|
|
174
|
+
};
|
|
175
|
+
// Analyze each file
|
|
176
|
+
for (const file of files) {
|
|
177
|
+
try {
|
|
178
|
+
const content = readFileSync(file, 'utf-8');
|
|
179
|
+
const stats = statSync(file);
|
|
180
|
+
const ext = file.split('.').pop() || 'unknown';
|
|
181
|
+
const analysis = analyzeFile(file, content);
|
|
182
|
+
fileAnalyses.push(analysis);
|
|
183
|
+
// Update file stats
|
|
184
|
+
results.files.total++;
|
|
185
|
+
results.files.byType[ext] = (results.files.byType[ext] || 0) + 1;
|
|
186
|
+
results.files.totalSize += stats.size;
|
|
187
|
+
// Update component stats
|
|
188
|
+
results.components.total += analysis.components.length;
|
|
189
|
+
if (analysis.hasState)
|
|
190
|
+
results.components.withState++;
|
|
191
|
+
if (analysis.hasModifiers)
|
|
192
|
+
results.components.withModifiers++;
|
|
193
|
+
if (analysis.hasLifecycle)
|
|
194
|
+
results.components.withLifecycle++;
|
|
195
|
+
if (analysis.hasNavigation)
|
|
196
|
+
results.components.withNavigation++;
|
|
197
|
+
// Collect patterns
|
|
198
|
+
results.patterns.stateUsage.push(...analysis.stateUsage);
|
|
199
|
+
results.patterns.modifierUsage.push(...analysis.modifierUsage);
|
|
200
|
+
results.patterns.layoutUsage.push(...analysis.layoutUsage);
|
|
201
|
+
results.patterns.lifecycleUsage.push(...analysis.lifecycleUsage);
|
|
202
|
+
results.patterns.navigationUsage.push(...analysis.navigationUsage);
|
|
203
|
+
// Performance analysis
|
|
204
|
+
if (analysis.lines > 200) {
|
|
205
|
+
results.performance.largeComponents.push({
|
|
206
|
+
file: file.split('/').pop() || file,
|
|
207
|
+
lines: analysis.lines,
|
|
208
|
+
size: analysis.size,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (analysis.complexity > 20) {
|
|
212
|
+
results.performance.complexComponents.push({
|
|
213
|
+
file: file.split('/').pop() || file,
|
|
214
|
+
complexity: analysis.complexity,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (_error) {
|
|
219
|
+
// Skip files that can't be read
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
results.files.averageSize = results.files.totalSize / results.files.total;
|
|
223
|
+
// Generate suggestions
|
|
224
|
+
if (options.suggestions) {
|
|
225
|
+
results.suggestions = generateSuggestions(results);
|
|
226
|
+
}
|
|
227
|
+
spinner.succeed('Code analysis complete!');
|
|
228
|
+
// Display results
|
|
229
|
+
console.log(`\n${chalk.green('š Analysis Results')}`);
|
|
230
|
+
console.log(chalk.gray('ā'.repeat(40)));
|
|
231
|
+
// File statistics
|
|
232
|
+
console.log(`\n${chalk.yellow('š File Statistics:')}`);
|
|
233
|
+
console.log(`${chalk.gray('Total files:')} ${results.files.total}`);
|
|
234
|
+
console.log(`${chalk.gray('Total size:')} ${(results.files.totalSize / 1024).toFixed(1)} KB`);
|
|
235
|
+
console.log(`${chalk.gray('Average size:')} ${(results.files.averageSize / 1024).toFixed(1)} KB`);
|
|
236
|
+
console.log(`\n${chalk.gray('File types:')}`);
|
|
237
|
+
Object.entries(results.files.byType).forEach(([type, count]) => {
|
|
238
|
+
console.log(` ${type}: ${count}`);
|
|
239
|
+
});
|
|
240
|
+
// Component statistics
|
|
241
|
+
console.log(`\n${chalk.yellow('š§© Component Statistics:')}`);
|
|
242
|
+
console.log(`${chalk.gray('Total components:')} ${results.components.total}`);
|
|
243
|
+
console.log(`${chalk.gray('With @State:')} ${results.components.withState} (${((results.components.withState / results.files.total) * 100).toFixed(1)}%)`);
|
|
244
|
+
console.log(`${chalk.gray('With modifiers:')} ${results.components.withModifiers} (${((results.components.withModifiers / results.files.total) * 100).toFixed(1)}%)`);
|
|
245
|
+
console.log(`${chalk.gray('With lifecycle:')} ${results.components.withLifecycle} (${((results.components.withLifecycle / results.files.total) * 100).toFixed(1)}%)`);
|
|
246
|
+
console.log(`${chalk.gray('With navigation:')} ${results.components.withNavigation} (${((results.components.withNavigation / results.files.total) * 100).toFixed(1)}%)`);
|
|
247
|
+
// Pattern usage
|
|
248
|
+
console.log(`\n${chalk.yellow('šØ Pattern Usage:')}`);
|
|
249
|
+
const topModifiers = [...new Set(results.patterns.modifierUsage.flat())].slice(0, 5);
|
|
250
|
+
if (topModifiers.length > 0) {
|
|
251
|
+
console.log(`${chalk.gray('Top modifiers:')} ${topModifiers.join(', ')}`);
|
|
252
|
+
}
|
|
253
|
+
const layoutTypes = [...new Set(results.patterns.layoutUsage)];
|
|
254
|
+
if (layoutTypes.length > 0) {
|
|
255
|
+
console.log(`${chalk.gray('Layout types:')} ${layoutTypes.join(', ')}`);
|
|
256
|
+
}
|
|
257
|
+
const lifecycleTypes = [...new Set(results.patterns.lifecycleUsage)];
|
|
258
|
+
if (lifecycleTypes.length > 0) {
|
|
259
|
+
console.log(`${chalk.gray('Lifecycle modifiers:')} ${lifecycleTypes.join(', ')}`);
|
|
260
|
+
}
|
|
261
|
+
// Performance insights
|
|
262
|
+
if (options.performance) {
|
|
263
|
+
console.log(`\n${chalk.yellow('ā” Performance Insights:')}`);
|
|
264
|
+
if (results.performance.largeComponents.length > 0) {
|
|
265
|
+
console.log(`${chalk.red('Large components:')} ${results.performance.largeComponents.length}`);
|
|
266
|
+
results.performance.largeComponents.slice(0, 3).forEach((comp) => {
|
|
267
|
+
console.log(` ${comp.file}: ${comp.lines} lines`);
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
if (results.performance.complexComponents.length > 0) {
|
|
271
|
+
console.log(`${chalk.red('Complex components:')} ${results.performance.complexComponents.length}`);
|
|
272
|
+
results.performance.complexComponents.slice(0, 3).forEach((comp) => {
|
|
273
|
+
console.log(` ${comp.file}: complexity ${comp.complexity}`);
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
if (results.performance.largeComponents.length === 0 &&
|
|
277
|
+
results.performance.complexComponents.length === 0) {
|
|
278
|
+
console.log(chalk.green('ā
No performance issues detected'));
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Suggestions
|
|
282
|
+
if (options.suggestions && results.suggestions.length > 0) {
|
|
283
|
+
console.log(`\n${chalk.yellow('š” Improvement Suggestions:')}`);
|
|
284
|
+
results.suggestions.forEach((suggestion, index) => {
|
|
285
|
+
console.log(`${chalk.gray(`${index + 1}.`)} ${suggestion}`);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
// Detailed analysis
|
|
289
|
+
if (options.detailed && fileAnalyses.length > 0) {
|
|
290
|
+
console.log(`\n${chalk.yellow('š Detailed Component Analysis:')}`);
|
|
291
|
+
fileAnalyses
|
|
292
|
+
.filter((analysis) => analysis.components.length > 0)
|
|
293
|
+
.slice(0, 5)
|
|
294
|
+
.forEach((analysis) => {
|
|
295
|
+
const fileName = analysis.file.split('/').pop();
|
|
296
|
+
console.log(`\n${chalk.cyan(fileName)}:`);
|
|
297
|
+
console.log(` Components: ${analysis.components.join(', ')}`);
|
|
298
|
+
console.log(` Lines: ${analysis.lines}`);
|
|
299
|
+
console.log(` Complexity: ${analysis.complexity}`);
|
|
300
|
+
if (analysis.stateUsage.length > 0) {
|
|
301
|
+
console.log(` State usage: ${analysis.stateUsage.length} instances`);
|
|
302
|
+
}
|
|
303
|
+
if (analysis.modifierUsage.length > 0) {
|
|
304
|
+
console.log(` Modifier chains: ${analysis.modifierUsage.length}`);
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
// TachUI health score
|
|
309
|
+
const stateScore = (results.components.withState / results.files.total) * 25;
|
|
310
|
+
const modifierScore = (results.components.withModifiers / results.files.total) * 25;
|
|
311
|
+
const lifecycleScore = (results.components.withLifecycle / results.files.total) * 25;
|
|
312
|
+
const performanceScore = Math.max(0, 25 -
|
|
313
|
+
(results.performance.largeComponents.length +
|
|
314
|
+
results.performance.complexComponents.length) *
|
|
315
|
+
5);
|
|
316
|
+
const healthScore = Math.round(stateScore + modifierScore + lifecycleScore + performanceScore);
|
|
317
|
+
console.log(`\n${chalk.yellow('š„ TachUI Health Score:')} ${healthScore}/100`);
|
|
318
|
+
let healthColor = chalk.red;
|
|
319
|
+
if (healthScore >= 80)
|
|
320
|
+
healthColor = chalk.green;
|
|
321
|
+
else if (healthScore >= 60)
|
|
322
|
+
healthColor = chalk.yellow;
|
|
323
|
+
console.log(healthColor(`${'ā'.repeat(Math.floor(healthScore / 5))}${'ā'.repeat(20 - Math.floor(healthScore / 5))}`));
|
|
324
|
+
// Save report if requested
|
|
325
|
+
if (options.output) {
|
|
326
|
+
const report = JSON.stringify(results, null, 2);
|
|
327
|
+
writeFileSync(resolve(options.output), report);
|
|
328
|
+
console.log(`\n${chalk.green('š Report saved to:')} ${options.output}`);
|
|
329
|
+
}
|
|
330
|
+
console.log(`\n${chalk.green('Analysis complete! š')}`);
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
console.error(chalk.red('Analysis error:'), error.message);
|
|
334
|
+
process.exit(1);
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
//# sourceMappingURL=analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,eAAO,MAAM,UAAU,SA0LnB,CAAA"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tacho CLI - Dev Command
|
|
3
|
+
*
|
|
4
|
+
* Start development server with TachUI optimizations and real-time performance monitoring
|
|
5
|
+
*/
|
|
6
|
+
import { spawn } from 'node:child_process';
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { resolve } from 'node:path';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import ora from 'ora';
|
|
12
|
+
export const devCommand = new Command('dev')
|
|
13
|
+
.description('Start development server with TachUI optimizations')
|
|
14
|
+
.option('-p, --port <port>', 'Port number', '3000')
|
|
15
|
+
.option('-h, --host <host>', 'Host address', 'localhost')
|
|
16
|
+
.option('--open', 'Open browser automatically', true)
|
|
17
|
+
.option('--performance', 'Enable performance monitoring', false)
|
|
18
|
+
.option('--debug', 'Enable debug mode with detailed logging', false)
|
|
19
|
+
.action(async (options) => {
|
|
20
|
+
try {
|
|
21
|
+
const cwd = process.cwd();
|
|
22
|
+
// Check if we're in a TachUI project
|
|
23
|
+
const packageJsonPath = resolve(cwd, 'package.json');
|
|
24
|
+
if (!existsSync(packageJsonPath)) {
|
|
25
|
+
console.error(chalk.red('ā No package.json found. Are you in a TachUI project?'));
|
|
26
|
+
console.log(chalk.yellow('š” Run `tacho init` to create a new project'));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
// Check for TachUI dependency
|
|
30
|
+
const packageJson = require(packageJsonPath);
|
|
31
|
+
const hasTachUI = packageJson.dependencies?.['@tachui/core'] || packageJson.devDependencies?.['@tachui/core'];
|
|
32
|
+
if (!hasTachUI) {
|
|
33
|
+
console.log(chalk.yellow('ā ļø TachUI not found in dependencies'));
|
|
34
|
+
console.log(chalk.blue('š” This appears to be a regular Vite project'));
|
|
35
|
+
}
|
|
36
|
+
console.log(chalk.cyan(`
|
|
37
|
+
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®
|
|
38
|
+
ā š TachUI Development Server ā
|
|
39
|
+
ā Enhanced for TachUI projects ā
|
|
40
|
+
ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ
|
|
41
|
+
`));
|
|
42
|
+
// Performance monitoring setup
|
|
43
|
+
if (options.performance) {
|
|
44
|
+
console.log(chalk.green('š Performance monitoring enabled'));
|
|
45
|
+
console.log(chalk.gray(' ⢠Bundle size tracking'));
|
|
46
|
+
console.log(chalk.gray(' ⢠Hot reload performance'));
|
|
47
|
+
console.log(chalk.gray(' ⢠Memory usage monitoring'));
|
|
48
|
+
}
|
|
49
|
+
// Debug mode setup
|
|
50
|
+
if (options.debug) {
|
|
51
|
+
console.log(chalk.blue('š Debug mode enabled'));
|
|
52
|
+
console.log(chalk.gray(' ⢠Detailed compilation logs'));
|
|
53
|
+
console.log(chalk.gray(' ⢠Signal tracking'));
|
|
54
|
+
console.log(chalk.gray(' ⢠Component lifecycle logging'));
|
|
55
|
+
}
|
|
56
|
+
const spinner = ora('Starting development server...').start();
|
|
57
|
+
// Check if vite.config exists
|
|
58
|
+
const viteConfigExists = existsSync(resolve(cwd, 'vite.config.ts')) || existsSync(resolve(cwd, 'vite.config.js'));
|
|
59
|
+
if (!viteConfigExists) {
|
|
60
|
+
spinner.warn('No vite.config found, using defaults');
|
|
61
|
+
}
|
|
62
|
+
// Prepare Vite command arguments
|
|
63
|
+
const viteArgs = ['--port', options.port, '--host', options.host];
|
|
64
|
+
if (options.open) {
|
|
65
|
+
viteArgs.push('--open');
|
|
66
|
+
}
|
|
67
|
+
// Add TachUI-specific environment variables
|
|
68
|
+
const env = {
|
|
69
|
+
...process.env,
|
|
70
|
+
TACHUI_DEV: 'true',
|
|
71
|
+
TACHUI_PERFORMANCE_MONITORING: options.performance ? 'true' : 'false',
|
|
72
|
+
TACHUI_DEBUG: options.debug ? 'true' : 'false',
|
|
73
|
+
NODE_ENV: 'development',
|
|
74
|
+
};
|
|
75
|
+
// Start Vite development server
|
|
76
|
+
const viteProcess = spawn('npx', ['vite', ...viteArgs], {
|
|
77
|
+
cwd,
|
|
78
|
+
env,
|
|
79
|
+
stdio: 'pipe',
|
|
80
|
+
});
|
|
81
|
+
let serverStarted = false;
|
|
82
|
+
viteProcess.stdout?.on('data', (data) => {
|
|
83
|
+
const output = data.toString();
|
|
84
|
+
// Detect when server is ready
|
|
85
|
+
if (output.includes('Local:') && !serverStarted) {
|
|
86
|
+
serverStarted = true;
|
|
87
|
+
spinner.succeed('Development server started!');
|
|
88
|
+
// Show TachUI-specific info
|
|
89
|
+
console.log(chalk.green('\nā
TachUI Development Server Ready!'));
|
|
90
|
+
if (options.performance) {
|
|
91
|
+
console.log(chalk.blue('š Performance monitoring active'));
|
|
92
|
+
}
|
|
93
|
+
if (options.debug) {
|
|
94
|
+
console.log(chalk.blue('š Debug logging enabled'));
|
|
95
|
+
}
|
|
96
|
+
console.log(chalk.gray('\nš TachUI Features:'));
|
|
97
|
+
console.log(chalk.gray(' ⢠SwiftUI-style modifiers'));
|
|
98
|
+
console.log(chalk.gray(' ⢠Fine-grained reactivity'));
|
|
99
|
+
console.log(chalk.gray(' ⢠Direct DOM rendering'));
|
|
100
|
+
console.log(chalk.gray(' ⢠Phase 6 state management'));
|
|
101
|
+
console.log(chalk.gray(' ⢠Navigation system'));
|
|
102
|
+
console.log(chalk.yellow('\nš” Tips:'));
|
|
103
|
+
console.log(chalk.gray(' ⢠Use .modifier chains for styling'));
|
|
104
|
+
console.log(chalk.gray(' ⢠Try @State for reactive local state'));
|
|
105
|
+
console.log(chalk.gray(' ⢠Use TabView for navigation'));
|
|
106
|
+
console.log(chalk.gray(' ⢠Check browser devtools for performance'));
|
|
107
|
+
}
|
|
108
|
+
// Filter and enhance output
|
|
109
|
+
const lines = output.split('\n').filter((line) => line.trim());
|
|
110
|
+
lines.forEach((line) => {
|
|
111
|
+
if (line.includes('Local:')) {
|
|
112
|
+
console.log(chalk.green(line));
|
|
113
|
+
}
|
|
114
|
+
else if (line.includes('Network:')) {
|
|
115
|
+
console.log(chalk.blue(line));
|
|
116
|
+
}
|
|
117
|
+
else if (line.includes('ready in')) {
|
|
118
|
+
console.log(chalk.cyan(line));
|
|
119
|
+
}
|
|
120
|
+
else if (options.debug && line.trim()) {
|
|
121
|
+
console.log(chalk.gray(line));
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
viteProcess.stderr?.on('data', (data) => {
|
|
126
|
+
const error = data.toString();
|
|
127
|
+
// Handle common TachUI-related errors
|
|
128
|
+
if (error.includes('@tachui/core')) {
|
|
129
|
+
console.error(chalk.red('ā TachUI import error:'));
|
|
130
|
+
console.error(chalk.gray(error));
|
|
131
|
+
console.log(chalk.yellow('š” Make sure @tachui/core is installed: npm install @tachui/core'));
|
|
132
|
+
}
|
|
133
|
+
else if (error.includes('TypeScript')) {
|
|
134
|
+
console.error(chalk.red('ā TypeScript error:'));
|
|
135
|
+
console.error(chalk.gray(error));
|
|
136
|
+
}
|
|
137
|
+
else if (options.debug) {
|
|
138
|
+
console.error(chalk.red(error));
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
viteProcess.on('close', (code) => {
|
|
142
|
+
if (code !== 0) {
|
|
143
|
+
console.error(chalk.red(`ā Development server exited with code ${code}`));
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
console.log(chalk.green('ā
Development server stopped'));
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
// Handle process termination
|
|
150
|
+
process.on('SIGINT', () => {
|
|
151
|
+
console.log(chalk.yellow('\nš Stopping development server...'));
|
|
152
|
+
viteProcess.kill('SIGINT');
|
|
153
|
+
process.exit(0);
|
|
154
|
+
});
|
|
155
|
+
process.on('SIGTERM', () => {
|
|
156
|
+
viteProcess.kill('SIGTERM');
|
|
157
|
+
process.exit(0);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
console.error(chalk.red('ā Error starting development server:'), error.message);
|
|
162
|
+
// Provide helpful debugging information
|
|
163
|
+
console.log(chalk.yellow('\nš Troubleshooting:'));
|
|
164
|
+
console.log(chalk.gray(" ⢠Make sure you're in a TachUI project directory"));
|
|
165
|
+
console.log(chalk.gray(' ⢠Check that package.json exists'));
|
|
166
|
+
console.log(chalk.gray(' ⢠Verify @tachui/core is installed'));
|
|
167
|
+
console.log(chalk.gray(' ⢠Try: npm install && tacho dev'));
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiqBnC,eAAO,MAAM,eAAe,SAoIxB,CAAA"}
|