@tanstack/start-plugin-core 1.20.3-alpha.1

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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/dist/cjs/compilers.cjs +402 -0
  4. package/dist/cjs/compilers.cjs.map +1 -0
  5. package/dist/cjs/compilers.d.cts +21 -0
  6. package/dist/cjs/extractHtmlScripts.cjs +35 -0
  7. package/dist/cjs/extractHtmlScripts.cjs.map +1 -0
  8. package/dist/cjs/extractHtmlScripts.d.cts +4 -0
  9. package/dist/cjs/index.cjs +15 -0
  10. package/dist/cjs/index.cjs.map +1 -0
  11. package/dist/cjs/index.d.cts +7 -0
  12. package/dist/cjs/nitro/build-nitro.cjs +18 -0
  13. package/dist/cjs/nitro/build-nitro.cjs.map +1 -0
  14. package/dist/cjs/nitro/build-nitro.d.cts +2 -0
  15. package/dist/cjs/nitro/build-sitemap.cjs +54 -0
  16. package/dist/cjs/nitro/build-sitemap.cjs.map +1 -0
  17. package/dist/cjs/nitro/build-sitemap.d.cts +9 -0
  18. package/dist/cjs/nitro/dev-server-plugin.cjs +128 -0
  19. package/dist/cjs/nitro/dev-server-plugin.cjs.map +1 -0
  20. package/dist/cjs/nitro/dev-server-plugin.d.cts +5 -0
  21. package/dist/cjs/nitro/nitro-plugin.cjs +128 -0
  22. package/dist/cjs/nitro/nitro-plugin.cjs.map +1 -0
  23. package/dist/cjs/nitro/nitro-plugin.d.cts +3 -0
  24. package/dist/cjs/plugin.cjs +117 -0
  25. package/dist/cjs/plugin.cjs.map +1 -0
  26. package/dist/cjs/plugin.d.cts +2713 -0
  27. package/dist/cjs/prerender.cjs +171 -0
  28. package/dist/cjs/prerender.cjs.map +1 -0
  29. package/dist/cjs/prerender.d.cts +8 -0
  30. package/dist/cjs/queue.cjs +131 -0
  31. package/dist/cjs/queue.cjs.map +1 -0
  32. package/dist/cjs/queue.d.cts +32 -0
  33. package/dist/cjs/routesManifestPlugin.cjs +165 -0
  34. package/dist/cjs/routesManifestPlugin.cjs.map +1 -0
  35. package/dist/cjs/routesManifestPlugin.d.cts +3 -0
  36. package/dist/cjs/schema.cjs +136 -0
  37. package/dist/cjs/schema.cjs.map +1 -0
  38. package/dist/cjs/schema.d.cts +8128 -0
  39. package/dist/cjs/start-compiler-plugin.cjs +72 -0
  40. package/dist/cjs/start-compiler-plugin.cjs.map +1 -0
  41. package/dist/cjs/start-compiler-plugin.d.cts +13 -0
  42. package/dist/cjs/start-server-routes-plugin/config.d.cts +49 -0
  43. package/dist/cjs/start-server-routes-plugin/plugin.cjs +608 -0
  44. package/dist/cjs/start-server-routes-plugin/plugin.cjs.map +1 -0
  45. package/dist/cjs/start-server-routes-plugin/plugin.d.cts +3 -0
  46. package/dist/cjs/start-server-routes-plugin/template.cjs +111 -0
  47. package/dist/cjs/start-server-routes-plugin/template.cjs.map +1 -0
  48. package/dist/cjs/start-server-routes-plugin/template.d.cts +34 -0
  49. package/dist/esm/compilers.d.ts +21 -0
  50. package/dist/esm/compilers.js +384 -0
  51. package/dist/esm/compilers.js.map +1 -0
  52. package/dist/esm/extractHtmlScripts.d.ts +4 -0
  53. package/dist/esm/extractHtmlScripts.js +18 -0
  54. package/dist/esm/extractHtmlScripts.js.map +1 -0
  55. package/dist/esm/index.d.ts +7 -0
  56. package/dist/esm/index.js +15 -0
  57. package/dist/esm/index.js.map +1 -0
  58. package/dist/esm/nitro/build-nitro.d.ts +2 -0
  59. package/dist/esm/nitro/build-nitro.js +18 -0
  60. package/dist/esm/nitro/build-nitro.js.map +1 -0
  61. package/dist/esm/nitro/build-sitemap.d.ts +9 -0
  62. package/dist/esm/nitro/build-sitemap.js +54 -0
  63. package/dist/esm/nitro/build-sitemap.js.map +1 -0
  64. package/dist/esm/nitro/dev-server-plugin.d.ts +5 -0
  65. package/dist/esm/nitro/dev-server-plugin.js +128 -0
  66. package/dist/esm/nitro/dev-server-plugin.js.map +1 -0
  67. package/dist/esm/nitro/nitro-plugin.d.ts +3 -0
  68. package/dist/esm/nitro/nitro-plugin.js +128 -0
  69. package/dist/esm/nitro/nitro-plugin.js.map +1 -0
  70. package/dist/esm/plugin.d.ts +2713 -0
  71. package/dist/esm/plugin.js +117 -0
  72. package/dist/esm/plugin.js.map +1 -0
  73. package/dist/esm/prerender.d.ts +8 -0
  74. package/dist/esm/prerender.js +171 -0
  75. package/dist/esm/prerender.js.map +1 -0
  76. package/dist/esm/queue.d.ts +32 -0
  77. package/dist/esm/queue.js +131 -0
  78. package/dist/esm/queue.js.map +1 -0
  79. package/dist/esm/routesManifestPlugin.d.ts +3 -0
  80. package/dist/esm/routesManifestPlugin.js +165 -0
  81. package/dist/esm/routesManifestPlugin.js.map +1 -0
  82. package/dist/esm/schema.d.ts +8128 -0
  83. package/dist/esm/schema.js +136 -0
  84. package/dist/esm/schema.js.map +1 -0
  85. package/dist/esm/start-compiler-plugin.d.ts +13 -0
  86. package/dist/esm/start-compiler-plugin.js +72 -0
  87. package/dist/esm/start-compiler-plugin.js.map +1 -0
  88. package/dist/esm/start-server-routes-plugin/config.d.ts +49 -0
  89. package/dist/esm/start-server-routes-plugin/plugin.d.ts +3 -0
  90. package/dist/esm/start-server-routes-plugin/plugin.js +608 -0
  91. package/dist/esm/start-server-routes-plugin/plugin.js.map +1 -0
  92. package/dist/esm/start-server-routes-plugin/template.d.ts +34 -0
  93. package/dist/esm/start-server-routes-plugin/template.js +111 -0
  94. package/dist/esm/start-server-routes-plugin/template.js.map +1 -0
  95. package/package.json +72 -0
  96. package/src/compilers.ts +759 -0
  97. package/src/extractHtmlScripts.ts +19 -0
  98. package/src/index.ts +15 -0
  99. package/src/nitro/build-nitro.ts +27 -0
  100. package/src/nitro/build-sitemap.ts +79 -0
  101. package/src/nitro/dev-server-plugin.ts +159 -0
  102. package/src/nitro/nitro-plugin.ts +161 -0
  103. package/src/plugin.ts +145 -0
  104. package/src/prerender.ts +245 -0
  105. package/src/queue.ts +153 -0
  106. package/src/routesManifestPlugin.ts +216 -0
  107. package/src/schema.ts +193 -0
  108. package/src/start-compiler-plugin.ts +111 -0
  109. package/src/start-server-routes-plugin/config.ts +8 -0
  110. package/src/start-server-routes-plugin/plugin.ts +890 -0
  111. package/src/start-server-routes-plugin/template.ts +164 -0
@@ -0,0 +1,164 @@
1
+ import { format } from '@tanstack/router-generator'
2
+ import type { Config } from './config'
3
+
4
+ type TemplateTag = 'tsrImports' | 'tsrPath' | 'tsrExportStart' | 'tsrExportEnd'
5
+
6
+ export function fillTemplate(
7
+ config: Config,
8
+ template: string,
9
+ values: Record<TemplateTag, string>,
10
+ ) {
11
+ const replaced = template.replace(
12
+ /%%(\w+)%%/g,
13
+ (_, key) => values[key as TemplateTag] || '',
14
+ )
15
+ return format(replaced, config)
16
+ }
17
+
18
+ type TargetTemplate = {
19
+ fullPkg: string
20
+ subPkg: string
21
+ rootRoute: {
22
+ template: () => string
23
+ imports: {
24
+ tsrImports: () => string
25
+ tsrExportStart: () => string
26
+ tsrExportEnd: () => string
27
+ }
28
+ }
29
+ route: {
30
+ template: () => string
31
+ imports: {
32
+ tsrImports: () => string
33
+ tsrExportStart: (routePath: string) => string
34
+ tsrExportEnd: () => string
35
+ }
36
+ }
37
+ lazyRoute: {
38
+ template: () => string
39
+ imports: {
40
+ tsrImports: () => string
41
+ tsrExportStart: (routePath: string) => string
42
+ tsrExportEnd: () => string
43
+ }
44
+ }
45
+ }
46
+
47
+ export function getTargetTemplate(target: Config['target']): TargetTemplate {
48
+ switch (target) {
49
+ // TODO: Remove this disabled eslint rule when more target types are added.
50
+
51
+ case 'react':
52
+ return {
53
+ fullPkg: '@tanstack/react-start/server',
54
+ subPkg: 'react-start/server',
55
+ // TODO: Clean this up if it's not used
56
+ rootRoute: {
57
+ template: () =>
58
+ [
59
+ 'import * as React from "react"\n',
60
+ '%%tsrImports%%',
61
+ '\n\n',
62
+ '%%tsrExportStart%%{\n component: RootComponent\n }%%tsrExportEnd%%\n\n',
63
+ 'function RootComponent() { return (<React.Fragment><div>Hello "%%tsrPath%%"!</div><Outlet /></React.Fragment>) };\n',
64
+ ].join(''),
65
+ imports: {
66
+ tsrImports: () =>
67
+ "import { Outlet, createRootRoute } from '@tanstack/react-router';",
68
+ tsrExportStart: () => 'export const Route = createRootRoute(',
69
+ tsrExportEnd: () => ');',
70
+ },
71
+ },
72
+ route: {
73
+ template: () =>
74
+ [
75
+ '%%tsrImports%%',
76
+ '\n\n',
77
+ '%%tsrExportStart%%{\n component: RouteComponent\n }%%tsrExportEnd%%\n\n',
78
+ 'function RouteComponent() { return <div>Hello "%%tsrPath%%"!</div> };\n',
79
+ ].join(''),
80
+ imports: {
81
+ tsrImports: () => '',
82
+ tsrExportStart: () => `export const Route = createFileRoute(`,
83
+ tsrExportEnd: () => ');',
84
+ },
85
+ },
86
+ lazyRoute: {
87
+ template: () =>
88
+ [
89
+ '%%tsrImports%%',
90
+ '\n\n',
91
+ '%%tsrExportStart%%{\n component: RouteComponent\n }%%tsrExportEnd%%\n\n',
92
+ 'function RouteComponent() { return <div>Hello "%%tsrPath%%"!</div> };\n',
93
+ ].join(''),
94
+ imports: {
95
+ tsrImports: () =>
96
+ "import { createLazyFileRoute } from '@tanstack/react-router';",
97
+ tsrExportStart: (routePath) =>
98
+ `export const Route = createLazyFileRoute('${routePath}')(`,
99
+ tsrExportEnd: () => ');',
100
+ },
101
+ },
102
+ }
103
+ case 'solid':
104
+ return {
105
+ fullPkg: '@tanstack/solid-start/server',
106
+ subPkg: 'solid-start/server',
107
+ rootRoute: {
108
+ template: () =>
109
+ [
110
+ 'import * as Solid from "solid-js"\n',
111
+ '%%tsrImports%%',
112
+ '\n\n',
113
+ '%%tsrExportStart%%{\n component: RootComponent\n }%%tsrExportEnd%%\n\n',
114
+ 'function RootComponent() { return (<><div>Hello "%%tsrPath%%"!</div><Outlet /></>) };\n',
115
+ ].join(''),
116
+ imports: {
117
+ tsrImports: () =>
118
+ "import { Outlet, createRootRoute } from '@tanstack/solid-router';",
119
+ tsrExportStart: () => 'export const Route = createRootRoute(',
120
+ tsrExportEnd: () => ');',
121
+ },
122
+ },
123
+ route: {
124
+ template: () =>
125
+ [
126
+ '%%tsrImports%%',
127
+ '\n\n',
128
+ '%%tsrExportStart%%{\n component: RouteComponent\n }%%tsrExportEnd%%\n\n',
129
+ 'function RouteComponent() { return <div>Hello "%%tsrPath%%"!</div> };\n',
130
+ ].join(''),
131
+ imports: {
132
+ tsrImports: () => '',
133
+ tsrExportStart: () => `export const Route = createFileRoute(`,
134
+ tsrExportEnd: () => ');',
135
+ },
136
+ },
137
+ lazyRoute: {
138
+ template: () =>
139
+ [
140
+ '%%tsrImports%%',
141
+ '\n\n',
142
+ '%%tsrExportStart%%{\n component: RouteComponent\n }%%tsrExportEnd%%\n\n',
143
+ 'function RouteComponent() { return <div>Hello "%%tsrPath%%"!</div> };\n',
144
+ ].join(''),
145
+ imports: {
146
+ tsrImports: () =>
147
+ "import { createLazyFileRoute } from '@tanstack/solid-router';",
148
+ tsrExportStart: (routePath) =>
149
+ `export const Route = createLazyFileRoute('${routePath}')(`,
150
+ tsrExportEnd: () => ');',
151
+ },
152
+ },
153
+ }
154
+ default:
155
+ throw new Error(`router-generator: Unknown target type: ${target}`)
156
+ }
157
+ }
158
+
159
+ export const defaultServerRouteTemplate = [
160
+ 'import { json } from "@tanstack/react-start";\n',
161
+ '%%tsrImports%%',
162
+ '\n\n',
163
+ '%%tsrExportStart%%{ GET: ({ request, params }) => { return json({ message:\'Hello "%%tsrPath%%"!\' }) }}%%tsrExportEnd%%\n',
164
+ ].join('')