@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.
Files changed (69) hide show
  1. package/dist/add-ons.js +5 -14
  2. package/dist/add-to-app.js +118 -74
  3. package/dist/config-file.js +9 -7
  4. package/dist/create-app.js +112 -34
  5. package/dist/custom-add-ons/add-on.js +175 -0
  6. package/dist/custom-add-ons/shared.js +117 -0
  7. package/dist/custom-add-ons/starter.js +84 -0
  8. package/dist/environment.js +59 -12
  9. package/dist/file-helpers.js +108 -2
  10. package/dist/frameworks.js +15 -1
  11. package/dist/index.js +12 -5
  12. package/dist/integrations/shadcn.js +10 -4
  13. package/dist/options.js +9 -0
  14. package/dist/package-json.js +7 -4
  15. package/dist/special-steps/index.js +24 -0
  16. package/dist/special-steps/rimraf-node-modules.js +16 -0
  17. package/dist/template-file.js +3 -13
  18. package/dist/types/add-ons.d.ts +3 -4
  19. package/dist/types/add-to-app.d.ts +16 -3
  20. package/dist/types/config-file.d.ts +4 -3
  21. package/dist/types/create-app.d.ts +1 -7
  22. package/dist/types/custom-add-ons/add-on.d.ts +69 -0
  23. package/dist/types/custom-add-ons/shared.d.ts +15 -0
  24. package/dist/types/custom-add-ons/starter.d.ts +7 -0
  25. package/dist/types/environment.d.ts +2 -1
  26. package/dist/types/file-helpers.d.ts +10 -0
  27. package/dist/types/frameworks.d.ts +2 -0
  28. package/dist/types/index.d.ts +13 -6
  29. package/dist/types/integrations/shadcn.d.ts +1 -1
  30. package/dist/types/options.d.ts +2 -0
  31. package/dist/types/package-json.d.ts +5 -0
  32. package/dist/types/package-manager.d.ts +6 -2
  33. package/dist/types/special-steps/index.d.ts +2 -0
  34. package/dist/types/special-steps/rimraf-node-modules.d.ts +2 -0
  35. package/dist/types/template-file.d.ts +1 -1
  36. package/dist/types/types.d.ts +752 -70
  37. package/dist/types.js +65 -1
  38. package/package.json +9 -3
  39. package/src/add-ons.ts +7 -19
  40. package/src/add-to-app.ts +196 -102
  41. package/src/config-file.ts +16 -13
  42. package/src/create-app.ts +129 -75
  43. package/src/custom-add-ons/add-on.ts +261 -0
  44. package/src/custom-add-ons/shared.ts +161 -0
  45. package/src/custom-add-ons/starter.ts +126 -0
  46. package/src/environment.ts +70 -11
  47. package/src/file-helpers.ts +164 -2
  48. package/src/frameworks.ts +21 -1
  49. package/src/index.ts +46 -11
  50. package/src/integrations/shadcn.ts +14 -4
  51. package/src/options.ts +11 -0
  52. package/src/package-json.ts +13 -6
  53. package/src/special-steps/index.ts +36 -0
  54. package/src/special-steps/rimraf-node-modules.ts +25 -0
  55. package/src/template-file.ts +3 -18
  56. package/src/types.ts +143 -85
  57. package/tests/add-ons.test.ts +5 -5
  58. package/tests/add-to-app.test.ts +358 -0
  59. package/tests/config-file.test.ts +15 -11
  60. package/tests/create-app.test.ts +43 -67
  61. package/tests/custom-add-ons/add-on.test.ts +12 -0
  62. package/tests/custom-add-ons/shared.test.ts +257 -0
  63. package/tests/custom-add-ons/starter.test.ts +58 -0
  64. package/tests/environment.test.ts +19 -0
  65. package/tests/integrations/shadcn.test.ts +48 -63
  66. package/tests/options.test.ts +42 -0
  67. package/tests/setupVitest.ts +6 -0
  68. package/tests/template-file.test.ts +54 -91
  69. 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, '/test')
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
- environment,
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, '/test')
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
- environment,
86
- {
87
- ...simpleOptions,
88
- chosenAddOns: [
89
- {
90
- id: 'test1',
91
- name: 'Test 1',
92
- },
93
- {
94
- id: 'test2',
95
- name: 'Test 2',
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, '/test')
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
- environment,
130
- {
131
- ...simpleOptions,
132
- chosenAddOns: [
133
- {
134
- id: 'test',
135
- name: 'Test',
136
- routes: [
137
- {
138
- path: '/test',
139
- name: 'Test',
140
- url: '/test',
141
- jsName: 'test',
142
- },
143
- ],
144
- } as AddOn,
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
- environment,
164
- {
165
- ...simpleOptions,
166
- chosenAddOns: [
167
- {
168
- id: 'test',
169
- name: 'Test',
170
- integrations: [
171
- {
172
- type: 'header-user',
173
- path: '/test',
174
- jsName: 'test',
175
- } as Integration,
176
- ],
177
- } as AddOn,
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, '/test')
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
  ],