@zphhpzzph/vue-route-gen 1.0.0 → 2.0.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.
@@ -0,0 +1,33 @@
1
+ import type { RouteRecordRaw, RouteRecordRedirectOption, _RouteRecordProps } from 'vue-router';
2
+ type RouteRecordProps = _RouteRecordProps;
3
+ /**
4
+ * Route configuration override interface
5
+ * Supports all RouteRecordRaw fields for complete customization
6
+ */
7
+ export interface RouteConfigOverride {
8
+ path?: string;
9
+ name?: string;
10
+ alias?: string | string[];
11
+ redirect?: RouteRecordRedirectOption;
12
+ props?: RouteRecordProps;
13
+ meta?: Record<string, any>;
14
+ children?: RouteRecordRaw[];
15
+ beforeEnter?: any;
16
+ [key: string]: any;
17
+ }
18
+ /**
19
+ * Parse Vue SFC and extract complete route configuration
20
+ * Supports both <route> custom block and defineRoute() macro
21
+ *
22
+ * @param filePath - Path to the Vue SFC file
23
+ * @returns Route configuration override, or undefined if no custom config
24
+ * @throws Error if both <route> block and defineRoute() are present
25
+ */
26
+ export declare function extractRouteConfig(filePath: string): RouteConfigOverride | undefined;
27
+ /**
28
+ * Parse Vue SFC and extract metadata from <route> custom block
29
+ * @deprecated Use extractRouteConfig() instead for full configuration support
30
+ */
31
+ export declare function extractRouteMeta(filePath: string): Record<string, any>;
32
+ export {};
33
+ //# sourceMappingURL=extract-meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-meta.d.ts","sourceRoot":"","sources":["../src/extract-meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/F,KAAK,gBAAgB,GAAG,iBAAiB,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAiDpF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAStE"}
@@ -0,0 +1,137 @@
1
+ import fs from 'node:fs';
2
+ import { parse } from '@vue/compiler-sfc';
3
+ /**
4
+ * Parse Vue SFC and extract complete route configuration
5
+ * Supports both <route> custom block and defineRoute() macro
6
+ *
7
+ * @param filePath - Path to the Vue SFC file
8
+ * @returns Route configuration override, or undefined if no custom config
9
+ * @throws Error if both <route> block and defineRoute() are present
10
+ */
11
+ export function extractRouteConfig(filePath) {
12
+ try {
13
+ const content = fs.readFileSync(filePath, 'utf-8');
14
+ const { descriptor } = parse(content);
15
+ // Detect conflict between <route> block and defineRoute()
16
+ const hasRouteBlock = descriptor.customBlocks.some((b) => b.type === 'route');
17
+ const hasDefineRoute = descriptor.scriptSetup?.content.includes('defineRoute');
18
+ if (hasRouteBlock && hasDefineRoute) {
19
+ throw new Error(`[vue-route-gen] Error in ${filePath}:\n` +
20
+ 'Cannot use both <route> custom block and defineRoute() macro.\n' +
21
+ 'Please choose one method:\n' +
22
+ ' - Use <route> block in template section\n' +
23
+ ' - Use defineRoute() in <script setup>\n\n' +
24
+ 'Example:\n' +
25
+ ' <route>{ "path": "/custom" }</route>\n' +
26
+ ' OR\n' +
27
+ ' <script setup>\n' +
28
+ ' defineRoute({ path: "/custom" })\n' +
29
+ ' </script>');
30
+ }
31
+ // Extract from <route> block
32
+ if (hasRouteBlock) {
33
+ const routeBlock = descriptor.customBlocks.find((b) => b.type === 'route');
34
+ return parseRouteConfig(routeBlock.content);
35
+ }
36
+ // Extract from defineRoute() call
37
+ if (hasDefineRoute) {
38
+ const defineRouteCall = extractDefineRouteCall(descriptor.scriptSetup.content);
39
+ if (defineRouteCall) {
40
+ return evaluateDefineRouteCall(defineRouteCall, descriptor.scriptSetup.content);
41
+ }
42
+ }
43
+ return undefined;
44
+ }
45
+ catch (error) {
46
+ // Re-throw conflict errors as they are user errors
47
+ if (error instanceof Error && error.message.includes('Cannot use both')) {
48
+ throw error;
49
+ }
50
+ // Warn about other errors but don't fail the build
51
+ console.warn(`[vue-route-gen] Failed to extract route config from ${filePath}:`, error);
52
+ return undefined;
53
+ }
54
+ }
55
+ /**
56
+ * Parse Vue SFC and extract metadata from <route> custom block
57
+ * @deprecated Use extractRouteConfig() instead for full configuration support
58
+ */
59
+ export function extractRouteMeta(filePath) {
60
+ try {
61
+ const config = extractRouteConfig(filePath);
62
+ return config?.meta ?? {};
63
+ }
64
+ catch (error) {
65
+ // If config extraction fails (e.g., conflict), return empty meta
66
+ console.warn(`Failed to extract meta from ${filePath}:`, error);
67
+ return {};
68
+ }
69
+ }
70
+ /**
71
+ * Extract defineRoute() call content from script setup
72
+ */
73
+ function extractDefineRouteCall(scriptContent) {
74
+ // Match: const xxx = defineRoute(...) or defineRoute(...)
75
+ // Support both variable assignment and direct call
76
+ const patterns = [
77
+ // const/let/var xxx = defineRoute(...)
78
+ /(?:const|let|var)\s+\w+\s*=\s*defineRoute\s*\(([\s\S]*?)\)\s*(?:;|$)/,
79
+ // Direct defineRoute(...) call
80
+ /defineRoute\s*\(([\s\S]*?)\)\s*(?:;|$)/,
81
+ ];
82
+ for (const pattern of patterns) {
83
+ const match = scriptContent.match(pattern);
84
+ if (match) {
85
+ return match[1];
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ /**
91
+ * Evaluate defineRoute() call content with constant replacement
92
+ * Phase 1 MVP: Simple evaluation without complex constant resolution
93
+ */
94
+ function evaluateDefineRouteCall(callContent, scriptContent) {
95
+ try {
96
+ // Phase 1 MVP: Direct evaluation without constant replacement
97
+ // Future enhancement: Parse imports and replace constants
98
+ return parseRouteConfig(callContent);
99
+ }
100
+ catch (error) {
101
+ console.warn('[vue-route-gen] Failed to evaluate defineRoute() call:', error);
102
+ return undefined;
103
+ }
104
+ }
105
+ /**
106
+ * Parse route configuration from content
107
+ * Supports both JSON and JavaScript object literal syntax
108
+ */
109
+ function parseRouteConfig(content) {
110
+ const trimmed = content.trim();
111
+ try {
112
+ // Try parsing as JSON first
113
+ const parsed = JSON.parse(trimmed);
114
+ return parsed;
115
+ }
116
+ catch {
117
+ // If JSON parsing fails, try evaluating as JavaScript object literal
118
+ try {
119
+ // Use Function constructor for safe evaluation
120
+ const fn = new Function(`return (${trimmed});`);
121
+ return fn();
122
+ }
123
+ catch (error) {
124
+ console.warn('[vue-route-gen] Failed to parse route config:', error);
125
+ return undefined;
126
+ }
127
+ }
128
+ }
129
+ /**
130
+ * Parse the content of <route> custom block
131
+ * The content should be valid JSON or JavaScript object literal
132
+ * @deprecated Use parseRouteConfig() instead
133
+ */
134
+ function parseRouteBlockContent(content) {
135
+ return parseRouteConfig(content) ?? {};
136
+ }
137
+ //# sourceMappingURL=extract-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-meta.js","sourceRoot":"","sources":["../src/extract-meta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { RouteLocationNormalizedLoaded, Router, RouteParams as VueRouteParams, LocationQuery } from 'vue-router';
2
+ /**
3
+ * Type-safe route location for navigation
4
+ */
5
+ export interface TypedRouteLocation<TName extends string = string, TParams = Record<string, any>> {
6
+ name?: TName;
7
+ path?: string;
8
+ params?: TParams & VueRouteParams;
9
+ query?: LocationQuery;
10
+ hash?: string;
11
+ state?: Record<string, any>;
12
+ }
13
+ /**
14
+ * Type-safe router push/replace method
15
+ */
16
+ export type TypedNavigationMethod = <TName extends string, TParams extends Record<string, any> = Record<string, any>>(location: TypedRouteLocation<TName, TParams>) => ReturnType<Router['push']>;
17
+ /**
18
+ * Enhanced Router with typed navigation methods
19
+ */
20
+ export interface TypedRouter extends Omit<Router, 'push' | 'replace'> {
21
+ /**
22
+ * Programmatically navigate to a new URL with type safety
23
+ */
24
+ push: TypedNavigationMethod;
25
+ /**
26
+ * Programmatically replace the current location with type safety
27
+ */
28
+ replace: TypedNavigationMethod;
29
+ }
30
+ /**
31
+ * Enhanced RouteLocationNormalized with typed params
32
+ */
33
+ export interface TypedRoute<TName extends string = string, TParams extends Record<string, any> = Record<string, any>> extends Omit<RouteLocationNormalizedLoaded, 'params' | 'name'> {
34
+ name: TName;
35
+ params: TParams & VueRouteParams;
36
+ }
37
+ /**
38
+ * Creates a typed useRoute hook with the given route parameters type
39
+ */
40
+ export declare function createTypedUseRoute<TName extends string, TParams extends Record<string, any>>(): () => TypedRoute<TName, TParams>;
41
+ /**
42
+ * Creates a typed useRouter hook with route parameter type checking
43
+ */
44
+ export declare function createTypedUseRouter(): () => TypedRouter;
45
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,MAAM,EACN,WAAW,IAAI,cAAc,EAC7B,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAE7B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,SAAS,MAAM,EACpB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEzD,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,KACzC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACnE;;OAEG;IACH,IAAI,EAAE,qBAAqB,CAAC;IAC5B;;OAEG;IACH,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACzD,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9D,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,SAAS,MAAM,EACpB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAEP,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,UACL,WAAW,CAkBzC"}
package/dist/hooks.js ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Creates a typed useRoute hook with the given route parameters type
3
+ */
4
+ export function createTypedUseRoute() {
5
+ return function useRoute() {
6
+ const { useRoute: vueUseRoute } = require('vue-router');
7
+ return vueUseRoute();
8
+ };
9
+ }
10
+ /**
11
+ * Creates a typed useRouter hook with route parameter type checking
12
+ */
13
+ export function createTypedUseRouter() {
14
+ return function useRouter() {
15
+ const { useRouter: vueUseRouter } = require('vue-router');
16
+ const router = vueUseRouter();
17
+ const typedPush = (location) => {
18
+ return router.push(location);
19
+ };
20
+ const typedReplace = (location) => {
21
+ return router.replace(location);
22
+ };
23
+ return {
24
+ ...router,
25
+ push: typedPush,
26
+ replace: typedReplace,
27
+ };
28
+ };
29
+ }
30
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAyDA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAIjC,OAAO,SAAS,QAAQ;QACtB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACxD,OAAO,WAAW,EAAgC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,SAAS,SAAS;QACvB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,MAAM,SAAS,GAA0B,CAAC,QAAQ,EAAE,EAAE;YACpD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,MAAM,YAAY,GAA0B,CAAC,QAAQ,EAAE,EAAE;YACvD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAe,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type RouteConfigOverride } from './extract-meta.js';
1
2
  export interface GenerateRoutesOptions {
2
3
  pagesDir?: string;
3
4
  outFile?: string;
@@ -7,12 +8,21 @@ export interface RouteEntry {
7
8
  name: string;
8
9
  importPath: string;
9
10
  children: RouteEntry[];
11
+ params?: string[];
12
+ meta?: Record<string, any>;
13
+ configOverride?: RouteConfigOverride;
10
14
  }
11
15
  export interface RouteData {
12
16
  routes: RouteEntry[];
13
17
  routeNameList: readonly string[];
14
18
  routePathList: readonly string[];
15
19
  routePathByName: [string, string][];
20
+ routeParamsByName: [string, string[]][];
21
+ routeKeyData: Array<{
22
+ name: string;
23
+ path: string;
24
+ defaultName: string;
25
+ }>;
16
26
  }
17
27
  export declare function generateRoutes({ pagesDir, outFile, }?: GenerateRoutesOptions): boolean;
18
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CACrC;AAqZD,wBAAgB,cAAc,CAAC,EAC7B,QAAmD,EACnD,OAAgE,GACjE,GAAE,qBAA0B,GAAG,OAAO,CAiCtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAyDnG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACxC,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E;AAgrBD,wBAAgB,cAAc,CAAC,EAC7B,QAAmD,EACnD,OAAgE,GACjE,GAAE,qBAA0B,GAAG,OAAO,CAiCtC"}