@kimesh/router-generator 0.0.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.
- package/README.md +3 -0
- package/dist/index.d.mts +505 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2029 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +43 -0
package/README.md
ADDED
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/types.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Router generator configuration
|
|
6
|
+
*/
|
|
7
|
+
interface KimeshRouterConfig {
|
|
8
|
+
/** Source directory (default: 'src') */
|
|
9
|
+
srcDir: string;
|
|
10
|
+
/** Routes directory relative to srcDir (default: 'routes') */
|
|
11
|
+
routesDir: string;
|
|
12
|
+
/** Generated files directory relative to srcDir (default: '.kimesh') */
|
|
13
|
+
generatedDir: string;
|
|
14
|
+
/** File extensions to scan (default: ['.vue']) */
|
|
15
|
+
extensions: string[];
|
|
16
|
+
/** Import mode for route components */
|
|
17
|
+
importMode: 'async' | 'sync' | ((filepath: string) => 'async' | 'sync');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolved router config with all defaults applied
|
|
21
|
+
*/
|
|
22
|
+
interface ResolvedRouterConfig extends KimeshRouterConfig {
|
|
23
|
+
/** Absolute path to routes directory */
|
|
24
|
+
routesDirPath: string;
|
|
25
|
+
/** Absolute path to generated directory */
|
|
26
|
+
generatedDirPath: string;
|
|
27
|
+
/** Project root */
|
|
28
|
+
root: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Route node type
|
|
32
|
+
*/
|
|
33
|
+
type RouteNodeType = 'page' | 'layout' | 'index' | 'catch-all' | 'dynamic';
|
|
34
|
+
/**
|
|
35
|
+
* Scanned route node
|
|
36
|
+
*/
|
|
37
|
+
interface RouteNode {
|
|
38
|
+
/** File path relative to routes dir */
|
|
39
|
+
filePath: string;
|
|
40
|
+
/** Absolute file path */
|
|
41
|
+
fullPath: string;
|
|
42
|
+
/** Generated route path (e.g., '/posts/:postId') */
|
|
43
|
+
routePath: string;
|
|
44
|
+
/** Variable name for imports */
|
|
45
|
+
variableName: string;
|
|
46
|
+
/** Route node type */
|
|
47
|
+
type: RouteNodeType;
|
|
48
|
+
/** Route name for vue-router */
|
|
49
|
+
routeName: string;
|
|
50
|
+
/** Is lazy-loaded */
|
|
51
|
+
isLazy: boolean;
|
|
52
|
+
/** Param names in route */
|
|
53
|
+
params: RouteParam[];
|
|
54
|
+
/** Parsed route info from SFC */
|
|
55
|
+
parsed: ParsedRoute;
|
|
56
|
+
/** Child route nodes */
|
|
57
|
+
children: RouteNode[];
|
|
58
|
+
/** Parent route node */
|
|
59
|
+
parent?: RouteNode;
|
|
60
|
+
/** Route group name (if inside group folder) */
|
|
61
|
+
group?: string;
|
|
62
|
+
/** Raw segment from filename */
|
|
63
|
+
rawSegment: string;
|
|
64
|
+
/** Source layer name (for layer-aware features) */
|
|
65
|
+
layer?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Route parameter
|
|
69
|
+
*/
|
|
70
|
+
interface RouteParam {
|
|
71
|
+
/** Parameter name */
|
|
72
|
+
name: string;
|
|
73
|
+
/** Is optional param */
|
|
74
|
+
optional: boolean;
|
|
75
|
+
/** Is catch-all (splat) param */
|
|
76
|
+
isSplat: boolean;
|
|
77
|
+
/** Is repeatable (+) */
|
|
78
|
+
repeatable: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Parsed route definition from SFC
|
|
82
|
+
*/
|
|
83
|
+
interface ParsedRoute {
|
|
84
|
+
/** Route has a Route export */
|
|
85
|
+
hasRouteDefinition: boolean;
|
|
86
|
+
/** Route path from createFileRoute() */
|
|
87
|
+
routePath: string | null;
|
|
88
|
+
/** Loader function exists */
|
|
89
|
+
hasLoader: boolean;
|
|
90
|
+
/** Meta object exists */
|
|
91
|
+
hasMeta: boolean;
|
|
92
|
+
/** Search params validation exists */
|
|
93
|
+
hasValidateSearch: boolean;
|
|
94
|
+
/** Is this a layout file */
|
|
95
|
+
isLayout: boolean;
|
|
96
|
+
/** Raw route script content */
|
|
97
|
+
routeScriptContent: string | null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Generated routes output
|
|
101
|
+
*/
|
|
102
|
+
interface GeneratedOutput {
|
|
103
|
+
/** routes.gen.ts content */
|
|
104
|
+
routesCode: string;
|
|
105
|
+
/** route-types.d.ts content */
|
|
106
|
+
typesCode: string;
|
|
107
|
+
/** Route tree */
|
|
108
|
+
routes: RouteNode[];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Route tree node for building
|
|
112
|
+
*/
|
|
113
|
+
interface TreeNode {
|
|
114
|
+
segment: string;
|
|
115
|
+
routePath: string;
|
|
116
|
+
node?: RouteNode;
|
|
117
|
+
children: Map<string, TreeNode>;
|
|
118
|
+
parent?: TreeNode;
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/plugin.d.ts
|
|
122
|
+
/**
|
|
123
|
+
* Layer route configuration
|
|
124
|
+
*/
|
|
125
|
+
interface LayerRouteConfig {
|
|
126
|
+
/** Layer name */
|
|
127
|
+
layerName: string;
|
|
128
|
+
/** Routes directory path */
|
|
129
|
+
routesDir: string;
|
|
130
|
+
/** Layer root path (for generating .kimesh directory) */
|
|
131
|
+
layerPath?: string;
|
|
132
|
+
/** Base path prefix for routes */
|
|
133
|
+
basePath?: string;
|
|
134
|
+
/** Layer priority (lower = higher priority) */
|
|
135
|
+
priority: number;
|
|
136
|
+
}
|
|
137
|
+
interface KimeshRouterPluginOptions extends Partial<KimeshRouterConfig> {
|
|
138
|
+
/** Enable debug logging */
|
|
139
|
+
debug?: boolean;
|
|
140
|
+
/** Layer routes configuration (static) */
|
|
141
|
+
layerRoutes?: LayerRouteConfig[];
|
|
142
|
+
/** Layer routes configuration (lazy getter for async resolution) */
|
|
143
|
+
getLayerRoutes?: () => LayerRouteConfig[];
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Kimesh Router Generator Vite Plugin
|
|
147
|
+
*/
|
|
148
|
+
declare function kimeshRouterGenerator(options?: KimeshRouterPluginOptions): Plugin;
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/scanner.d.ts
|
|
151
|
+
/**
|
|
152
|
+
* Route file scanner
|
|
153
|
+
* Scans the routes directory and builds route nodes
|
|
154
|
+
*/
|
|
155
|
+
declare class RouteScanner {
|
|
156
|
+
private config;
|
|
157
|
+
private routeNodes;
|
|
158
|
+
constructor(config: ResolvedRouterConfig);
|
|
159
|
+
/**
|
|
160
|
+
* Scan routes directory and return route nodes
|
|
161
|
+
*/
|
|
162
|
+
scan(): Promise<RouteNode[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Process a single route file
|
|
165
|
+
*/
|
|
166
|
+
private processFile;
|
|
167
|
+
/**
|
|
168
|
+
* Parse filename to determine route type and path
|
|
169
|
+
*
|
|
170
|
+
* Kimesh file-based routing conventions:
|
|
171
|
+
* - __root.vue → root layout (wraps everything)
|
|
172
|
+
* - index.vue → index route
|
|
173
|
+
* - about.vue → regular page (/about)
|
|
174
|
+
* - $id.vue → dynamic param (/users/:id)
|
|
175
|
+
* - $.vue → catch-all (splat route)
|
|
176
|
+
* - _auth.vue → pathless layout (underscore prefix, no URL segment)
|
|
177
|
+
* - posts.vue + posts/ → layout route (file + matching directory)
|
|
178
|
+
* - posts.index.vue → flat route notation (dot separator)
|
|
179
|
+
*/
|
|
180
|
+
private parseFileName;
|
|
181
|
+
private parseDotNotationRoute;
|
|
182
|
+
/**
|
|
183
|
+
* Generate a valid JavaScript variable name from file path
|
|
184
|
+
*/
|
|
185
|
+
private generateVariableName;
|
|
186
|
+
/**
|
|
187
|
+
* Generate route name from route path
|
|
188
|
+
*/
|
|
189
|
+
private generateRouteName;
|
|
190
|
+
/**
|
|
191
|
+
* Check if route should be lazy loaded based on config
|
|
192
|
+
*/
|
|
193
|
+
private shouldBeLazy;
|
|
194
|
+
/**
|
|
195
|
+
* Get all scanned route nodes
|
|
196
|
+
*/
|
|
197
|
+
getNodes(): RouteNode[];
|
|
198
|
+
/**
|
|
199
|
+
* Build glob pattern for file scanning based on configured extensions
|
|
200
|
+
*/
|
|
201
|
+
private buildGlobPattern;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Create a route scanner instance
|
|
205
|
+
*/
|
|
206
|
+
declare function createScanner(config: ResolvedRouterConfig): RouteScanner;
|
|
207
|
+
//#endregion
|
|
208
|
+
//#region src/parser.d.ts
|
|
209
|
+
/**
|
|
210
|
+
* Extended parsed route with OXC-extracted metadata
|
|
211
|
+
*/
|
|
212
|
+
interface ExtendedParsedRoute extends ParsedRoute {
|
|
213
|
+
/** defineLoader options if present */
|
|
214
|
+
loaderOptions?: {
|
|
215
|
+
isAsync: boolean;
|
|
216
|
+
hasBeforeLoad: boolean;
|
|
217
|
+
dependencies: string[];
|
|
218
|
+
cacheStrategy?: string;
|
|
219
|
+
};
|
|
220
|
+
/** defineMiddleware names */
|
|
221
|
+
middleware?: string[];
|
|
222
|
+
/** definePageMeta options */
|
|
223
|
+
pageMeta?: {
|
|
224
|
+
name?: string;
|
|
225
|
+
path?: string;
|
|
226
|
+
alias?: string | string[];
|
|
227
|
+
redirect?: string;
|
|
228
|
+
layout?: string | false;
|
|
229
|
+
transition?: boolean | string;
|
|
230
|
+
keepAlive?: boolean;
|
|
231
|
+
meta?: Record<string, unknown>;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Parse a Vue SFC file to extract route definition information using OXC
|
|
236
|
+
*/
|
|
237
|
+
declare function parseRouteFile(code: string, filePath: string): ExtendedParsedRoute;
|
|
238
|
+
/**
|
|
239
|
+
* Create an empty parsed route
|
|
240
|
+
*/
|
|
241
|
+
declare function createEmptyParsedRoute(filePath: string): ExtendedParsedRoute;
|
|
242
|
+
//#endregion
|
|
243
|
+
//#region src/tree-builder.d.ts
|
|
244
|
+
/**
|
|
245
|
+
* Build a route tree from flat route nodes
|
|
246
|
+
*/
|
|
247
|
+
declare class RouteTreeBuilder {
|
|
248
|
+
private config;
|
|
249
|
+
private root;
|
|
250
|
+
private layoutNodes;
|
|
251
|
+
private pathlessLayoutMap;
|
|
252
|
+
constructor(config: ResolvedRouterConfig);
|
|
253
|
+
/**
|
|
254
|
+
* Build route tree from scanned nodes
|
|
255
|
+
*/
|
|
256
|
+
build(nodes: RouteNode[]): RouteNode[];
|
|
257
|
+
private separateLayoutsAndPages;
|
|
258
|
+
private registerLayout;
|
|
259
|
+
private groupPagesByPathlessLayout;
|
|
260
|
+
private findMatchingPathlessLayout;
|
|
261
|
+
private addPathlessLayoutRoutes;
|
|
262
|
+
/**
|
|
263
|
+
* Insert a node into the tree
|
|
264
|
+
*/
|
|
265
|
+
private insertNode;
|
|
266
|
+
/**
|
|
267
|
+
* Get path segments from route path
|
|
268
|
+
*/
|
|
269
|
+
private getPathSegments;
|
|
270
|
+
/**
|
|
271
|
+
* Create a tree node
|
|
272
|
+
*/
|
|
273
|
+
private createTreeNode;
|
|
274
|
+
/**
|
|
275
|
+
* Flatten tree to route array
|
|
276
|
+
*/
|
|
277
|
+
private flattenTree;
|
|
278
|
+
/**
|
|
279
|
+
* Flatten children of a tree node
|
|
280
|
+
*/
|
|
281
|
+
private flattenChildren;
|
|
282
|
+
private flattenChildNode;
|
|
283
|
+
private createLayoutWithChildren;
|
|
284
|
+
private flattenNodeWithChildren;
|
|
285
|
+
/**
|
|
286
|
+
* Compare segments for sorting
|
|
287
|
+
* Order: static > dynamic > catch-all
|
|
288
|
+
*/
|
|
289
|
+
private compareSegments;
|
|
290
|
+
/**
|
|
291
|
+
* Get sorting score for a segment
|
|
292
|
+
*/
|
|
293
|
+
private getSegmentScore;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Create a route tree builder
|
|
297
|
+
*/
|
|
298
|
+
declare function createTreeBuilder(config: ResolvedRouterConfig): RouteTreeBuilder;
|
|
299
|
+
/**
|
|
300
|
+
* Build route tree from nodes
|
|
301
|
+
*/
|
|
302
|
+
declare function buildRouteTree(nodes: RouteNode[], config: ResolvedRouterConfig): RouteNode[];
|
|
303
|
+
//#endregion
|
|
304
|
+
//#region src/codegen/routes.d.ts
|
|
305
|
+
/**
|
|
306
|
+
* Generate routes.gen.ts content
|
|
307
|
+
*/
|
|
308
|
+
declare function generateRoutes(routes: RouteNode[], config: ResolvedRouterConfig): string;
|
|
309
|
+
//#endregion
|
|
310
|
+
//#region src/codegen/types.d.ts
|
|
311
|
+
/**
|
|
312
|
+
* Generate typed-routes.d.ts content with comprehensive type safety
|
|
313
|
+
*/
|
|
314
|
+
declare function generateRouteTypes(routes: RouteNode[]): string;
|
|
315
|
+
//#endregion
|
|
316
|
+
//#region src/route-utils.d.ts
|
|
317
|
+
interface ParsedFileName {
|
|
318
|
+
type: RouteNodeType;
|
|
319
|
+
routePath: string;
|
|
320
|
+
params: RouteParam[];
|
|
321
|
+
rawSegment: string;
|
|
322
|
+
isPathlessLayout?: boolean;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Check if directory path is root (empty or ".")
|
|
326
|
+
*/
|
|
327
|
+
declare function isRootDir(dirPath: string): boolean;
|
|
328
|
+
/**
|
|
329
|
+
* Extract dynamic param name from segment (e.g., "$id" -> "id")
|
|
330
|
+
*/
|
|
331
|
+
declare function extractDynamicParam(segment: string): string | null;
|
|
332
|
+
/**
|
|
333
|
+
* Check if filename uses dot notation for flat routes
|
|
334
|
+
*/
|
|
335
|
+
declare function isDotNotationRoute(fileName: string): boolean;
|
|
336
|
+
/**
|
|
337
|
+
* Unescape bracket notation in filenames
|
|
338
|
+
* e.g., script[.]js -> script.js, api[.]v1 -> api.v1
|
|
339
|
+
*/
|
|
340
|
+
declare function unescapeBrackets(segment: string): string;
|
|
341
|
+
/**
|
|
342
|
+
* Process a single path segment for dynamic params and special conventions
|
|
343
|
+
*
|
|
344
|
+
* Conventions:
|
|
345
|
+
* - (auth) -> pathless group folder, returns empty string
|
|
346
|
+
* - _auth -> pathless layout folder, returns empty string
|
|
347
|
+
* - posts_ -> layout escape, strips trailing underscore
|
|
348
|
+
* - $id -> dynamic param :id
|
|
349
|
+
* - -folder -> excluded from routing (dash prefix)
|
|
350
|
+
* - [x] -> escape special characters
|
|
351
|
+
*/
|
|
352
|
+
declare function processPathSegment(segment: string): string;
|
|
353
|
+
/**
|
|
354
|
+
* Process directory path into route segments
|
|
355
|
+
*/
|
|
356
|
+
declare function processDirectoryPath(dirPath: string): string;
|
|
357
|
+
/**
|
|
358
|
+
* Build route path from directory and segment
|
|
359
|
+
*/
|
|
360
|
+
declare function buildRoutePath(dirPath: string, segment: string): string;
|
|
361
|
+
/**
|
|
362
|
+
* Create a standard RouteParam for a dynamic parameter
|
|
363
|
+
*/
|
|
364
|
+
declare function createDynamicParam(name: string): RouteParam;
|
|
365
|
+
/**
|
|
366
|
+
* Create a catch-all RouteParam
|
|
367
|
+
*/
|
|
368
|
+
declare function createCatchAllParam(): RouteParam;
|
|
369
|
+
/**
|
|
370
|
+
* Build a glob pattern for route file scanning
|
|
371
|
+
*/
|
|
372
|
+
declare function buildGlobPattern(extensions: string[]): string;
|
|
373
|
+
//#endregion
|
|
374
|
+
//#region src/layer-collector.d.ts
|
|
375
|
+
/**
|
|
376
|
+
* Layer route source configuration
|
|
377
|
+
*/
|
|
378
|
+
interface LayerRouteSource {
|
|
379
|
+
/** Layer name */
|
|
380
|
+
layer: string;
|
|
381
|
+
/** Layer priority (0 = app/highest) */
|
|
382
|
+
priority: number;
|
|
383
|
+
/** Absolute path to routes directory */
|
|
384
|
+
routesDir: string;
|
|
385
|
+
/** Base path prefix for all routes in this layer */
|
|
386
|
+
basePath?: string;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Collected layer routes result
|
|
390
|
+
*/
|
|
391
|
+
interface LayerRoutesResult {
|
|
392
|
+
/** All route nodes from all layers */
|
|
393
|
+
routes: RouteNode[];
|
|
394
|
+
/** Routes grouped by layer */
|
|
395
|
+
byLayer: Map<string, RouteNode[]>;
|
|
396
|
+
/** Timing information */
|
|
397
|
+
timing: {
|
|
398
|
+
totalMs: number;
|
|
399
|
+
perLayer: Map<string, number>;
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Extended route node with layer information
|
|
404
|
+
*/
|
|
405
|
+
interface LayerRouteNode extends RouteNode {
|
|
406
|
+
/** Source layer name */
|
|
407
|
+
layer: string;
|
|
408
|
+
/** Layer priority */
|
|
409
|
+
layerPriority: number;
|
|
410
|
+
/** Base path from layer config */
|
|
411
|
+
layerBasePath?: string;
|
|
412
|
+
/** Final route path (with basePath applied) */
|
|
413
|
+
finalRoutePath: string;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Collect routes from all configured layers and build proper route trees
|
|
417
|
+
*/
|
|
418
|
+
declare function collectLayerRoutes(sources: LayerRouteSource[], config: ResolvedRouterConfig): Promise<LayerRoutesResult>;
|
|
419
|
+
//#endregion
|
|
420
|
+
//#region src/layout-resolver.d.ts
|
|
421
|
+
/**
|
|
422
|
+
* Resolved layout information
|
|
423
|
+
*/
|
|
424
|
+
interface ResolvedLayout {
|
|
425
|
+
/** Absolute file path */
|
|
426
|
+
filePath: string;
|
|
427
|
+
/** Layout name (undefined for default) */
|
|
428
|
+
name?: string;
|
|
429
|
+
/** Route path this layout applies to */
|
|
430
|
+
routePath: string;
|
|
431
|
+
/** Layer this layout comes from */
|
|
432
|
+
layer: string;
|
|
433
|
+
/** Layer priority */
|
|
434
|
+
priority: number;
|
|
435
|
+
/** Source type: 'host' or 'layer' */
|
|
436
|
+
source: 'host' | 'layer';
|
|
437
|
+
/** Mount path for layer layouts */
|
|
438
|
+
mountPath?: string;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Layout chain for a page
|
|
442
|
+
*/
|
|
443
|
+
interface LayoutChain {
|
|
444
|
+
/** Ordered list of layouts from outermost to innermost */
|
|
445
|
+
layouts: ResolvedLayout[];
|
|
446
|
+
/** Final page component */
|
|
447
|
+
page: LayerRouteNode;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Layout resolver for nested wrapping
|
|
451
|
+
*
|
|
452
|
+
* Key principle: Host layouts WRAP layer layouts (outer → inner)
|
|
453
|
+
* - Host root layout is always outermost
|
|
454
|
+
* - Host path-specific layouts come next
|
|
455
|
+
* - Layer layouts are innermost (closest to page content)
|
|
456
|
+
*/
|
|
457
|
+
declare class LayoutResolver {
|
|
458
|
+
private hostLayouts;
|
|
459
|
+
private layerLayouts;
|
|
460
|
+
private layerMounts;
|
|
461
|
+
/**
|
|
462
|
+
* Build layout chains for all routes
|
|
463
|
+
*/
|
|
464
|
+
resolveLayoutChains(routes: LayerRouteNode[], layerMounts: Map<string, string>): Map<string, LayoutChain>;
|
|
465
|
+
/**
|
|
466
|
+
* Categorize layouts into host and layer layouts
|
|
467
|
+
*/
|
|
468
|
+
private categorizeLayouts;
|
|
469
|
+
/**
|
|
470
|
+
* Build the complete layout chain for a page
|
|
471
|
+
*
|
|
472
|
+
* Order: Host root → Host path-specific → Layer root → Layer path-specific → Page
|
|
473
|
+
*/
|
|
474
|
+
private buildLayoutChain;
|
|
475
|
+
/**
|
|
476
|
+
* Collect host layouts from root to most specific path
|
|
477
|
+
*/
|
|
478
|
+
private collectHostLayouts;
|
|
479
|
+
/**
|
|
480
|
+
* Collect layer layouts from layer root to most specific path
|
|
481
|
+
*/
|
|
482
|
+
private collectLayerLayouts;
|
|
483
|
+
/**
|
|
484
|
+
* Extract layout name from file path
|
|
485
|
+
* _layout.admin.vue → 'admin'
|
|
486
|
+
* _layout.vue → undefined
|
|
487
|
+
*/
|
|
488
|
+
private extractLayoutName;
|
|
489
|
+
/**
|
|
490
|
+
* Make a unique key for layout lookup
|
|
491
|
+
*/
|
|
492
|
+
private makeLayoutKey;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Generate nested layout component structure for Vue Router
|
|
496
|
+
*
|
|
497
|
+
* This generates the component tree where layouts wrap their children
|
|
498
|
+
*/
|
|
499
|
+
declare function generateLayoutStructure(chain: LayoutChain): {
|
|
500
|
+
component: string;
|
|
501
|
+
children?: any[];
|
|
502
|
+
} | null;
|
|
503
|
+
//#endregion
|
|
504
|
+
export { type ExtendedParsedRoute, type GeneratedOutput, type KimeshRouterConfig, type KimeshRouterPluginOptions, type LayerRouteConfig, type LayerRouteNode, type LayerRouteSource, type LayerRoutesResult, type LayoutChain, LayoutResolver, type ParsedFileName, type ParsedRoute, type ResolvedLayout, type ResolvedRouterConfig, type RouteNode, type RouteNodeType, type RouteParam, RouteScanner, RouteTreeBuilder, type TreeNode, buildGlobPattern, buildRoutePath, buildRouteTree, collectLayerRoutes, createCatchAllParam, createDynamicParam, createEmptyParsedRoute, createScanner, createTreeBuilder, extractDynamicParam, generateLayoutStructure, generateRouteTypes, generateRoutes, isDotNotationRoute, isRootDir, kimeshRouterGenerator, parseRouteFile, processDirectoryPath, processPathSegment, unescapeBrackets };
|
|
505
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/plugin.ts","../src/scanner.ts","../src/parser.ts","../src/tree-builder.ts","../src/codegen/routes.ts","../src/codegen/types.ts","../src/route-utils.ts","../src/layer-collector.ts","../src/layout-resolver.ts"],"mappings":"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"}
|