@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 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,OAAO,MAAM,SAAS,CAAA;AAS7B,MAAM,SAAS,GAAoC;IACjD,KAAK,EAAE;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,CAAC,0BAA0B,EAAE,eAAe,EAAE,WAAW,CAAC;QACpE,KAAK,EAAE;YACL,cAAc,EAAE,IAAI,CAAC,SAAS,CAC5B;gBACE,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,MAAM;oBACX,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,cAAc;oBACvB,SAAS,EAAE,cAAc;iBAC1B;gBACD,YAAY,EAAE;oBACZ,cAAc,EAAE,QAAQ;oBACxB,eAAe,EAAE,QAAQ;iBAC1B;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,QAAQ;oBACpB,aAAa,EAAE,SAAS;iBACzB;aACF,EACD,IAAI,EACJ,CAAC,CACF;YAED,gBAAgB,EAAE;;;;;;;;;;GAUrB;YAEG,eAAe,EAAE,IAAI,CAAC,SAAS,CAC7B;gBACE,eAAe,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,QAAQ;oBAChB,gBAAgB,EAAE,SAAS;oBAC3B,4BAA4B,EAAE,IAAI;oBAClC,eAAe,EAAE,IAAI;oBACrB,GAAG,EAAE,UAAU;oBACf,WAAW,EAAE,IAAI;oBACjB,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,gCAAgC,EAAE,IAAI;iBACvC;gBACD,OAAO,EAAE,CAAC,UAAU,CAAC;gBACrB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;aAClC,EACD,IAAI,EACJ,CAAC,CACF;YAED,aAAa,EAAE;;;;qBAIA;YAEf,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwClB;YAEI,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;QAsBZ;YAEF,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBlB;SACI;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,+DAA+D;QAC5E,QAAQ,EAAE;YACR,0BAA0B;YAC1B,qBAAqB;YACrB,0BAA0B;YAC1B,qBAAqB;SACtB;QACD,KAAK,EAAE;YACL,cAAc,EAAE,IAAI,CAAC,SAAS,CAC5B;gBACE,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,mDAAmD;gBAChE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,MAAM;oBACX,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,cAAc;oBACvB,SAAS,EAAE,cAAc;iBAC1B;gBACD,YAAY,EAAE;oBACZ,cAAc,EAAE,QAAQ;oBACxB,eAAe,EAAE,QAAQ;iBAC1B;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,QAAQ;oBACpB,aAAa,EAAE,SAAS;iBACzB;aACF,EACD,IAAI,EACJ,CAAC,CACF;YAED,gBAAgB,EAAE;;;;;;;;;;GAUrB;YAEG,eAAe,EAAE,IAAI,CAAC,SAAS,CAC7B;gBACE,eAAe,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,QAAQ;oBAChB,gBAAgB,EAAE,SAAS;oBAC3B,4BAA4B,EAAE,IAAI;oBAClC,eAAe,EAAE,IAAI;oBACrB,GAAG,EAAE,UAAU;oBACf,WAAW,EAAE,IAAI;oBACjB,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,gCAAgC,EAAE,IAAI;iBACvC;gBACD,OAAO,EAAE,CAAC,UAAU,CAAC;gBACrB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;aAClC,EACD,IAAI,EACJ,CAAC,CACF;YAED,aAAa,EAAE;;;;qBAIA;YAEf,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmClB;YAEI,2BAA2B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEjC;YAEI,2BAA2B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6JjC;YAEI,+BAA+B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ErC;YAEI,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;QAuBZ;YAEF,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDlB;SACI;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;KAC1C,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,EAAE,OAAO,CAAC;KAChF,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,WAAoB,EAAE,OAA8C,EAAE,EAAE;IACrF,IAAI,CAAC;QACH,IAAI,gBAAgB,GAAG,WAAW,CAAA;QAClC,IAAI,gBAAgB,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAA;QAEnD,8CAA8C;QAC9C,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;gBAC7B;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,WAAW,IAAI,eAAe;oBACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;iBAC5E;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,oBAAoB;oBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC3D,KAAK,EAAE,QAAQ,CAAC,IAAI;wBACpB,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,KAAK,EAAE,GAAG;qBACX,CAAC,CAAC;oBACH,OAAO,EAAE,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/C;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAA;gBAChD,OAAM;YACR,CAAC;YAED,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAA;YACvC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAA;QACtC,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAA;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,gBAAgB,aAAa,CAAC,CAAC,CAAA;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAE7C,oCAAoC;QACpC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,gBAAgB,kBAAkB,CAAC,CAAC,CAAA;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAA;QAEzD,2BAA2B;QAC3B,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3C,4BAA4B;QAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YAE5D,uCAAuC;YACvC,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACrC,CAAC;YAED,6BAA6B;YAC7B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;YAE5E,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;QAEvD,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC;EAChB,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;EACjE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,WAAW;EAC1C,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,IAAI;;EAE5C,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC;EAClC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;EAE/D,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;OACtB,gBAAgB;;;;EAIrB,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC;CAC5C,CAAC,CAAA;IACE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAA;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsNnC,eAAO,MAAM,cAAc,SA8KvB,CAAA"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tacho CLI - Migrate Command
|
|
3
|
+
*
|
|
4
|
+
* Migration utilities for converting React/Vue components to TachUI
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
import { glob } from 'glob';
|
|
10
|
+
import ora from 'ora';
|
|
11
|
+
const reactToTachUIMigrations = [
|
|
12
|
+
// React imports
|
|
13
|
+
{
|
|
14
|
+
pattern: /import React.*from ['"]react['"];?\n?/g,
|
|
15
|
+
replacement: '',
|
|
16
|
+
description: 'Remove React imports',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
pattern: /import.*useState.*from ['"]react['"];?\n?/g,
|
|
20
|
+
replacement: "import { State } from '@tachui/core/state'\n",
|
|
21
|
+
description: 'Replace useState with State',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
pattern: /import.*useEffect.*from ['"]react['"];?\n?/g,
|
|
25
|
+
replacement: '// Use .modifier.onAppear() or .task() instead of useEffect\n',
|
|
26
|
+
description: 'Replace useEffect with lifecycle modifiers',
|
|
27
|
+
},
|
|
28
|
+
// State management
|
|
29
|
+
{
|
|
30
|
+
pattern: /const \[(\w+), set(\w+)\] = useState\((.*?)\)/g,
|
|
31
|
+
replacement: (_match, stateName, _setterName, initialValue) => `const ${stateName} = State(${initialValue})`,
|
|
32
|
+
description: 'Convert useState to State',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
pattern: /set(\w+)\((.*?)\)/g,
|
|
36
|
+
replacement: (_match, setterName, newValue) => {
|
|
37
|
+
const stateName = setterName.charAt(0).toLowerCase() + setterName.slice(1);
|
|
38
|
+
return `${stateName}.wrappedValue = ${newValue}`;
|
|
39
|
+
},
|
|
40
|
+
description: 'Convert state setters to wrappedValue assignment',
|
|
41
|
+
},
|
|
42
|
+
// JSX to TachUI
|
|
43
|
+
{
|
|
44
|
+
pattern: /<div([^>]*)>/g,
|
|
45
|
+
replacement: 'Layout.VStack({\n children: [',
|
|
46
|
+
description: 'Convert div to VStack',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
pattern: /<\/div>/g,
|
|
50
|
+
replacement: ' ]\n})',
|
|
51
|
+
description: 'Close VStack',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
pattern: /<button([^>]*?)onClick=\{([^}]+)\}([^>]*?)>([^<]+)<\/button>/g,
|
|
55
|
+
replacement: (_match, _beforeOnClick, onClick, _afterOnClick, text) => `Button({\n title: '${text}',\n onTap: ${onClick}\n})`,
|
|
56
|
+
description: 'Convert button to Button component',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
pattern: /<input([^>]*?)value=\{([^}]+)\}([^>]*?)onChange=\{([^}]+)\}([^>]*?)\/>/g,
|
|
60
|
+
replacement: (_match, _before, value, _middle, _onChange, _after) => `TextField({\n text: ${value}.projectedValue\n})`,
|
|
61
|
+
description: 'Convert input to TextField',
|
|
62
|
+
},
|
|
63
|
+
// Component structure
|
|
64
|
+
{
|
|
65
|
+
pattern: /export default function (\w+)\(\)/g,
|
|
66
|
+
replacement: 'export function $1()',
|
|
67
|
+
description: 'Convert default export to named export',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
pattern: /return \(/g,
|
|
71
|
+
replacement: 'return ',
|
|
72
|
+
description: 'Remove JSX parentheses',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
pattern: /return <>/g,
|
|
76
|
+
replacement: 'return Layout.VStack({\n children: [',
|
|
77
|
+
description: 'Convert React Fragment to VStack',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
pattern: /<\/>/g,
|
|
81
|
+
replacement: ' ]\n})',
|
|
82
|
+
description: 'Close Fragment VStack',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
const vueToTachUIMigrations = [
|
|
86
|
+
// Vue composition API
|
|
87
|
+
{
|
|
88
|
+
pattern: /import.*ref.*from ['"]vue['"];?\n?/g,
|
|
89
|
+
replacement: "import { State } from '@tachui/core/state'\n",
|
|
90
|
+
description: 'Replace Vue ref with State',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
pattern: /import.*reactive.*from ['"]vue['"];?\n?/g,
|
|
94
|
+
replacement: "import { ObservableObjectBase, ObservedObject } from '@tachui/core/state'\n",
|
|
95
|
+
description: 'Replace Vue reactive with ObservedObject',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
pattern: /const (\w+) = ref\((.*?)\)/g,
|
|
99
|
+
replacement: 'const $1 = State($2)',
|
|
100
|
+
description: 'Convert ref to State',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
pattern: /(\w+)\.value/g,
|
|
104
|
+
replacement: '$1.wrappedValue',
|
|
105
|
+
description: 'Convert .value to .wrappedValue',
|
|
106
|
+
},
|
|
107
|
+
// Vue template to TachUI
|
|
108
|
+
{
|
|
109
|
+
pattern: /<template>/g,
|
|
110
|
+
replacement: '// Template converted to TachUI components\nreturn ',
|
|
111
|
+
description: 'Convert template tag',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
pattern: /<\/template>/g,
|
|
115
|
+
replacement: '',
|
|
116
|
+
description: 'Remove template closing',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
pattern: /<div([^>]*)>/g,
|
|
120
|
+
replacement: 'Layout.VStack({\n children: [',
|
|
121
|
+
description: 'Convert div to VStack',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
pattern: /<\/div>/g,
|
|
125
|
+
replacement: ' ]\n})',
|
|
126
|
+
description: 'Close VStack',
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
function applyMigrations(content, migrations) {
|
|
130
|
+
let migratedContent = content;
|
|
131
|
+
const changes = [];
|
|
132
|
+
for (const migration of migrations) {
|
|
133
|
+
if (migration.pattern.test(migratedContent)) {
|
|
134
|
+
migratedContent = migratedContent.replace(migration.pattern, migration.replacement);
|
|
135
|
+
changes.push(migration.description);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return { content: migratedContent, changes };
|
|
139
|
+
}
|
|
140
|
+
function analyzeFramework(content) {
|
|
141
|
+
if (content.includes('from "react"') ||
|
|
142
|
+
content.includes("from 'react'") ||
|
|
143
|
+
content.includes('useState') ||
|
|
144
|
+
content.includes('useEffect')) {
|
|
145
|
+
return 'react';
|
|
146
|
+
}
|
|
147
|
+
if (content.includes('from "vue"') ||
|
|
148
|
+
content.includes("from 'vue'") ||
|
|
149
|
+
content.includes('<template>') ||
|
|
150
|
+
content.includes('ref(')) {
|
|
151
|
+
return 'vue';
|
|
152
|
+
}
|
|
153
|
+
return 'unknown';
|
|
154
|
+
}
|
|
155
|
+
function generateMigrationReport(filePath, framework, changes) {
|
|
156
|
+
return `
|
|
157
|
+
# Migration Report: ${filePath}
|
|
158
|
+
|
|
159
|
+
**Source Framework**: ${framework}
|
|
160
|
+
**Target Framework**: TachUI
|
|
161
|
+
|
|
162
|
+
## Automated Changes Applied
|
|
163
|
+
|
|
164
|
+
${changes.map((change) => `- ${change}`).join('\n')}
|
|
165
|
+
|
|
166
|
+
## Manual Review Required
|
|
167
|
+
|
|
168
|
+
The following items may need manual attention:
|
|
169
|
+
|
|
170
|
+
1. **Complex State Logic**: Review state management patterns and consider using ObservedObject for complex objects
|
|
171
|
+
2. **Event Handlers**: Verify event handler conversions (onClick ā onTap)
|
|
172
|
+
3. **Styling**: Add TachUI modifiers for styling (.modifier.backgroundColor(), etc.)
|
|
173
|
+
4. **Component Structure**: Ensure proper Layout container usage (VStack, HStack, ZStack)
|
|
174
|
+
5. **Imports**: Verify all TachUI imports are correct
|
|
175
|
+
|
|
176
|
+
## Next Steps
|
|
177
|
+
|
|
178
|
+
1. Add necessary TachUI imports
|
|
179
|
+
2. Test component functionality
|
|
180
|
+
3. Add modifiers for styling
|
|
181
|
+
4. Consider using Phase 6 features:
|
|
182
|
+
- @State for reactive local state
|
|
183
|
+
- @ObservedObject for complex objects
|
|
184
|
+
- Lifecycle modifiers (onAppear, task)
|
|
185
|
+
- Navigation components if needed
|
|
186
|
+
|
|
187
|
+
## TachUI Resources
|
|
188
|
+
|
|
189
|
+
- [Getting Started Guide](https://github.com/whoughton/TachUI/blob/main/docs/guide/getting-started-complete.md)
|
|
190
|
+
- [Phase 6 Features](https://github.com/whoughton/TachUI/blob/main/docs/api/phase-6-features.md)
|
|
191
|
+
- [Component Examples](https://github.com/whoughton/TachUI/tree/main/examples)
|
|
192
|
+
`;
|
|
193
|
+
}
|
|
194
|
+
export const migrateCommand = new Command('migrate')
|
|
195
|
+
.description('Migrate React/Vue components to TachUI')
|
|
196
|
+
.option('-f, --framework <framework>', 'Source framework (react, vue, auto)', 'auto')
|
|
197
|
+
.option('-i, --input <pattern>', 'Input file pattern', 'src/**/*.{js,jsx,ts,tsx,vue}')
|
|
198
|
+
.option('-o, --output <directory>', 'Output directory', 'src/migrated')
|
|
199
|
+
.option('--backup', 'Create backup of original files', true)
|
|
200
|
+
.option('--report', 'Generate migration report', true)
|
|
201
|
+
.option('--dry-run', 'Show what would be migrated without making changes', false)
|
|
202
|
+
.action(async (options) => {
|
|
203
|
+
try {
|
|
204
|
+
console.log(chalk.cyan(`
|
|
205
|
+
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®
|
|
206
|
+
ā š TachUI Migration Tool ā
|
|
207
|
+
ā Pattern-based React/Vue converter ā
|
|
208
|
+
ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ
|
|
209
|
+
`));
|
|
210
|
+
const spinner = ora('Scanning for migration candidates...').start();
|
|
211
|
+
// Find files to migrate
|
|
212
|
+
const files = await glob(options.input, {
|
|
213
|
+
cwd: process.cwd(),
|
|
214
|
+
absolute: true,
|
|
215
|
+
});
|
|
216
|
+
if (files.length === 0) {
|
|
217
|
+
spinner.fail('No files found matching pattern');
|
|
218
|
+
console.log(chalk.yellow(`Pattern: ${options.input}`));
|
|
219
|
+
console.log(chalk.gray('Try: --input "src/**/*.{js,jsx,ts,tsx}"'));
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
spinner.text = `Found ${files.length} files to analyze...`;
|
|
223
|
+
let migratedCount = 0;
|
|
224
|
+
const migrationResults = [];
|
|
225
|
+
for (const file of files) {
|
|
226
|
+
try {
|
|
227
|
+
const content = readFileSync(file, 'utf-8');
|
|
228
|
+
const framework = options.framework === 'auto' ? analyzeFramework(content) : options.framework;
|
|
229
|
+
if (framework === 'unknown') {
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
const migrations = framework === 'react' ? reactToTachUIMigrations : vueToTachUIMigrations;
|
|
233
|
+
const { content: migratedContent, changes } = applyMigrations(content, migrations);
|
|
234
|
+
if (changes.length === 0) {
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
migratedCount++;
|
|
238
|
+
migrationResults.push({
|
|
239
|
+
file,
|
|
240
|
+
framework,
|
|
241
|
+
changes,
|
|
242
|
+
success: true,
|
|
243
|
+
});
|
|
244
|
+
if (!options.dryRun) {
|
|
245
|
+
// Create backup if requested
|
|
246
|
+
if (options.backup) {
|
|
247
|
+
writeFileSync(`${file}.backup`, content);
|
|
248
|
+
}
|
|
249
|
+
// Write migrated content
|
|
250
|
+
const outputPath = file.replace(/src\//, `${options.output}/`);
|
|
251
|
+
const outputDir = outputPath.substring(0, outputPath.lastIndexOf('/'));
|
|
252
|
+
// Create output directory if needed
|
|
253
|
+
const { mkdirSync } = await import('node:fs');
|
|
254
|
+
if (!existsSync(outputDir)) {
|
|
255
|
+
mkdirSync(outputDir, { recursive: true });
|
|
256
|
+
}
|
|
257
|
+
writeFileSync(outputPath, migratedContent);
|
|
258
|
+
// Generate report if requested
|
|
259
|
+
if (options.report) {
|
|
260
|
+
const reportPath = outputPath.replace(/\.(js|jsx|ts|tsx|vue)$/, '.migration-report.md');
|
|
261
|
+
const report = generateMigrationReport(file, framework, changes);
|
|
262
|
+
writeFileSync(reportPath, report);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch (_error) {
|
|
267
|
+
migrationResults.push({
|
|
268
|
+
file,
|
|
269
|
+
framework: 'unknown',
|
|
270
|
+
changes: [],
|
|
271
|
+
success: false,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
spinner.succeed(`Migration analysis complete!`);
|
|
276
|
+
// Show results
|
|
277
|
+
console.log(`\n${chalk.green('š Migration Summary:')}`);
|
|
278
|
+
console.log(`${chalk.gray('Total files scanned:')} ${files.length}`);
|
|
279
|
+
console.log(`${chalk.gray('Files requiring migration:')} ${migratedCount}`);
|
|
280
|
+
const reactFiles = migrationResults.filter((r) => r.framework === 'react').length;
|
|
281
|
+
const vueFiles = migrationResults.filter((r) => r.framework === 'vue').length;
|
|
282
|
+
if (reactFiles > 0) {
|
|
283
|
+
console.log(`${chalk.gray('React components:')} ${reactFiles}`);
|
|
284
|
+
}
|
|
285
|
+
if (vueFiles > 0) {
|
|
286
|
+
console.log(`${chalk.gray('Vue components:')} ${vueFiles}`);
|
|
287
|
+
}
|
|
288
|
+
if (options.dryRun) {
|
|
289
|
+
console.log(`\n${chalk.yellow('š Dry Run - No files were changed')}`);
|
|
290
|
+
console.log(chalk.gray('Remove --dry-run flag to apply migrations'));
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
console.log(`\n${chalk.green('ā
Files migrated to:')} ${options.output}`);
|
|
294
|
+
if (options.backup) {
|
|
295
|
+
console.log(`${chalk.blue('š¾ Backups created')} with .backup extension`);
|
|
296
|
+
}
|
|
297
|
+
if (options.report) {
|
|
298
|
+
console.log(`${chalk.blue('š Reports generated')} with .migration-report.md extension`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// Show detailed results
|
|
302
|
+
if (migrationResults.length > 0) {
|
|
303
|
+
console.log(`\n${chalk.yellow('š Migration Details:')}`);
|
|
304
|
+
migrationResults.forEach((result) => {
|
|
305
|
+
const fileName = result.file.split('/').pop();
|
|
306
|
+
console.log(`\n${chalk.cyan(fileName)} (${result.framework})`);
|
|
307
|
+
if (result.changes.length > 0) {
|
|
308
|
+
result.changes.forEach((change) => {
|
|
309
|
+
console.log(` ${chalk.gray('ā¢')} ${change}`);
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
console.log(` ${chalk.gray('No changes needed')}`);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
// Next steps
|
|
318
|
+
console.log(`\n${chalk.yellow('š Next Steps:')}`);
|
|
319
|
+
console.log(chalk.gray('1. Review migrated components'));
|
|
320
|
+
console.log(chalk.gray('2. Add TachUI modifiers for styling'));
|
|
321
|
+
console.log(chalk.gray('3. Test component functionality'));
|
|
322
|
+
console.log(chalk.gray('4. Consider Phase 6 features (@State, lifecycle modifiers)'));
|
|
323
|
+
console.log(chalk.gray('5. Run: tacho dev'));
|
|
324
|
+
console.log(`\n${chalk.green('Migration complete! š')}`);
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
console.error(chalk.red('Migration error:'), error.message);
|
|
328
|
+
console.log(chalk.yellow('\nš Troubleshooting:'));
|
|
329
|
+
console.log(chalk.gray('⢠Check file patterns and permissions'));
|
|
330
|
+
console.log(chalk.gray('⢠Ensure source files are valid JavaScript/TypeScript'));
|
|
331
|
+
console.log(chalk.gray('⢠Try with --dry-run first'));
|
|
332
|
+
process.exit(1);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimize.d.ts","sourceRoot":"","sources":["../../src/commands/optimize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6MnC,eAAO,MAAM,eAAe,SAkQxB,CAAA"}
|