one 1.6.18 → 1.6.20
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/devtools/dev.mjs +6 -0
- package/devtools/source-inspector.mjs +5 -0
- package/dist/cjs/createAPIRoute.cjs +28 -0
- package/dist/cjs/createAPIRoute.js +23 -0
- package/dist/cjs/createAPIRoute.js.map +6 -0
- package/dist/cjs/createAPIRoute.native.js +31 -0
- package/dist/cjs/createAPIRoute.native.js.map +1 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/router/getRoutes.cjs +19 -7
- package/dist/cjs/router/getRoutes.js +18 -7
- package/dist/cjs/router/getRoutes.js.map +1 -1
- package/dist/cjs/router/getRoutes.native.js +53 -24
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/matchers.cjs +9 -0
- package/dist/cjs/router/matchers.js +10 -0
- package/dist/cjs/router/matchers.js.map +1 -1
- package/dist/cjs/router/matchers.native.js +9 -0
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/router/matchers.test.cjs +29 -0
- package/dist/cjs/router/matchers.test.js +29 -0
- package/dist/cjs/router/matchers.test.js.map +1 -1
- package/dist/cjs/router/matchers.test.native.js +29 -0
- package/dist/cjs/router/matchers.test.native.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.cjs +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.js +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.native.js +3 -1
- package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +4 -2
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js +4 -2
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +4 -2
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/esm/createAPIRoute.js +7 -0
- package/dist/esm/createAPIRoute.js.map +6 -0
- package/dist/esm/createAPIRoute.mjs +5 -0
- package/dist/esm/createAPIRoute.mjs.map +1 -0
- package/dist/esm/createAPIRoute.native.js +5 -0
- package/dist/esm/createAPIRoute.native.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/router/getRoutes.js +19 -7
- package/dist/esm/router/getRoutes.js.map +1 -1
- package/dist/esm/router/getRoutes.mjs +20 -8
- package/dist/esm/router/getRoutes.mjs.map +1 -1
- package/dist/esm/router/getRoutes.native.js +54 -25
- package/dist/esm/router/getRoutes.native.js.map +1 -1
- package/dist/esm/router/matchers.js +10 -0
- package/dist/esm/router/matchers.js.map +1 -1
- package/dist/esm/router/matchers.mjs +9 -1
- package/dist/esm/router/matchers.mjs.map +1 -1
- package/dist/esm/router/matchers.native.js +9 -1
- package/dist/esm/router/matchers.native.js.map +1 -1
- package/dist/esm/router/matchers.test.js +30 -0
- package/dist/esm/router/matchers.test.js.map +1 -1
- package/dist/esm/router/matchers.test.mjs +30 -1
- package/dist/esm/router/matchers.test.mjs.map +1 -1
- package/dist/esm/router/matchers.test.native.js +30 -1
- package/dist/esm/router/matchers.test.native.js.map +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.js +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.js.map +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.mjs +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.mjs.map +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.native.js +3 -1
- package/dist/esm/utils/getPathnameFromFilePath.native.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.js +4 -2
- package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +4 -2
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +4 -2
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/package.json +9 -9
- package/src/createAPIRoute.ts +30 -0
- package/src/index.ts +2 -0
- package/src/router/getRoutes.ts +46 -5
- package/src/router/matchers.test.ts +44 -0
- package/src/router/matchers.ts +35 -0
- package/src/utils/getPathnameFromFilePath.ts +4 -1
- package/src/vite/plugins/SSRCSSPlugin.ts +4 -2
- package/types/createAPIRoute.d.ts +22 -0
- package/types/createAPIRoute.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/router/getRoutes.d.ts.map +1 -1
- package/types/router/matchers.d.ts +16 -0
- package/types/router/matchers.d.ts.map +1 -1
- package/types/utils/getPathnameFromFilePath.d.ts.map +1 -1
- package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
package/src/router/getRoutes.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { getPageExport } from '../utils/getPageExport'
|
|
|
3
3
|
import type { One } from '../vite/types'
|
|
4
4
|
import {
|
|
5
5
|
matchArrayGroupName,
|
|
6
|
+
matchDirectoryRenderMode,
|
|
6
7
|
matchDynamicName,
|
|
7
8
|
matchGroupName,
|
|
8
9
|
matchInterceptPrefix,
|
|
@@ -29,6 +30,8 @@ type DirectoryNode = {
|
|
|
29
30
|
subdirectories: Map<string, DirectoryNode>
|
|
30
31
|
/** Slot directories (@modal, @sidebar, etc.) for parallel routes */
|
|
31
32
|
slots: Map<string, DirectoryNode>
|
|
33
|
+
/** Render mode for this directory (e.g., from dashboard+ssr or api+api) */
|
|
34
|
+
renderMode?: One.RouteRenderMode | 'api'
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
const validPlatforms = new Set(['android', 'ios', 'native', 'web'])
|
|
@@ -99,7 +102,20 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
|
|
|
99
102
|
|
|
100
103
|
isValid = true
|
|
101
104
|
|
|
102
|
-
|
|
105
|
+
// First pass: determine parent render mode by traversing directories
|
|
106
|
+
let parentRenderMode: One.RouteRenderMode | 'api' | undefined
|
|
107
|
+
const pathParts = filePath.replace(/^\.\//, '').split('/')
|
|
108
|
+
const directoryParts = pathParts.slice(0, -1)
|
|
109
|
+
|
|
110
|
+
for (const part of directoryParts) {
|
|
111
|
+
const dirRenderMode = matchDirectoryRenderMode(part)
|
|
112
|
+
if (dirRenderMode) {
|
|
113
|
+
// Inner folders override outer folders
|
|
114
|
+
parentRenderMode = dirRenderMode.renderMode
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const meta = getFileMeta(filePath, options, parentRenderMode)
|
|
103
119
|
|
|
104
120
|
// This is a file that should be ignored. e.g maybe it has an invalid platform?
|
|
105
121
|
if (meta.specificity < 0) {
|
|
@@ -168,8 +184,12 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
|
|
|
168
184
|
}
|
|
169
185
|
directory = slotDirectory
|
|
170
186
|
} else {
|
|
187
|
+
// Check for directory render mode suffix (e.g., dashboard+ssr)
|
|
188
|
+
const dirRenderMode = matchDirectoryRenderMode(part)
|
|
189
|
+
const dirName = dirRenderMode?.name ?? part
|
|
190
|
+
|
|
171
191
|
// Handle regular subdirectory
|
|
172
|
-
let subDirectory = directory.subdirectories.get(
|
|
192
|
+
let subDirectory = directory.subdirectories.get(dirName)
|
|
173
193
|
|
|
174
194
|
// Create any missing subdirectories
|
|
175
195
|
if (!subDirectory) {
|
|
@@ -177,8 +197,9 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
|
|
|
177
197
|
files: new Map(),
|
|
178
198
|
subdirectories: new Map(),
|
|
179
199
|
slots: new Map(),
|
|
200
|
+
renderMode: dirRenderMode?.renderMode,
|
|
180
201
|
}
|
|
181
|
-
directory.subdirectories.set(
|
|
202
|
+
directory.subdirectories.set(dirName, subDirectory)
|
|
182
203
|
}
|
|
183
204
|
|
|
184
205
|
directory = subDirectory
|
|
@@ -491,7 +512,11 @@ function flattenSlotSubdirectory(
|
|
|
491
512
|
return routes
|
|
492
513
|
}
|
|
493
514
|
|
|
494
|
-
function getFileMeta(
|
|
515
|
+
function getFileMeta(
|
|
516
|
+
key: string,
|
|
517
|
+
options: Options,
|
|
518
|
+
parentRenderMode?: One.RouteRenderMode | 'api'
|
|
519
|
+
) {
|
|
495
520
|
// Remove the leading `./`
|
|
496
521
|
key = key.replace(/^\.\//, '')
|
|
497
522
|
|
|
@@ -505,7 +530,23 @@ function getFileMeta(key: string, options: Options) {
|
|
|
505
530
|
|
|
506
531
|
const [_fullname, renderModeFound] =
|
|
507
532
|
filename.match(/\+(api|ssg|ssr|spa)\.(\w+\.)?[jt]sx?$/) || []
|
|
508
|
-
const
|
|
533
|
+
const fileRenderMode = renderModeFound as 'api' | One.RouteRenderMode | undefined
|
|
534
|
+
|
|
535
|
+
// Hierarchical render mode resolution:
|
|
536
|
+
// 1. File suffix (highest priority)
|
|
537
|
+
// 2. Parent folder suffix
|
|
538
|
+
// 3. Falls back to getDefaultRenderMode() later (vite config)
|
|
539
|
+
const renderMode = fileRenderMode ?? parentRenderMode
|
|
540
|
+
|
|
541
|
+
// Strip render mode suffixes from directory names in the route
|
|
542
|
+
// e.g., "dashboard+ssr/analytics" -> "dashboard/analytics"
|
|
543
|
+
route = route
|
|
544
|
+
.split('/')
|
|
545
|
+
.map((segment) => {
|
|
546
|
+
const dirRenderMode = matchDirectoryRenderMode(segment)
|
|
547
|
+
return dirRenderMode ? dirRenderMode.name : segment
|
|
548
|
+
})
|
|
549
|
+
.join('/')
|
|
509
550
|
|
|
510
551
|
if (
|
|
511
552
|
filenameWithoutExtensions.startsWith('(') &&
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
getNameFromFilePath,
|
|
4
4
|
matchArrayGroupName,
|
|
5
5
|
matchDeepDynamicRouteName,
|
|
6
|
+
matchDirectoryRenderMode,
|
|
6
7
|
matchDynamicName,
|
|
7
8
|
matchGroupName,
|
|
8
9
|
stripGroupSegmentsFromPath,
|
|
@@ -128,3 +129,46 @@ describe(matchArrayGroupName, () => {
|
|
|
128
129
|
expect(matchArrayGroupName('(leading)/(foo,bar)/((fruit),apple)')).toEqual('foo,bar')
|
|
129
130
|
})
|
|
130
131
|
})
|
|
132
|
+
|
|
133
|
+
describe(matchDirectoryRenderMode, () => {
|
|
134
|
+
it('should match directory names with render mode suffixes', () => {
|
|
135
|
+
expect(matchDirectoryRenderMode('dashboard+ssr')).toEqual({
|
|
136
|
+
name: 'dashboard',
|
|
137
|
+
renderMode: 'ssr',
|
|
138
|
+
})
|
|
139
|
+
expect(matchDirectoryRenderMode('blog+ssg')).toEqual({
|
|
140
|
+
name: 'blog',
|
|
141
|
+
renderMode: 'ssg',
|
|
142
|
+
})
|
|
143
|
+
expect(matchDirectoryRenderMode('admin+spa')).toEqual({
|
|
144
|
+
name: 'admin',
|
|
145
|
+
renderMode: 'spa',
|
|
146
|
+
})
|
|
147
|
+
expect(matchDirectoryRenderMode('api-routes+api')).toEqual({
|
|
148
|
+
name: 'api-routes',
|
|
149
|
+
renderMode: 'api',
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
it('should not match directory names without render mode suffixes', () => {
|
|
154
|
+
expect(matchDirectoryRenderMode('dashboard')).toEqual(undefined)
|
|
155
|
+
expect(matchDirectoryRenderMode('blog')).toEqual(undefined)
|
|
156
|
+
expect(matchDirectoryRenderMode('admin')).toEqual(undefined)
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
it('should not match invalid render modes', () => {
|
|
160
|
+
expect(matchDirectoryRenderMode('dashboard+invalid')).toEqual(undefined)
|
|
161
|
+
expect(matchDirectoryRenderMode('blog+csr')).toEqual(undefined)
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
it('should handle directory names with hyphens and underscores', () => {
|
|
165
|
+
expect(matchDirectoryRenderMode('my-dashboard+ssr')).toEqual({
|
|
166
|
+
name: 'my-dashboard',
|
|
167
|
+
renderMode: 'ssr',
|
|
168
|
+
})
|
|
169
|
+
expect(matchDirectoryRenderMode('my_blog+ssg')).toEqual({
|
|
170
|
+
name: 'my_blog',
|
|
171
|
+
renderMode: 'ssg',
|
|
172
|
+
})
|
|
173
|
+
})
|
|
174
|
+
})
|
package/src/router/matchers.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { One } from '../vite/types'
|
|
2
|
+
|
|
1
3
|
/** Match `[page]` -> `page` or `[...page]` -> `page` with deep flag */
|
|
2
4
|
const dynamicNameRe = /^\[([^[\]]+?)\]$/
|
|
3
5
|
|
|
@@ -95,6 +97,39 @@ export function isTypedRoute(name: string) {
|
|
|
95
97
|
)
|
|
96
98
|
}
|
|
97
99
|
|
|
100
|
+
// ============================================
|
|
101
|
+
// Directory Render Modes
|
|
102
|
+
// ============================================
|
|
103
|
+
|
|
104
|
+
/** Match directory render mode suffixes: dashboard+ssr, blog+ssg, etc. */
|
|
105
|
+
const directoryRenderModeRe = /^(.+)\+(api|ssg|ssr|spa)$/
|
|
106
|
+
|
|
107
|
+
export interface DirectoryRenderModeMatch {
|
|
108
|
+
/** Directory name without the render mode suffix */
|
|
109
|
+
name: string
|
|
110
|
+
/** The render mode for this directory */
|
|
111
|
+
renderMode: One.RouteRenderMode | 'api'
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Match directory render mode suffixes
|
|
116
|
+
*
|
|
117
|
+
* Examples:
|
|
118
|
+
* - "dashboard+ssr" -> { name: "dashboard", renderMode: "ssr" }
|
|
119
|
+
* - "blog+ssg" -> { name: "blog", renderMode: "ssg" }
|
|
120
|
+
* - "admin+spa" -> { name: "admin", renderMode: "spa" }
|
|
121
|
+
*/
|
|
122
|
+
export function matchDirectoryRenderMode(
|
|
123
|
+
name: string
|
|
124
|
+
): DirectoryRenderModeMatch | undefined {
|
|
125
|
+
const match = name.match(directoryRenderModeRe)
|
|
126
|
+
if (!match) return undefined
|
|
127
|
+
return {
|
|
128
|
+
name: match[1],
|
|
129
|
+
renderMode: match[2] as One.RouteRenderMode | 'api',
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
98
133
|
// ============================================
|
|
99
134
|
// Parallel Routes & Intercepting Routes
|
|
100
135
|
// ============================================
|
|
@@ -7,8 +7,11 @@ export function getPathnameFromFilePath(
|
|
|
7
7
|
options: { preserveExtensions?: boolean; includeIndex?: boolean } = {}
|
|
8
8
|
) {
|
|
9
9
|
const path = inputPath.replace(/\+(spa|ssg|ssr|api)\.tsx?$/, '')
|
|
10
|
-
// remove groups and convert [param] to :param in dirname
|
|
10
|
+
// remove groups, folder render mode suffixes, and convert [param] to :param in dirname
|
|
11
11
|
const dirname = Path.dirname(path)
|
|
12
|
+
.split('/')
|
|
13
|
+
.map((segment) => segment.replace(/\+(api|ssg|ssr|spa)$/, ''))
|
|
14
|
+
.join('/')
|
|
12
15
|
.replace(/\([^/]+\)/gi, '')
|
|
13
16
|
.replace(/\[([^\]]+)\]/g, ':$1')
|
|
14
17
|
const file = Path.basename(path)
|
|
@@ -55,7 +55,9 @@ export function SSRCSSPlugin(pluginOpts: { entries: string[] }): Plugin {
|
|
|
55
55
|
return [
|
|
56
56
|
{
|
|
57
57
|
tag: 'link',
|
|
58
|
-
|
|
58
|
+
// prepend so SSR CSS comes BEFORE individual style tags injected by JS
|
|
59
|
+
// this ensures individual styles (later in DOM) win in CSS cascade
|
|
60
|
+
injectTo: 'head-prepend',
|
|
59
61
|
attrs: {
|
|
60
62
|
rel: 'stylesheet',
|
|
61
63
|
href: VIRTUAL_SSR_CSS_HREF,
|
|
@@ -70,7 +72,7 @@ export function SSRCSSPlugin(pluginOpts: { entries: string[] }): Plugin {
|
|
|
70
72
|
children: /* js */ `
|
|
71
73
|
import { createHotContext } from "/@vite/client";
|
|
72
74
|
const hot = createHotContext("/__clear_ssr_css");
|
|
73
|
-
hot.on("vite:
|
|
75
|
+
hot.on("vite:beforeUpdate", () => {
|
|
74
76
|
document
|
|
75
77
|
.querySelectorAll("[data-ssr-css]")
|
|
76
78
|
.forEach(node => node.remove());
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { OneRouter } from './interfaces/router';
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
type APIRouteHandler<Params extends Record<string, string> = Record<string, string>> = (request: Request, context: {
|
|
4
|
+
params: Params;
|
|
5
|
+
}) => MaybePromise<Response>;
|
|
6
|
+
/**
|
|
7
|
+
* Type helper for API route handlers with typed params.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // app/api/users/[id]+api.ts
|
|
12
|
+
* import { createAPIRoute } from 'one'
|
|
13
|
+
*
|
|
14
|
+
* export const GET = createAPIRoute<'/api/users/[id]'>((request, { params }) => {
|
|
15
|
+
* // params.id is typed as string
|
|
16
|
+
* return Response.json({ id: params.id })
|
|
17
|
+
* })
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function createAPIRoute<Path extends string = string>(handler: APIRouteHandler<OneRouter.RouteType<Path>['Params']>): APIRouteHandler<OneRouter.RouteType<Path>["Params"]>;
|
|
21
|
+
export type { APIRouteHandler };
|
|
22
|
+
//# sourceMappingURL=createAPIRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAPIRoute.d.ts","sourceRoot":"","sources":["../src/createAPIRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAErC,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CACrF,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,KACxB,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE3B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACzD,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,wDAG9D;AAED,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
package/types/index.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export * from '@vxrn/color-scheme';
|
|
|
37
37
|
export { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
38
38
|
export { onClientLoaderResolve } from './clientLoaderResolver';
|
|
39
39
|
export { createMiddleware, type Middleware } from './createMiddleware';
|
|
40
|
+
export { createAPIRoute, type APIRouteHandler } from './createAPIRoute';
|
|
40
41
|
export { getURL } from './getURL';
|
|
41
42
|
export { Head } from './head';
|
|
42
43
|
export { useActiveParams, useGlobalSearchParams, useLocalSearchParams, useNavigationContainerRef, useParams, usePathname, useRootNavigationState, useRouter, useSearchParams, useSegments, useUnstableGlobalHref, } from './hooks';
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAGpD,MAAM,MAAM,IAAI,GAAG,aAAa,SAAS,MAAM,SAAS,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,IAAI,CAAA;AAEvF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,cAAc,oBAAoB,CAAA;AAIlC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRoutes.d.ts","sourceRoot":"","sources":["../../src/router/getRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"getRoutes.d.ts","sourceRoot":"","sources":["../../src/router/getRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAWxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAc,MAAM,SAAS,CAAA;AAEvE,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,aAAa,EAAE,GAAG,CAAC,YAAY,EAC/B,OAAO,GAAE,OAAY,GACpB,SAAS,GAAG,IAAI,CAelB;AAmlBD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,YAM9C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,GAAG,CAAC,MAAM,CAAC,CA0Bb;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAmBxE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { One } from '../vite/types';
|
|
1
2
|
export interface DynamicNameMatch {
|
|
2
3
|
name: string;
|
|
3
4
|
deep: boolean;
|
|
@@ -29,6 +30,21 @@ export declare function stripInvisibleSegmentsFromPath(path: string): string;
|
|
|
29
30
|
* - .d.ts files (type definition files)
|
|
30
31
|
*/
|
|
31
32
|
export declare function isTypedRoute(name: string): boolean;
|
|
33
|
+
export interface DirectoryRenderModeMatch {
|
|
34
|
+
/** Directory name without the render mode suffix */
|
|
35
|
+
name: string;
|
|
36
|
+
/** The render mode for this directory */
|
|
37
|
+
renderMode: One.RouteRenderMode | 'api';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Match directory render mode suffixes
|
|
41
|
+
*
|
|
42
|
+
* Examples:
|
|
43
|
+
* - "dashboard+ssr" -> { name: "dashboard", renderMode: "ssr" }
|
|
44
|
+
* - "blog+ssg" -> { name: "blog", renderMode: "ssg" }
|
|
45
|
+
* - "admin+spa" -> { name: "admin", renderMode: "spa" }
|
|
46
|
+
*/
|
|
47
|
+
export declare function matchDirectoryRenderMode(name: string): DirectoryRenderModeMatch | undefined;
|
|
32
48
|
/** Match @modal -> 'modal', @sidebar -> 'sidebar' */
|
|
33
49
|
export declare function matchSlotName(name: string): string | undefined;
|
|
34
50
|
/** Check if a directory name is a slot directory */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/router/matchers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/router/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAKxC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;CACd;AAED,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAS3E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,yBAAyB;AACzB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,sBAE/C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,WAMxC;AASD,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,UAAU,EAAE,GAAG,CAAC,eAAe,GAAG,KAAK,CAAA;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GACX,wBAAwB,GAAG,SAAS,CAOtC;AASD,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAiBhF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPathnameFromFilePath.d.ts","sourceRoot":"","sources":["../../src/utils/getPathnameFromFilePath.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,KAAK,EACX,MAAM,UAAQ,EACd,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"getPathnameFromFilePath.d.ts","sourceRoot":"","sources":["../../src/utils/getPathnameFromFilePath.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,KAAK,EACX,MAAM,UAAQ,EACd,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,UA6DvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSRCSSPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/SSRCSSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAKjD,wBAAgB,YAAY,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"SSRCSSPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/SSRCSSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAKjD,wBAAgB,YAAY,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAgFtE;AAaD,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,mBAgD1E"}
|