@tanstack/cta-engine 0.10.0-alpha.19 → 0.10.0-alpha.21
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/add-ons.js +5 -14
- package/dist/add-to-app.js +118 -74
- package/dist/config-file.js +9 -7
- package/dist/create-app.js +112 -34
- package/dist/custom-add-ons/add-on.js +175 -0
- package/dist/custom-add-ons/shared.js +117 -0
- package/dist/custom-add-ons/starter.js +84 -0
- package/dist/environment.js +59 -12
- package/dist/file-helpers.js +108 -2
- package/dist/frameworks.js +15 -1
- package/dist/index.js +12 -5
- package/dist/integrations/shadcn.js +10 -4
- package/dist/options.js +9 -0
- package/dist/package-json.js +7 -4
- package/dist/special-steps/index.js +24 -0
- package/dist/special-steps/rimraf-node-modules.js +16 -0
- package/dist/template-file.js +3 -13
- package/dist/types/add-ons.d.ts +3 -4
- package/dist/types/add-to-app.d.ts +16 -3
- package/dist/types/config-file.d.ts +4 -3
- package/dist/types/create-app.d.ts +1 -7
- package/dist/types/custom-add-ons/add-on.d.ts +69 -0
- package/dist/types/custom-add-ons/shared.d.ts +15 -0
- package/dist/types/custom-add-ons/starter.d.ts +7 -0
- package/dist/types/environment.d.ts +2 -1
- package/dist/types/file-helpers.d.ts +10 -0
- package/dist/types/frameworks.d.ts +2 -0
- package/dist/types/index.d.ts +13 -6
- package/dist/types/integrations/shadcn.d.ts +1 -1
- package/dist/types/options.d.ts +2 -0
- package/dist/types/package-json.d.ts +5 -0
- package/dist/types/package-manager.d.ts +6 -2
- package/dist/types/special-steps/index.d.ts +2 -0
- package/dist/types/special-steps/rimraf-node-modules.d.ts +2 -0
- package/dist/types/template-file.d.ts +1 -1
- package/dist/types/types.d.ts +752 -70
- package/dist/types.js +65 -1
- package/package.json +9 -3
- package/src/add-ons.ts +7 -19
- package/src/add-to-app.ts +196 -102
- package/src/config-file.ts +16 -13
- package/src/create-app.ts +129 -75
- package/src/custom-add-ons/add-on.ts +261 -0
- package/src/custom-add-ons/shared.ts +161 -0
- package/src/custom-add-ons/starter.ts +126 -0
- package/src/environment.ts +70 -11
- package/src/file-helpers.ts +164 -2
- package/src/frameworks.ts +21 -1
- package/src/index.ts +46 -11
- package/src/integrations/shadcn.ts +14 -4
- package/src/options.ts +11 -0
- package/src/package-json.ts +13 -6
- package/src/special-steps/index.ts +36 -0
- package/src/special-steps/rimraf-node-modules.ts +25 -0
- package/src/template-file.ts +3 -18
- package/src/types.ts +143 -85
- package/tests/add-ons.test.ts +5 -5
- package/tests/add-to-app.test.ts +358 -0
- package/tests/config-file.test.ts +15 -11
- package/tests/create-app.test.ts +43 -67
- package/tests/custom-add-ons/add-on.test.ts +12 -0
- package/tests/custom-add-ons/shared.test.ts +257 -0
- package/tests/custom-add-ons/starter.test.ts +58 -0
- package/tests/environment.test.ts +19 -0
- package/tests/integrations/shadcn.test.ts +48 -63
- package/tests/options.test.ts +42 -0
- package/tests/setupVitest.ts +6 -0
- package/tests/template-file.test.ts +54 -91
- package/vitest.config.ts +2 -0
|
@@ -8,6 +8,7 @@ import type { AddOn, Integration, Options } from '../src/types.js'
|
|
|
8
8
|
|
|
9
9
|
const simpleOptions = {
|
|
10
10
|
projectName: 'test',
|
|
11
|
+
targetDir: '/test',
|
|
11
12
|
framework: {
|
|
12
13
|
id: 'test',
|
|
13
14
|
name: 'Test',
|
|
@@ -17,15 +18,12 @@ const simpleOptions = {
|
|
|
17
18
|
typescript: true,
|
|
18
19
|
tailwind: true,
|
|
19
20
|
mode: FILE_ROUTER,
|
|
20
|
-
variableValues: {
|
|
21
|
-
a: 'foo',
|
|
22
|
-
},
|
|
23
21
|
} as unknown as Options
|
|
24
22
|
|
|
25
23
|
describe('createTemplateFile', () => {
|
|
26
24
|
it('should template a simple file', async () => {
|
|
27
25
|
const { environment, output } = createMemoryEnvironment()
|
|
28
|
-
const templateFile = createTemplateFile(environment, simpleOptions
|
|
26
|
+
const templateFile = createTemplateFile(environment, simpleOptions)
|
|
29
27
|
environment.startRun()
|
|
30
28
|
await templateFile('./test.ts', 'let a = 1')
|
|
31
29
|
environment.finishRun()
|
|
@@ -33,34 +31,11 @@ describe('createTemplateFile', () => {
|
|
|
33
31
|
expect(output.files['/test/test.ts'].trim()).toEqual('let a = 1')
|
|
34
32
|
})
|
|
35
33
|
|
|
36
|
-
it('should template a simple file with ejs', async () => {
|
|
37
|
-
const { environment, output } = createMemoryEnvironment()
|
|
38
|
-
const templateFile = createTemplateFile(
|
|
39
|
-
environment,
|
|
40
|
-
{
|
|
41
|
-
...simpleOptions,
|
|
42
|
-
variableValues: {
|
|
43
|
-
a: 'foo',
|
|
44
|
-
},
|
|
45
|
-
} as unknown as Options,
|
|
46
|
-
'/test',
|
|
47
|
-
)
|
|
48
|
-
environment.startRun()
|
|
49
|
-
await templateFile('./test.ts.ejs', "let a = '<%= variables.a %>'")
|
|
50
|
-
environment.finishRun()
|
|
51
|
-
|
|
52
|
-
expect(output.files['/test/test.ts'].trim()).toEqual("let a = 'foo'")
|
|
53
|
-
})
|
|
54
|
-
|
|
55
34
|
it('should handle ignore files', async () => {
|
|
56
35
|
const { environment, output } = createMemoryEnvironment()
|
|
57
|
-
const templateFile = createTemplateFile(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
...simpleOptions,
|
|
61
|
-
} as unknown as Options,
|
|
62
|
-
'/test',
|
|
63
|
-
)
|
|
36
|
+
const templateFile = createTemplateFile(environment, {
|
|
37
|
+
...simpleOptions,
|
|
38
|
+
} as unknown as Options)
|
|
64
39
|
environment.startRun()
|
|
65
40
|
await templateFile('./test.ts.ejs', '<% ignoreFile() %>let a = 1')
|
|
66
41
|
environment.finishRun()
|
|
@@ -70,7 +45,7 @@ describe('createTemplateFile', () => {
|
|
|
70
45
|
|
|
71
46
|
it('should handle append files', async () => {
|
|
72
47
|
const { environment, output } = createMemoryEnvironment()
|
|
73
|
-
const templateFile = createTemplateFile(environment, simpleOptions
|
|
48
|
+
const templateFile = createTemplateFile(environment, simpleOptions)
|
|
74
49
|
environment.startRun()
|
|
75
50
|
await templateFile('./test.txt.ejs', 'Line 1\n')
|
|
76
51
|
await templateFile('./test.txt.append', 'Line 2\n')
|
|
@@ -81,23 +56,19 @@ describe('createTemplateFile', () => {
|
|
|
81
56
|
|
|
82
57
|
it('should handle enabled add-ons', async () => {
|
|
83
58
|
const { environment, output } = createMemoryEnvironment()
|
|
84
|
-
const templateFile = createTemplateFile(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
] as Array<AddOn>,
|
|
98
|
-
},
|
|
99
|
-
'/test',
|
|
100
|
-
)
|
|
59
|
+
const templateFile = createTemplateFile(environment, {
|
|
60
|
+
...simpleOptions,
|
|
61
|
+
chosenAddOns: [
|
|
62
|
+
{
|
|
63
|
+
id: 'test1',
|
|
64
|
+
name: 'Test 1',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'test2',
|
|
68
|
+
name: 'Test 2',
|
|
69
|
+
},
|
|
70
|
+
] as Array<AddOn>,
|
|
71
|
+
})
|
|
101
72
|
environment.startRun()
|
|
102
73
|
await templateFile(
|
|
103
74
|
'./test.txt.ejs',
|
|
@@ -110,7 +81,7 @@ describe('createTemplateFile', () => {
|
|
|
110
81
|
|
|
111
82
|
it('should handle relative paths', async () => {
|
|
112
83
|
const { environment, output } = createMemoryEnvironment()
|
|
113
|
-
const templateFile = createTemplateFile(environment, simpleOptions
|
|
84
|
+
const templateFile = createTemplateFile(environment, simpleOptions)
|
|
114
85
|
environment.startRun()
|
|
115
86
|
await templateFile(
|
|
116
87
|
'./src/test/test.txt.ejs',
|
|
@@ -125,27 +96,23 @@ describe('createTemplateFile', () => {
|
|
|
125
96
|
|
|
126
97
|
it('should handle routes', async () => {
|
|
127
98
|
const { environment, output } = createMemoryEnvironment()
|
|
128
|
-
const templateFile = createTemplateFile(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
],
|
|
146
|
-
},
|
|
147
|
-
'/test',
|
|
148
|
-
)
|
|
99
|
+
const templateFile = createTemplateFile(environment, {
|
|
100
|
+
...simpleOptions,
|
|
101
|
+
chosenAddOns: [
|
|
102
|
+
{
|
|
103
|
+
id: 'test',
|
|
104
|
+
name: 'Test',
|
|
105
|
+
routes: [
|
|
106
|
+
{
|
|
107
|
+
path: '/test',
|
|
108
|
+
name: 'Test',
|
|
109
|
+
url: '/test',
|
|
110
|
+
jsName: 'test',
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
} as AddOn,
|
|
114
|
+
],
|
|
115
|
+
})
|
|
149
116
|
|
|
150
117
|
environment.startRun()
|
|
151
118
|
await templateFile(
|
|
@@ -159,26 +126,22 @@ describe('createTemplateFile', () => {
|
|
|
159
126
|
|
|
160
127
|
it('should handle integrations', async () => {
|
|
161
128
|
const { environment, output } = createMemoryEnvironment()
|
|
162
|
-
const templateFile = createTemplateFile(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
],
|
|
179
|
-
},
|
|
180
|
-
'/test',
|
|
181
|
-
)
|
|
129
|
+
const templateFile = createTemplateFile(environment, {
|
|
130
|
+
...simpleOptions,
|
|
131
|
+
chosenAddOns: [
|
|
132
|
+
{
|
|
133
|
+
id: 'test',
|
|
134
|
+
name: 'Test',
|
|
135
|
+
integrations: [
|
|
136
|
+
{
|
|
137
|
+
type: 'header-user',
|
|
138
|
+
path: '/test',
|
|
139
|
+
jsName: 'test',
|
|
140
|
+
} as Integration,
|
|
141
|
+
],
|
|
142
|
+
} as AddOn,
|
|
143
|
+
],
|
|
144
|
+
})
|
|
182
145
|
|
|
183
146
|
environment.startRun()
|
|
184
147
|
await templateFile(
|
|
@@ -192,7 +155,7 @@ describe('createTemplateFile', () => {
|
|
|
192
155
|
|
|
193
156
|
it('should handle package manager', async () => {
|
|
194
157
|
const { environment, output } = createMemoryEnvironment()
|
|
195
|
-
const templateFile = createTemplateFile(environment, simpleOptions
|
|
158
|
+
const templateFile = createTemplateFile(environment, simpleOptions)
|
|
196
159
|
environment.startRun()
|
|
197
160
|
await templateFile(
|
|
198
161
|
'./foo.txt.ejs',
|
package/vitest.config.ts
CHANGED
|
@@ -3,6 +3,7 @@ import path from 'node:path'
|
|
|
3
3
|
|
|
4
4
|
export default defineConfig({
|
|
5
5
|
test: {
|
|
6
|
+
setupFiles: ['./tests/setupVitest.js'],
|
|
6
7
|
deps: {
|
|
7
8
|
moduleDirectories: ['node_modules', path.resolve('../../packages')],
|
|
8
9
|
},
|
|
@@ -11,6 +12,7 @@ export default defineConfig({
|
|
|
11
12
|
'node_modules',
|
|
12
13
|
'dist',
|
|
13
14
|
'build',
|
|
15
|
+
'tests/**',
|
|
14
16
|
'**/types.ts',
|
|
15
17
|
'vitest.config.ts',
|
|
16
18
|
],
|