create-vite-extra 2.1.1 → 2.3.0

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 (227) hide show
  1. package/README.md +39 -35
  2. package/index.js +155 -128
  3. package/package.json +6 -2
  4. package/template-deno-lit/.vscode/extensions.json +3 -0
  5. package/template-deno-lit/README.md +1 -12
  6. package/template-deno-lit/deno.json +8 -0
  7. package/template-deno-lit/index.html +1 -1
  8. package/template-deno-lit/src/my-element.js +3 -3
  9. package/template-deno-lit/vite.config.js +16 -0
  10. package/template-deno-lit-ts/.vscode/extensions.json +3 -0
  11. package/template-deno-lit-ts/README.md +1 -12
  12. package/template-deno-lit-ts/deno.json +9 -0
  13. package/template-deno-lit-ts/index.html +1 -1
  14. package/template-deno-lit-ts/src/my-element.ts +5 -4
  15. package/template-deno-lit-ts/tsconfig.json +1 -0
  16. package/template-deno-lit-ts/vite.config.ts +16 -0
  17. package/template-deno-preact/.vscode/extensions.json +3 -0
  18. package/template-deno-preact/README.md +1 -12
  19. package/template-deno-preact/deno.json +12 -1
  20. package/template-deno-preact/index.html +1 -1
  21. package/template-deno-preact/src/app.jsx +1 -1
  22. package/template-deno-preact/src/main.jsx +1 -1
  23. package/template-deno-preact/vite.config.js +8 -0
  24. package/template-deno-preact-ts/.vscode/extensions.json +3 -0
  25. package/template-deno-preact-ts/README.md +1 -12
  26. package/template-deno-preact-ts/deno.json +12 -1
  27. package/template-deno-preact-ts/index.html +1 -1
  28. package/template-deno-preact-ts/src/app.tsx +2 -1
  29. package/template-deno-preact-ts/src/main.tsx +1 -1
  30. package/template-deno-preact-ts/vite.config.ts +8 -0
  31. package/template-deno-react/.vscode/extensions.json +3 -0
  32. package/template-deno-react/README.md +1 -12
  33. package/template-deno-react/deno.json +16 -1
  34. package/template-deno-react/index.html +1 -1
  35. package/template-deno-react/src/App.jsx +2 -1
  36. package/template-deno-react/src/main.jsx +8 -6
  37. package/template-deno-react/vite.config.js +8 -0
  38. package/template-deno-react-ts/.vscode/extensions.json +3 -0
  39. package/template-deno-react-ts/README.md +1 -12
  40. package/template-deno-react-ts/deno.json +16 -1
  41. package/template-deno-react-ts/index.html +1 -1
  42. package/template-deno-react-ts/src/App.tsx +3 -1
  43. package/template-deno-react-ts/src/main.tsx +8 -6
  44. package/template-deno-react-ts/vite.config.ts +8 -0
  45. package/template-deno-solid/.vscode/extensions.json +3 -0
  46. package/template-deno-solid/README.md +1 -12
  47. package/template-deno-solid/deno.json +12 -1
  48. package/template-deno-solid/index.html +1 -1
  49. package/template-deno-solid/src/App.jsx +1 -1
  50. package/template-deno-solid/src/main.jsx +1 -1
  51. package/template-deno-solid/vite.config.js +8 -0
  52. package/template-deno-solid-ts/.vscode/extensions.json +3 -0
  53. package/template-deno-solid-ts/README.md +1 -12
  54. package/template-deno-solid-ts/deno.json +12 -1
  55. package/template-deno-solid-ts/index.html +1 -1
  56. package/template-deno-solid-ts/src/App.tsx +2 -1
  57. package/template-deno-solid-ts/src/main.tsx +2 -2
  58. package/template-deno-solid-ts/vite.config.ts +8 -0
  59. package/template-deno-svelte/.vscode/extensions.json +1 -1
  60. package/template-deno-svelte/README.md +1 -12
  61. package/template-deno-svelte/deno.json +10 -1
  62. package/template-deno-svelte/index.html +1 -1
  63. package/template-deno-svelte/src/App.svelte +1 -1
  64. package/template-deno-svelte/src/main.js +1 -1
  65. package/template-deno-svelte/svelte.config.js +2 -2
  66. package/template-deno-svelte/vite.config.js +8 -0
  67. package/template-deno-svelte-ts/.vscode/extensions.json +1 -1
  68. package/template-deno-svelte-ts/README.md +1 -12
  69. package/template-deno-svelte-ts/deno.json +10 -1
  70. package/template-deno-svelte-ts/index.html +1 -1
  71. package/template-deno-svelte-ts/src/App.svelte +1 -1
  72. package/template-deno-svelte-ts/svelte.config.js +2 -2
  73. package/template-deno-svelte-ts/vite.config.ts +8 -0
  74. package/template-deno-vanilla/.vscode/extensions.json +3 -0
  75. package/template-deno-vanilla/deno.json +8 -1
  76. package/template-deno-vanilla/index.html +1 -1
  77. package/template-deno-vanilla/main.js +1 -1
  78. package/template-deno-vanilla/vite.config.js +7 -0
  79. package/template-deno-vanilla-ts/.vscode/extensions.json +3 -0
  80. package/template-deno-vanilla-ts/deno.json +8 -1
  81. package/template-deno-vanilla-ts/index.html +1 -1
  82. package/template-deno-vanilla-ts/src/main.ts +1 -1
  83. package/template-deno-vanilla-ts/vite.config.ts +7 -0
  84. package/template-deno-vue/.vscode/extensions.json +3 -0
  85. package/template-deno-vue/README.md +1 -12
  86. package/template-deno-vue/deno.json +10 -1
  87. package/template-deno-vue/index.html +1 -1
  88. package/template-deno-vue/src/App.vue +1 -1
  89. package/template-deno-vue/src/components/HelloWorld.vue +1 -1
  90. package/template-deno-vue/vite.config.js +8 -0
  91. package/template-deno-vue-ts/.vscode/extensions.json +3 -0
  92. package/template-deno-vue-ts/README.md +1 -23
  93. package/template-deno-vue-ts/deno.json +10 -1
  94. package/template-deno-vue-ts/index.html +1 -1
  95. package/template-deno-vue-ts/src/App.vue +1 -1
  96. package/template-deno-vue-ts/vite.config.ts +8 -0
  97. package/template-library/index.html +1 -1
  98. package/template-library/main.js +1 -1
  99. package/template-library/package.json +1 -1
  100. package/template-library/vite.config.js +3 -3
  101. package/template-library-ts/index.html +1 -1
  102. package/template-library-ts/package.json +2 -2
  103. package/template-library-ts/src/main.ts +1 -1
  104. package/template-library-ts/vite.config.ts +3 -3
  105. package/template-ssr-preact/index.html +1 -1
  106. package/template-ssr-preact/package.json +6 -6
  107. package/template-ssr-preact/server.js +2 -2
  108. package/template-ssr-preact/src/app.jsx +1 -1
  109. package/template-ssr-preact/vite.config.js +5 -5
  110. package/template-ssr-preact-ts/index.html +1 -1
  111. package/template-ssr-preact-ts/package.json +9 -9
  112. package/template-ssr-preact-ts/server.js +2 -2
  113. package/template-ssr-preact-ts/src/app.tsx +1 -1
  114. package/template-ssr-preact-ts/vite.config.ts +5 -5
  115. package/template-ssr-react/index.html +1 -1
  116. package/template-ssr-react/package.json +8 -8
  117. package/template-ssr-react/server.js +2 -2
  118. package/template-ssr-react/src/App.jsx +1 -1
  119. package/template-ssr-react/src/entry-client.jsx +5 -5
  120. package/template-ssr-react/src/entry-server.jsx +5 -5
  121. package/template-ssr-react/vite.config.js +2 -2
  122. package/template-ssr-react-streaming/_gitignore +24 -0
  123. package/template-ssr-react-streaming/index.html +14 -0
  124. package/template-ssr-react-streaming/package-lock.json +2596 -0
  125. package/template-ssr-react-streaming/package.json +25 -0
  126. package/template-ssr-react-streaming/public/vite.svg +1 -0
  127. package/template-ssr-react-streaming/server.js +104 -0
  128. package/template-ssr-react-streaming/src/App.css +41 -0
  129. package/template-ssr-react-streaming/src/App.jsx +32 -0
  130. package/template-ssr-react-streaming/src/Card.jsx +18 -0
  131. package/template-ssr-react-streaming/src/assets/react.svg +1 -0
  132. package/template-ssr-react-streaming/src/entry-client.jsx +11 -0
  133. package/template-ssr-react-streaming/src/entry-server.jsx +17 -0
  134. package/template-ssr-react-streaming/src/index.css +69 -0
  135. package/template-ssr-react-streaming/vite.config.js +7 -0
  136. package/template-ssr-react-streaming-ts/_gitignore +24 -0
  137. package/template-ssr-react-streaming-ts/index.html +14 -0
  138. package/template-ssr-react-streaming-ts/package.json +30 -0
  139. package/template-ssr-react-streaming-ts/public/vite.svg +1 -0
  140. package/template-ssr-react-streaming-ts/server.js +104 -0
  141. package/template-ssr-react-streaming-ts/src/App.css +41 -0
  142. package/template-ssr-react-streaming-ts/src/App.tsx +32 -0
  143. package/template-ssr-react-streaming-ts/src/Card.tsx +18 -0
  144. package/template-ssr-react-streaming-ts/src/assets/react.svg +1 -0
  145. package/template-ssr-react-streaming-ts/src/entry-client.tsx +11 -0
  146. package/template-ssr-react-streaming-ts/src/entry-server.tsx +19 -0
  147. package/template-ssr-react-streaming-ts/src/index.css +69 -0
  148. package/template-ssr-react-streaming-ts/src/vite-env.d.ts +1 -0
  149. package/template-ssr-react-streaming-ts/tsconfig.json +25 -0
  150. package/template-ssr-react-streaming-ts/tsconfig.node.json +11 -0
  151. package/template-ssr-react-streaming-ts/vite.config.ts +7 -0
  152. package/template-ssr-react-ts/index.html +1 -1
  153. package/template-ssr-react-ts/package.json +11 -11
  154. package/template-ssr-react-ts/server.js +2 -2
  155. package/template-ssr-react-ts/src/App.tsx +1 -1
  156. package/template-ssr-react-ts/src/entry-client.tsx +5 -5
  157. package/template-ssr-react-ts/src/entry-server.tsx +5 -5
  158. package/template-ssr-react-ts/vite.config.ts +2 -2
  159. package/template-ssr-solid/index.html +1 -1
  160. package/template-ssr-solid/package.json +5 -5
  161. package/template-ssr-solid/server.js +2 -2
  162. package/template-ssr-solid/src/App.jsx +1 -1
  163. package/template-ssr-solid/vite.config.js +2 -2
  164. package/template-ssr-solid-ts/index.html +1 -1
  165. package/template-ssr-solid-ts/package.json +7 -7
  166. package/template-ssr-solid-ts/server.js +2 -2
  167. package/template-ssr-solid-ts/src/App.tsx +1 -1
  168. package/template-ssr-solid-ts/vite.config.ts +2 -2
  169. package/template-ssr-svelte/index.html +1 -1
  170. package/template-ssr-svelte/package.json +5 -5
  171. package/template-ssr-svelte/server.js +2 -2
  172. package/template-ssr-svelte/src/App.svelte +1 -1
  173. package/template-ssr-svelte/src/entry-client.js +1 -1
  174. package/template-ssr-svelte/svelte.config.js +1 -1
  175. package/template-ssr-svelte/vite.config.js +5 -5
  176. package/template-ssr-svelte-ts/index.html +1 -1
  177. package/template-ssr-svelte-ts/package-lock.json +2376 -0
  178. package/template-ssr-svelte-ts/package.json +11 -11
  179. package/template-ssr-svelte-ts/server.js +2 -2
  180. package/template-ssr-svelte-ts/src/App.svelte +1 -1
  181. package/template-ssr-svelte-ts/src/entry-client.ts +1 -1
  182. package/template-ssr-svelte-ts/svelte.config.js +1 -1
  183. package/template-ssr-svelte-ts/vite.config.ts +5 -5
  184. package/template-ssr-transform/package.json +1 -1
  185. package/template-ssr-vanilla/index.html +1 -1
  186. package/template-ssr-vanilla/package.json +3 -3
  187. package/template-ssr-vanilla/server.js +2 -2
  188. package/template-ssr-vanilla/src/entry-server.js +1 -1
  189. package/template-ssr-vanilla-ts/index.html +1 -1
  190. package/template-ssr-vanilla-ts/package.json +6 -6
  191. package/template-ssr-vanilla-ts/server.js +2 -2
  192. package/template-ssr-vanilla-ts/src/entry-server.ts +1 -1
  193. package/template-ssr-vue/index.html +1 -1
  194. package/template-ssr-vue/package.json +5 -5
  195. package/template-ssr-vue/server.js +2 -2
  196. package/template-ssr-vue/src/App.vue +1 -1
  197. package/template-ssr-vue/src/components/HelloWorld.vue +1 -1
  198. package/template-ssr-vue/vite.config.js +2 -2
  199. package/template-ssr-vue-streaming/index.html +1 -1
  200. package/template-ssr-vue-streaming/package.json +5 -5
  201. package/template-ssr-vue-streaming/server.js +2 -2
  202. package/template-ssr-vue-streaming/src/App.vue +1 -1
  203. package/template-ssr-vue-streaming/src/components/HelloWorld.vue +1 -1
  204. package/template-ssr-vue-streaming/vite.config.js +2 -2
  205. package/template-ssr-vue-streaming-ts/index.html +1 -1
  206. package/template-ssr-vue-streaming-ts/package-lock.json +2346 -0
  207. package/template-ssr-vue-streaming-ts/package.json +9 -9
  208. package/template-ssr-vue-streaming-ts/server.js +2 -2
  209. package/template-ssr-vue-streaming-ts/src/App.vue +1 -1
  210. package/template-ssr-vue-streaming-ts/vite.config.ts +2 -2
  211. package/template-ssr-vue-ts/index.html +1 -1
  212. package/template-ssr-vue-ts/package.json +9 -9
  213. package/template-ssr-vue-ts/server.js +2 -2
  214. package/template-ssr-vue-ts/src/App.vue +1 -1
  215. package/template-ssr-vue-ts/vite.config.ts +2 -2
  216. package/template-deno-lit/vite.config.mjs +0 -16
  217. package/template-deno-lit-ts/vite.config.mts +0 -16
  218. package/template-deno-preact/vite.config.mjs +0 -10
  219. package/template-deno-preact-ts/vite.config.mts +0 -10
  220. package/template-deno-react/vite.config.mjs +0 -10
  221. package/template-deno-react-ts/vite.config.mts +0 -10
  222. package/template-deno-solid/vite.config.mjs +0 -9
  223. package/template-deno-solid-ts/vite.config.mts +0 -9
  224. package/template-deno-svelte/vite.config.mjs +0 -9
  225. package/template-deno-svelte-ts/vite.config.mts +0 -9
  226. package/template-deno-vue/vite.config.mjs +0 -9
  227. package/template-deno-vue-ts/vite.config.mts +0 -9
package/README.md CHANGED
@@ -32,7 +32,7 @@ $ deno run -A npm:create-vite-extra
32
32
  With Bun:
33
33
 
34
34
  ```bash
35
- $ bunx create-vite-extra
35
+ $ bun create vite-extra
36
36
  ```
37
37
 
38
38
  Then follow the prompts!
@@ -53,44 +53,48 @@ pnpm create vite-extra my-vue-app --template ssr-vue
53
53
  deno run -A npm:create-vite-extra --template deno-vue
54
54
 
55
55
  # Bun
56
- bunx create-vite my-vue-app --template ssr-vue
56
+ bun create vite-extra my-vue-app --template ssr-vue
57
57
  ```
58
58
 
59
59
  Currently supported template presets include:
60
60
 
61
- | Template | Try online |
62
- | ---------------------- | ------------------------------------------------------------------------------------------------------------------ |
63
- | `ssr-vanilla` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vanilla) |
64
- | `ssr-vanilla-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vanilla-ts) |
65
- | `ssr-vue` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue) |
66
- | `ssr-vue-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue-ts) |
67
- | `ssr-vue-streaming` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue-streaming) |
68
- | `ssr-vue-streaming-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue-streaming-ts) |
69
- | `ssr-react` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-react) |
70
- | `ssr-react-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-react-ts) |
71
- | `ssr-react-swc` | |
72
- | `ssr-react-swc-ts` | |
73
- | `ssr-preact` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-preact) |
74
- | `ssr-preact-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-preact-ts) |
75
- | `ssr-svelte` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-svelte) |
76
- | `ssr-svelte-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-svelte-ts) |
77
- | `deno-vanilla` | |
78
- | `deno-vanilla-ts` | |
79
- | `deno-vue` | |
80
- | `deno-vue-ts` | |
81
- | `deno-react` | |
82
- | `deno-react-ts` | |
83
- | `deno-react-swc` | |
84
- | `deno-react-swc-ts` | |
85
- | `deno-preact` | |
86
- | `deno-preact-ts` | |
87
- | `deno-lit` | |
88
- | `deno-lit-ts` | |
89
- | `deno-svelte` | |
90
- | `deno-svelte-ts` | |
91
- | `library` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-library) |
92
- | `library-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-library-ts) |
93
- | `ssr-transform` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-transform) |
61
+ | Template | Try online |
62
+ | ---------------------------- | -------------------------------------------------------------------------------------------------------------------- |
63
+ | `ssr-vanilla` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vanilla) |
64
+ | `ssr-vanilla-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vanilla-ts) |
65
+ | `ssr-vue` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue) |
66
+ | `ssr-vue-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue-ts) |
67
+ | `ssr-vue-streaming` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue-streaming) |
68
+ | `ssr-vue-streaming-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-vue-streaming-ts) |
69
+ | `ssr-react` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-react) |
70
+ | `ssr-react-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-react-ts) |
71
+ | `ssr-react-streaming` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-react-streaming) |
72
+ | `ssr-react-streaming-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-react-streaming-ts) |
73
+ | `ssr-react-swc` | |
74
+ | `ssr-react-swc-ts` | |
75
+ | `ssr-react-swc-streaming` | |
76
+ | `ssr-react-swc-streaming-ts` | |
77
+ | `ssr-preact` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-preact) |
78
+ | `ssr-preact-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-preact-ts) |
79
+ | `ssr-svelte` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-svelte) |
80
+ | `ssr-svelte-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-svelte-ts) |
81
+ | `deno-vanilla` | |
82
+ | `deno-vanilla-ts` | |
83
+ | `deno-vue` | |
84
+ | `deno-vue-ts` | |
85
+ | `deno-react` | |
86
+ | `deno-react-ts` | |
87
+ | `deno-react-swc` | |
88
+ | `deno-react-swc-ts` | |
89
+ | `deno-preact` | |
90
+ | `deno-preact-ts` | |
91
+ | `deno-lit` | |
92
+ | `deno-lit-ts` | |
93
+ | `deno-svelte` | |
94
+ | `deno-svelte-ts` | |
95
+ | `library` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-library) |
96
+ | `library-ts` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-library-ts) |
97
+ | `ssr-transform` | [StackBlitz](https://stackblitz.com/fork/github/bluwy/create-vite-extra/tree/master/template-ssr-transform) |
94
98
 
95
99
  You can use `.` for the project name to scaffold in the current directory.
96
100
 
package/index.js CHANGED
@@ -6,18 +6,20 @@ import path from 'node:path'
6
6
  import { fileURLToPath } from 'node:url'
7
7
  import minimist from 'minimist'
8
8
  import prompts from 'prompts'
9
- import {
9
+ import colors from 'picocolors'
10
+
11
+ const {
10
12
  blue,
11
13
  cyan,
12
14
  green,
13
- lightRed,
14
- lightBlue,
15
+ redBright,
16
+ blueBright,
15
17
  magenta,
16
18
  red,
17
19
  reset,
18
20
  yellow,
19
- lightMagenta
20
- } from 'kolorist'
21
+ magentaBright,
22
+ } = colors
21
23
 
22
24
  // Avoids autoconversion to number of the project name by defining that the args
23
25
  // non associated with an option ( _ ) needs to be parsed as a string. See #4606
@@ -32,14 +34,14 @@ const FRAMEWORKS = [
32
34
  {
33
35
  name: 'ssr-vanilla',
34
36
  display: 'JavaScript',
35
- color: yellow
37
+ color: yellow,
36
38
  },
37
39
  {
38
40
  name: 'ssr-vanilla-ts',
39
41
  display: 'TypeScript',
40
- color: blue
41
- }
42
- ]
42
+ color: blue,
43
+ },
44
+ ],
43
45
  },
44
46
  {
45
47
  name: 'ssr-vue',
@@ -53,14 +55,14 @@ const FRAMEWORKS = [
53
55
  {
54
56
  name: 'ssr-vue-streaming',
55
57
  display: 'JavaScript',
56
- color: yellow
58
+ color: yellow,
57
59
  },
58
60
  {
59
61
  name: 'ssr-vue-streaming-ts',
60
62
  display: 'TypeScript',
61
- color: blue
62
- }
63
- ]
63
+ color: blue,
64
+ },
65
+ ],
64
66
  },
65
67
  {
66
68
  name: 'ssr-vue',
@@ -70,42 +72,76 @@ const FRAMEWORKS = [
70
72
  {
71
73
  name: 'ssr-vue',
72
74
  display: 'JavaScript',
73
- color: yellow
75
+ color: yellow,
74
76
  },
75
77
  {
76
78
  name: 'ssr-vue-ts',
77
79
  display: 'TypeScript',
78
- color: blue
79
- }
80
- ]
81
- }
82
- ]
80
+ color: blue,
81
+ },
82
+ ],
83
+ },
84
+ ],
83
85
  },
84
86
  {
85
87
  name: 'ssr-react',
86
88
  color: cyan,
87
89
  variants: [
88
90
  {
89
- name: 'ssr-react',
90
- display: 'JavaScript',
91
- color: yellow
92
- },
93
- {
94
- name: 'ssr-react-ts',
95
- display: 'TypeScript',
96
- color: blue
91
+ name: 'ssr-react-streaming',
92
+ display: 'Streaming',
93
+ color: cyan,
94
+ variants: [
95
+ {
96
+ name: 'ssr-react-streaming',
97
+ display: 'JavaScript',
98
+ color: yellow,
99
+ },
100
+ {
101
+ name: 'ssr-react-streaming-ts',
102
+ display: 'TypeScript',
103
+ color: blue,
104
+ },
105
+ {
106
+ name: 'ssr-react-swc-streaming',
107
+ display: 'JavaScript + SWC',
108
+ color: yellow,
109
+ },
110
+ {
111
+ name: 'ssr-react-swc-streaming-ts',
112
+ display: 'TypeScript + SWC',
113
+ color: blue,
114
+ },
115
+ ],
97
116
  },
98
117
  {
99
- name: 'ssr-react-swc',
100
- display: 'JavaScript + SWC',
101
- color: yellow
118
+ name: 'ssr-react',
119
+ display: 'Non-streaming',
120
+ color: cyan,
121
+ variants: [
122
+ {
123
+ name: 'ssr-react',
124
+ display: 'JavaScript',
125
+ color: yellow,
126
+ },
127
+ {
128
+ name: 'ssr-react-ts',
129
+ display: 'TypeScript',
130
+ color: blue,
131
+ },
132
+ {
133
+ name: 'ssr-react-swc',
134
+ display: 'JavaScript + SWC',
135
+ color: yellow,
136
+ },
137
+ {
138
+ name: 'ssr-react-swc-ts',
139
+ display: 'TypeScript + SWC',
140
+ color: blue,
141
+ },
142
+ ],
102
143
  },
103
- {
104
- name: 'ssr-react-swc-ts',
105
- display: 'TypeScript + SWC',
106
- color: blue
107
- }
108
- ]
144
+ ],
109
145
  },
110
146
  {
111
147
  name: 'ssr-preact',
@@ -114,14 +150,14 @@ const FRAMEWORKS = [
114
150
  {
115
151
  name: 'ssr-preact',
116
152
  display: 'JavaScript',
117
- color: yellow
153
+ color: yellow,
118
154
  },
119
155
  {
120
156
  name: 'ssr-preact-ts',
121
157
  display: 'TypeScript',
122
- color: blue
123
- }
124
- ]
158
+ color: blue,
159
+ },
160
+ ],
125
161
  },
126
162
  {
127
163
  name: 'ssr-svelte',
@@ -130,30 +166,30 @@ const FRAMEWORKS = [
130
166
  {
131
167
  name: 'ssr-svelte',
132
168
  display: 'JavaScript',
133
- color: yellow
169
+ color: yellow,
134
170
  },
135
171
  {
136
172
  name: 'ssr-svelte-ts',
137
173
  display: 'TypeScript',
138
- color: blue
139
- }
140
- ]
174
+ color: blue,
175
+ },
176
+ ],
141
177
  },
142
178
  {
143
179
  name: 'ssr-solid',
144
- color: lightBlue,
180
+ color: blueBright,
145
181
  variants: [
146
182
  {
147
183
  name: 'ssr-solid',
148
184
  display: 'JavaScript',
149
- color: yellow
185
+ color: yellow,
150
186
  },
151
187
  {
152
188
  name: 'ssr-solid-ts',
153
189
  display: 'TypeScript',
154
- color: blue
155
- }
156
- ]
190
+ color: blue,
191
+ },
192
+ ],
157
193
  },
158
194
  {
159
195
  name: 'deno-vanilla',
@@ -162,14 +198,14 @@ const FRAMEWORKS = [
162
198
  {
163
199
  name: 'deno-vanilla',
164
200
  display: 'JavaScript',
165
- color: yellow
201
+ color: yellow,
166
202
  },
167
203
  {
168
204
  name: 'deno-vanilla-ts',
169
205
  display: 'TypeScript',
170
- color: blue
171
- }
172
- ]
206
+ color: blue,
207
+ },
208
+ ],
173
209
  },
174
210
  {
175
211
  name: 'deno-vue',
@@ -178,14 +214,14 @@ const FRAMEWORKS = [
178
214
  {
179
215
  name: 'deno-vue',
180
216
  display: 'JavaScript',
181
- color: yellow
217
+ color: yellow,
182
218
  },
183
219
  {
184
220
  name: 'deno-vue-ts',
185
221
  display: 'TypeScript',
186
- color: blue
187
- }
188
- ]
222
+ color: blue,
223
+ },
224
+ ],
189
225
  },
190
226
  {
191
227
  name: 'deno-react',
@@ -194,24 +230,24 @@ const FRAMEWORKS = [
194
230
  {
195
231
  name: 'deno-react',
196
232
  display: 'JavaScript',
197
- color: yellow
233
+ color: yellow,
198
234
  },
199
235
  {
200
236
  name: 'deno-react-ts',
201
237
  display: 'TypeScript',
202
- color: blue
238
+ color: blue,
203
239
  },
204
240
  {
205
241
  name: 'deno-react-swc',
206
242
  display: 'JavaScript + SWC',
207
- color: yellow
243
+ color: yellow,
208
244
  },
209
245
  {
210
246
  name: 'deno-react-swc-ts',
211
247
  display: 'TypeScript + SWC',
212
- color: blue
213
- }
214
- ]
248
+ color: blue,
249
+ },
250
+ ],
215
251
  },
216
252
  {
217
253
  name: 'deno-preact',
@@ -220,30 +256,30 @@ const FRAMEWORKS = [
220
256
  {
221
257
  name: 'deno-preact',
222
258
  display: 'JavaScript',
223
- color: yellow
259
+ color: yellow,
224
260
  },
225
261
  {
226
262
  name: 'deno-preact-ts',
227
263
  display: 'TypeScript',
228
- color: blue
229
- }
230
- ]
264
+ color: blue,
265
+ },
266
+ ],
231
267
  },
232
268
  {
233
269
  name: 'deno-lit',
234
- color: lightRed,
270
+ color: redBright,
235
271
  variants: [
236
272
  {
237
273
  name: 'deno-lit',
238
274
  display: 'JavaScript',
239
- color: yellow
275
+ color: yellow,
240
276
  },
241
277
  {
242
278
  name: 'deno-lit-ts',
243
279
  display: 'TypeScript',
244
- color: blue
245
- }
246
- ]
280
+ color: blue,
281
+ },
282
+ ],
247
283
  },
248
284
  {
249
285
  name: 'deno-svelte',
@@ -252,59 +288,59 @@ const FRAMEWORKS = [
252
288
  {
253
289
  name: 'deno-svelte',
254
290
  display: 'JavaScript',
255
- color: yellow
291
+ color: yellow,
256
292
  },
257
293
  {
258
294
  name: 'deno-svelte-ts',
259
295
  display: 'TypeScript',
260
- color: blue
261
- }
262
- ]
296
+ color: blue,
297
+ },
298
+ ],
263
299
  },
264
300
  {
265
301
  name: 'deno-solid',
266
- color: lightBlue,
302
+ color: blueBright,
267
303
  variants: [
268
304
  {
269
305
  name: 'deno-solid',
270
306
  display: 'JavaScript',
271
- color: yellow
307
+ color: yellow,
272
308
  },
273
309
  {
274
310
  name: 'deno-solid-ts',
275
311
  display: 'TypeScript',
276
- color: blue
277
- }
278
- ]
312
+ color: blue,
313
+ },
314
+ ],
279
315
  },
280
316
  {
281
317
  name: 'library',
282
- color: lightMagenta,
318
+ color: magentaBright,
283
319
  variants: [
284
320
  {
285
321
  name: 'library',
286
322
  display: 'JavaScript',
287
- color: yellow
323
+ color: yellow,
288
324
  },
289
325
  {
290
326
  name: 'library-ts',
291
327
  display: 'TypeScript',
292
- color: blue
293
- }
294
- ]
328
+ color: blue,
329
+ },
330
+ ],
295
331
  },
296
332
  {
297
333
  name: 'ssr-transform',
298
- color: lightRed
299
- }
334
+ color: redBright,
335
+ },
300
336
  ]
301
337
 
302
338
  const TEMPLATES = FRAMEWORKS.map(
303
- (f) => (f.variants && f.variants.map((v) => v.name)) || [f.name]
339
+ (f) => (f.variants && f.variants.map((v) => v.name)) || [f.name],
304
340
  ).reduce((a, b) => a.concat(b), [])
305
341
 
306
342
  const renameFiles = {
307
- _gitignore: '.gitignore'
343
+ _gitignore: '.gitignore',
308
344
  }
309
345
 
310
346
  async function init() {
@@ -329,7 +365,7 @@ async function init() {
329
365
  initial: defaultTargetDir,
330
366
  onState: (state) => {
331
367
  targetDir = formatTargetDir(state.value) || defaultTargetDir
332
- }
368
+ },
333
369
  },
334
370
  {
335
371
  type: () =>
@@ -339,7 +375,7 @@ async function init() {
339
375
  (targetDir === '.'
340
376
  ? 'Current directory'
341
377
  : `Target directory "${targetDir}"`) +
342
- ` is not empty. Remove existing files and continue?`
378
+ ` is not empty. Remove existing files and continue?`,
343
379
  },
344
380
  {
345
381
  // @ts-ignore
@@ -349,7 +385,7 @@ async function init() {
349
385
  }
350
386
  return null
351
387
  },
352
- name: 'overwriteChecker'
388
+ name: 'overwriteChecker',
353
389
  },
354
390
  {
355
391
  type: () => (isValidPackageName(getProjectName()) ? null : 'text'),
@@ -357,7 +393,7 @@ async function init() {
357
393
  message: reset('Package name:'),
358
394
  initial: () => toValidPackageName(getProjectName()),
359
395
  validate: (dir) =>
360
- isValidPackageName(dir) || 'Invalid package.json name'
396
+ isValidPackageName(dir) || 'Invalid package.json name',
361
397
  },
362
398
  {
363
399
  type:
@@ -366,7 +402,7 @@ async function init() {
366
402
  message:
367
403
  typeof argTemplate === 'string' && !TEMPLATES.includes(argTemplate)
368
404
  ? reset(
369
- `"${argTemplate}" isn't a valid template. Please choose from below: `
405
+ `"${argTemplate}" isn't a valid template. Please choose from below: `,
370
406
  )
371
407
  : reset('Select a template:'),
372
408
  initial: 0,
@@ -374,9 +410,9 @@ async function init() {
374
410
  const frameworkColor = framework.color
375
411
  return {
376
412
  title: frameworkColor(framework.display || framework.name),
377
- value: framework
413
+ value: framework,
378
414
  }
379
- })
415
+ }),
380
416
  },
381
417
  // Variant 1
382
418
  {
@@ -390,9 +426,9 @@ async function init() {
390
426
  const variantColor = variant.color
391
427
  return {
392
428
  title: variantColor(variant.display || variant.name),
393
- value: variant.variants ? variant : variant.name
429
+ value: variant.variants ? variant : variant.name,
394
430
  }
395
- })
431
+ }),
396
432
  },
397
433
  // Variant 2
398
434
  {
@@ -406,16 +442,16 @@ async function init() {
406
442
  const variantColor = variant.color
407
443
  return {
408
444
  title: variantColor(variant.display || variant.name),
409
- value: variant.name
445
+ value: variant.name,
410
446
  }
411
- })
412
- }
447
+ }),
448
+ },
413
449
  ],
414
450
  {
415
451
  onCancel: () => {
416
452
  throw new Error(red('✖') + ' Operation cancelled')
417
- }
418
- }
453
+ },
454
+ },
419
455
  )
420
456
  } catch (cancelled) {
421
457
  console.log(cancelled.message)
@@ -446,7 +482,7 @@ async function init() {
446
482
  const templateDir = path.resolve(
447
483
  fileURLToPath(import.meta.url),
448
484
  '..',
449
- `template-${template}`
485
+ `template-${template}`,
450
486
  )
451
487
 
452
488
  const write = (file, content) => {
@@ -479,7 +515,7 @@ async function init() {
479
515
  console.log()
480
516
  } else {
481
517
  const pkg = JSON.parse(
482
- fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8')
518
+ fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8'),
483
519
  )
484
520
 
485
521
  pkg.name = packageName || getProjectName()
@@ -532,7 +568,7 @@ function copy(src, dest) {
532
568
  */
533
569
  function isValidPackageName(projectName) {
534
570
  return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(
535
- projectName
571
+ projectName,
536
572
  )
537
573
  }
538
574
 
@@ -591,7 +627,7 @@ function pkgFromUserAgent(userAgent) {
591
627
  const pkgSpecArr = pkgSpec.split('/')
592
628
  return {
593
629
  name: pkgSpecArr[0],
594
- version: pkgSpecArr[1]
630
+ version: pkgSpecArr[1],
595
631
  }
596
632
  }
597
633
 
@@ -602,34 +638,25 @@ function pkgFromUserAgent(userAgent) {
602
638
  function setupReactSwc(root, { isTs, isDeno }) {
603
639
  if (isDeno) {
604
640
  editFile(path.resolve(root, 'deno.json'), (content) => {
605
- return content.replace(/deno run -A/g, 'deno run -A --unstable')
641
+ return content.replace(
642
+ /"@vitejs\/plugin-react": ".+?"/,
643
+ `"@vitejs/plugin-react-swc": "npm:@vitejs/plugin-react-swc@^3.7.1"`,
644
+ )
606
645
  })
607
- editFile(
608
- path.resolve(root, `vite.config.m${isTs ? 'ts' : 'js'}`),
609
- (content) => {
610
- return content.replace(
611
- /@vitejs\/plugin-react@.+?'/,
612
- "@vitejs/plugin-react-swc@^3.5.0'"
613
- )
614
- }
615
- )
616
646
  } else {
617
647
  editFile(path.resolve(root, 'package.json'), (content) => {
618
648
  return content.replace(
619
649
  /"@vitejs\/plugin-react": ".+?"/,
620
- `"@vitejs/plugin-react-swc": "^3.5.0"`
650
+ `"@vitejs/plugin-react-swc": "^3.7.1"`,
621
651
  )
622
652
  })
623
- editFile(
624
- path.resolve(root, `vite.config.${isTs ? 'ts' : 'js'}`),
625
- (content) => {
626
- return content.replace(
627
- '@vitejs/plugin-react',
628
- '@vitejs/plugin-react-swc'
629
- )
630
- }
631
- )
632
653
  }
654
+ editFile(
655
+ path.resolve(root, `vite.config.${isTs ? 'ts' : 'js'}`),
656
+ (content) => {
657
+ return content.replace('@vitejs/plugin-react', '@vitejs/plugin-react-swc')
658
+ },
659
+ )
633
660
  }
634
661
 
635
662
  /**