reroute-js 0.9.3 → 0.10.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 (201) hide show
  1. package/_/basic/src/index.ts +1 -8
  2. package/_/blog/src/client/index.html +0 -1
  3. package/_/blog/src/client/routes/blog/[layout].tsx +53 -3
  4. package/_/blog/src/client/routes/docs.tsx +1 -1
  5. package/_/blog/src/index.ts +1 -8
  6. package/_/store/src/index.ts +1 -8
  7. package/cli/bin.d.ts +1 -1
  8. package/cli/bin.js +3662 -2681
  9. package/cli/bin.js.map +40 -29
  10. package/cli/index.d.ts +2 -2
  11. package/cli/index.d.ts.map +1 -1
  12. package/cli/index.js +74 -10
  13. package/cli/index.js.map +7 -5
  14. package/cli/src/cli.d.ts +1 -1
  15. package/cli/src/commands/analyze.d.ts +1 -1
  16. package/cli/src/commands/build.d.ts +1 -1
  17. package/cli/src/commands/build.d.ts.map +1 -1
  18. package/cli/src/commands/dev.d.ts +1 -1
  19. package/cli/src/commands/gen.d.ts +1 -1
  20. package/cli/src/commands/gen.d.ts.map +1 -1
  21. package/{core/src/template → cli/src/commands}/index.d.ts +2 -2
  22. package/cli/src/commands/index.d.ts.map +1 -0
  23. package/cli/src/commands/init.d.ts +1 -1
  24. package/cli/src/{libs → commands/lib}/command.d.ts +1 -1
  25. package/cli/src/commands/lib/command.d.ts.map +1 -0
  26. package/cli/src/{libs → commands/lib}/index.d.ts +3 -2
  27. package/cli/src/commands/lib/index.d.ts.map +1 -0
  28. package/cli/src/{libs → commands/lib}/log.d.ts +1 -1
  29. package/cli/src/commands/lib/log.d.ts.map +1 -0
  30. package/cli/src/{libs/markdown.d.ts → commands/lib/markdown/availability.d.ts} +2 -2
  31. package/cli/src/commands/lib/markdown/availability.d.ts.map +1 -0
  32. package/cli/src/commands/lib/markdown/index.d.ts +12 -0
  33. package/cli/src/commands/lib/markdown/index.d.ts.map +1 -0
  34. package/cli/src/{libs/markdown-processor.d.ts → commands/lib/markdown/processor.d.ts} +2 -2
  35. package/cli/src/commands/lib/markdown/processor.d.ts.map +1 -0
  36. package/cli/src/{libs → commands/lib}/production.d.ts +1 -1
  37. package/cli/src/commands/lib/production.d.ts.map +1 -0
  38. package/cli/src/{libs → commands/lib}/server.d.ts +1 -1
  39. package/cli/src/commands/lib/server.d.ts.map +1 -0
  40. package/cli/src/commands/lib/streaming/analyzer.d.ts +26 -0
  41. package/cli/src/commands/lib/streaming/analyzer.d.ts.map +1 -0
  42. package/cli/src/commands/lib/streaming/suspense.d.ts +20 -0
  43. package/cli/src/commands/lib/streaming/suspense.d.ts.map +1 -0
  44. package/cli/src/{libs → commands/lib}/tailwind.d.ts +1 -1
  45. package/cli/src/commands/lib/tailwind.d.ts.map +1 -0
  46. package/cli/src/{libs → commands/lib}/version.d.ts +1 -1
  47. package/cli/src/commands/lib/version.d.ts.map +1 -0
  48. package/cli/src/commands/start.d.ts +2 -2
  49. package/cli/src/commands/start.d.ts.map +1 -1
  50. package/cli/src/index.d.ts +11 -0
  51. package/cli/src/index.d.ts.map +1 -0
  52. package/core/index.d.ts +1 -1
  53. package/core/index.js +1169 -471
  54. package/core/index.js.map +22 -13
  55. package/core/src/bundler/hash.d.ts +1 -1
  56. package/core/src/bundler/index.d.ts +1 -1
  57. package/core/src/config.d.ts +42 -0
  58. package/core/src/config.d.ts.map +1 -0
  59. package/core/src/content/discovery.d.ts +1 -1
  60. package/core/src/content/index.d.ts +1 -1
  61. package/core/src/content/metadata.d.ts +2 -2
  62. package/core/src/content/metadata.d.ts.map +1 -1
  63. package/core/src/index.d.ts +2 -4
  64. package/core/src/index.d.ts.map +1 -1
  65. package/core/src/ssr/index.d.ts +3 -3
  66. package/core/src/ssr/index.d.ts.map +1 -1
  67. package/core/src/ssr/lib/cache.d.ts +67 -0
  68. package/core/src/ssr/lib/cache.d.ts.map +1 -0
  69. package/core/src/ssr/lib/collections.d.ts +18 -0
  70. package/core/src/ssr/lib/collections.d.ts.map +1 -0
  71. package/core/src/{utils → ssr/lib}/compression.d.ts +9 -2
  72. package/core/src/ssr/lib/compression.d.ts.map +1 -0
  73. package/core/src/ssr/lib/compute.d.ts +28 -0
  74. package/core/src/ssr/lib/compute.d.ts.map +1 -0
  75. package/core/src/ssr/{data.d.ts → lib/data.d.ts} +1 -1
  76. package/core/src/ssr/lib/data.d.ts.map +1 -0
  77. package/core/src/{template → ssr/lib}/html.d.ts +2 -2
  78. package/core/src/ssr/lib/html.d.ts.map +1 -0
  79. package/core/src/ssr/lib/index.d.ts +26 -0
  80. package/core/src/ssr/lib/index.d.ts.map +1 -0
  81. package/core/src/ssr/lib/metadata.d.ts +20 -0
  82. package/core/src/ssr/lib/metadata.d.ts.map +1 -0
  83. package/core/src/{utils → ssr/lib}/mime.d.ts +1 -1
  84. package/core/src/ssr/lib/mime.d.ts.map +1 -0
  85. package/core/src/ssr/{modules.d.ts → lib/modules.d.ts} +2 -2
  86. package/core/src/ssr/lib/modules.d.ts.map +1 -0
  87. package/core/src/{utils → ssr/lib}/path.d.ts +1 -1
  88. package/core/src/ssr/lib/path.d.ts.map +1 -0
  89. package/core/src/ssr/lib/preload.d.ts +29 -0
  90. package/core/src/ssr/lib/preload.d.ts.map +1 -0
  91. package/core/src/ssr/lib/scripts.d.ts +31 -0
  92. package/core/src/ssr/lib/scripts.d.ts.map +1 -0
  93. package/core/src/ssr/{seed.d.ts → lib/seed.d.ts} +1 -1
  94. package/core/src/ssr/lib/seed.d.ts.map +1 -0
  95. package/core/src/ssr/lib/styles.d.ts +14 -0
  96. package/core/src/ssr/lib/styles.d.ts.map +1 -0
  97. package/core/src/ssr/lib/template.d.ts +19 -0
  98. package/core/src/ssr/lib/template.d.ts.map +1 -0
  99. package/core/src/{types.d.ts → ssr/lib/types.d.ts} +1 -1
  100. package/core/src/ssr/lib/types.d.ts.map +1 -0
  101. package/core/src/ssr/render.d.ts +2 -1
  102. package/core/src/ssr/render.d.ts.map +1 -1
  103. package/core/src/ssr/stream.d.ts +30 -0
  104. package/core/src/ssr/stream.d.ts.map +1 -0
  105. package/elysia/index.d.ts +1 -1
  106. package/elysia/index.js +1917 -794
  107. package/elysia/index.js.map +34 -19
  108. package/elysia/src/index.d.ts +1 -1
  109. package/elysia/src/libs/cache.d.ts +1 -1
  110. package/elysia/src/libs/http.d.ts +1 -1
  111. package/elysia/src/libs/image.d.ts +1 -1
  112. package/elysia/src/plugin.d.ts +1 -1
  113. package/elysia/src/plugin.d.ts.map +1 -1
  114. package/elysia/src/routes/artifacts.d.ts +1 -1
  115. package/elysia/src/routes/content.d.ts +1 -1
  116. package/elysia/src/routes/image.d.ts +2 -1
  117. package/elysia/src/routes/image.d.ts.map +1 -1
  118. package/elysia/src/routes/internal.d.ts +36 -0
  119. package/elysia/src/routes/internal.d.ts.map +1 -0
  120. package/elysia/src/routes/ssr.d.ts +3 -1
  121. package/elysia/src/routes/ssr.d.ts.map +1 -1
  122. package/elysia/src/routes/static.d.ts +2 -1
  123. package/elysia/src/routes/static.d.ts.map +1 -1
  124. package/elysia/src/types.d.ts +11 -4
  125. package/elysia/src/types.d.ts.map +1 -1
  126. package/package.json +1 -1
  127. package/react/index.d.ts +1 -1
  128. package/react/index.js +295 -53
  129. package/react/index.js.map +10 -9
  130. package/react/src/components/ClientOnly.d.ts +1 -1
  131. package/react/src/components/ContentRoute.d.ts +1 -1
  132. package/react/src/components/ContentRoute.d.ts.map +1 -1
  133. package/react/src/components/Image.d.ts +1 -1
  134. package/react/src/components/LazyRoute.d.ts +26 -0
  135. package/react/src/components/LazyRoute.d.ts.map +1 -0
  136. package/react/src/components/Link.d.ts +1 -1
  137. package/react/src/components/Link.d.ts.map +1 -1
  138. package/react/src/components/Markdown.d.ts +1 -1
  139. package/react/src/components/Outlet.d.ts +1 -1
  140. package/react/src/components/index.d.ts +1 -1
  141. package/react/src/hooks/index.d.ts +2 -1
  142. package/react/src/hooks/index.d.ts.map +1 -1
  143. package/react/src/hooks/useContent.d.ts +1 -1
  144. package/react/src/hooks/useData.d.ts +1 -1
  145. package/react/src/hooks/useData.d.ts.map +1 -1
  146. package/react/src/hooks/useLayoutData.d.ts +18 -0
  147. package/react/src/hooks/useLayoutData.d.ts.map +1 -0
  148. package/react/src/hooks/useNavigate.d.ts +1 -1
  149. package/react/src/hooks/useParams.d.ts +1 -1
  150. package/react/src/hooks/useRouter.d.ts +1 -1
  151. package/react/src/hooks/useSearchParams.d.ts +1 -1
  152. package/react/src/index.d.ts +2 -2
  153. package/react/src/index.d.ts.map +1 -1
  154. package/react/src/{utils → lib}/content.d.ts +1 -1
  155. package/react/src/lib/content.d.ts.map +1 -0
  156. package/react/src/{utils → lib}/head.d.ts +1 -1
  157. package/react/src/lib/head.d.ts.map +1 -0
  158. package/react/src/{utils → lib}/index.d.ts +2 -2
  159. package/react/src/lib/index.d.ts.map +1 -0
  160. package/react/src/{utils → lib}/lazy-route.d.ts +1 -1
  161. package/react/src/lib/lazy-route.d.ts.map +1 -0
  162. package/react/src/lib/route-loader.d.ts +31 -0
  163. package/react/src/lib/route-loader.d.ts.map +1 -0
  164. package/react/src/providers/ContentProvider.d.ts +1 -1
  165. package/react/src/providers/ContentProvider.d.ts.map +1 -1
  166. package/react/src/providers/RerouteProvider.d.ts +1 -1
  167. package/react/src/providers/RerouteProvider.d.ts.map +1 -1
  168. package/react/src/providers/RouterProvider.d.ts +1 -1
  169. package/react/src/providers/RouterProvider.d.ts.map +1 -1
  170. package/react/src/providers/index.d.ts +1 -1
  171. package/react/src/types/any.d.ts +1 -1
  172. package/react/src/types/index.d.ts +1 -1
  173. package/react/src/types/router.d.ts +1 -1
  174. package/cli/src/libs/command.d.ts.map +0 -1
  175. package/cli/src/libs/index.d.ts.map +0 -1
  176. package/cli/src/libs/log.d.ts.map +0 -1
  177. package/cli/src/libs/markdown-processor.d.ts.map +0 -1
  178. package/cli/src/libs/markdown.d.ts.map +0 -1
  179. package/cli/src/libs/production.d.ts.map +0 -1
  180. package/cli/src/libs/server.d.ts.map +0 -1
  181. package/cli/src/libs/tailwind.d.ts.map +0 -1
  182. package/cli/src/libs/version.d.ts.map +0 -1
  183. package/core/src/ssr/data.d.ts.map +0 -1
  184. package/core/src/ssr/modules.d.ts.map +0 -1
  185. package/core/src/ssr/seed.d.ts.map +0 -1
  186. package/core/src/template/html.d.ts.map +0 -1
  187. package/core/src/template/index.d.ts.map +0 -1
  188. package/core/src/types.d.ts.map +0 -1
  189. package/core/src/utils/cache.d.ts +0 -21
  190. package/core/src/utils/cache.d.ts.map +0 -1
  191. package/core/src/utils/compression.d.ts.map +0 -1
  192. package/core/src/utils/index.d.ts +0 -14
  193. package/core/src/utils/index.d.ts.map +0 -1
  194. package/core/src/utils/mime.d.ts.map +0 -1
  195. package/core/src/utils/path.d.ts.map +0 -1
  196. package/elysia/src/routes/dev.d.ts +0 -18
  197. package/elysia/src/routes/dev.d.ts.map +0 -1
  198. package/react/src/utils/content.d.ts.map +0 -1
  199. package/react/src/utils/head.d.ts.map +0 -1
  200. package/react/src/utils/index.d.ts.map +0 -1
  201. package/react/src/utils/lazy-route.d.ts.map +0 -1
@@ -1,16 +1,9 @@
1
1
  import { Elysia } from 'elysia';
2
- import { createElement } from 'react';
3
2
  import { reroute } from 'reroute-js/elysia';
4
- import App from './client/App';
5
-
6
- const IS_PRODUCTION = Bun.env.NODE_ENV === 'production';
7
3
 
8
4
  const app = new Elysia()
9
5
  .use(
10
- reroute({
11
- app: createElement(App),
12
- minify: IS_PRODUCTION,
13
- }),
6
+ reroute(),
14
7
  )
15
8
  .get('/api/message', () => ({ message: 'Hello from server' }))
16
9
  .listen(Number(Bun.env.PORT || '3000'));
@@ -8,6 +8,5 @@
8
8
  </head>
9
9
  <body>
10
10
  <div id="root"></div>
11
- <script type="module" src="./index.tsx"></script>
12
11
  </body>
13
12
  </html>
@@ -1,6 +1,51 @@
1
- import { Link, Outlet } from 'reroute-js/react';
1
+ import { Link, Outlet, useData } from 'reroute-js/react';
2
+
3
+ // SSR context type
4
+ type SSRContext = {
5
+ pathname: string;
6
+ params?: Record<string, string>;
7
+ };
8
+
9
+ // Layout data type
10
+ type LayoutData = {
11
+ siteTitle: string;
12
+ tagline: string;
13
+ totalPosts: number;
14
+ lastUpdated: string;
15
+ currentPath: string;
16
+ };
17
+
18
+ // Layout SSR data - runs on every blog page!
19
+ export const ssr = {
20
+ async data({ pathname }: SSRContext): Promise<LayoutData> {
21
+ // Get last updated timestamp from package.json mtime
22
+ let lastUpdated: string | undefined;
23
+ try {
24
+ const pkgPath = await import('node:path').then(p => p.join(process.cwd(), 'package.json'));
25
+ const stats = await import('node:fs/promises').then(fs => fs.stat(pkgPath));
26
+ lastUpdated = stats.mtime.toISOString();
27
+ } catch {
28
+ lastUpdated = new Date().toISOString();
29
+ }
30
+
31
+ return {
32
+ siteTitle: 'Reroute Blog',
33
+ tagline: 'Fast, Modern, File-Based Routing',
34
+ totalPosts: 5,
35
+ lastUpdated,
36
+ currentPath: pathname,
37
+ };
38
+ },
39
+ };
40
+
41
+ export const meta = {
42
+ title: 'Reroute Blog',
43
+ description: 'Learn about Reroute - file-based routing for React',
44
+ };
2
45
 
3
46
  export default function BlogLayout() {
47
+ // Access layout data - it just works!
48
+ const data = useData<LayoutData>();
4
49
  return (
5
50
  <div style={{ minHeight: '100vh', background: '#f9f9f9' }}>
6
51
  {/* Blog Header */}
@@ -28,7 +73,7 @@ export default function BlogLayout() {
28
73
  color: '#333',
29
74
  }}
30
75
  >
31
- 📝 Blog
76
+ 📝 {data?.siteTitle || 'Blog'}
32
77
  </Link>
33
78
  <div
34
79
  style={{ display: 'flex', gap: '1.5rem', alignItems: 'center' }}
@@ -77,7 +122,12 @@ export default function BlogLayout() {
77
122
  background: '#fff',
78
123
  }}
79
124
  >
80
- <p>© 2024 Reroute Blog. Built with Bun, Elysia, and React.</p>
125
+ <p>© {new Date().getFullYear()} Reroute Blog. Built with Bun, Elysia, and React.</p>
126
+ {data?.totalPosts && (
127
+ <p style={{ marginTop: '0.5rem', fontSize: '0.75rem' }}>
128
+ {data.totalPosts} posts • Last updated: {new Date(data.lastUpdated).toLocaleString()}
129
+ </p>
130
+ )}
81
131
  </footer>
82
132
  </div>
83
133
  );
@@ -232,7 +232,7 @@ export default function DocsPage() {
232
232
  <strong>Requirements:</strong>
233
233
  </p>
234
234
  <ul>
235
- <li>React 18+</li>
235
+ <li>React 19+</li>
236
236
  <li>Bun or Node.js</li>
237
237
  <li>Modern browser with smooth scrolling support</li>
238
238
  </ul>
@@ -1,16 +1,9 @@
1
1
  import { Elysia } from 'elysia';
2
- import { createElement } from 'react';
3
2
  import { reroute } from 'reroute-js/elysia';
4
- import App from './client/App';
5
-
6
- const IS_PRODUCTION = Bun.env.NODE_ENV === 'production';
7
3
 
8
4
  const app = new Elysia()
9
5
  .use(
10
- reroute({
11
- app: createElement(App),
12
- minify: IS_PRODUCTION,
13
- }),
6
+ reroute(),
14
7
  )
15
8
  .get('/message', () => {
16
9
  console.log('[api] log from my api');
@@ -1,17 +1,10 @@
1
1
  import { Elysia } from 'elysia';
2
- import { createElement } from 'react';
3
2
  import { reroute } from 'reroute-js/elysia';
4
- import App from './client/App';
5
3
 
6
- const IS_PRODUCTION = Bun.env.NODE_ENV === 'production';
7
4
 
8
5
  const app = new Elysia()
9
6
  .use(
10
- reroute({
11
- app: createElement(App),
12
- minify: IS_PRODUCTION,
13
- imageAllowedDomains: ['fakestoreapi.com'],
14
- }),
7
+ reroute(),
15
8
  )
16
9
  .listen(Number(Bun.env.PORT || '3001'));
17
10
 
package/cli/bin.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.9.3
2
+ * reroute-js v0.10.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>