@buzola/vite-plugin 0.0.10 → 0.0.11
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/dist/__tests__/codegen.test.js +39 -0
- package/dist/__tests__/codegen.test.js.map +1 -1
- package/dist/generator/codegen.d.ts.map +1 -1
- package/dist/generator/codegen.js +9 -2
- package/dist/generator/codegen.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/codegen.test.ts +43 -0
- package/src/generator/codegen.ts +10 -2
|
@@ -11,6 +11,45 @@ describe('generateRouteModule', () => {
|
|
|
11
11
|
expect(output).toContain('interface BuzolaPersistentParams');
|
|
12
12
|
expect(output).toContain('lang: true;');
|
|
13
13
|
});
|
|
14
|
+
it('quotes hyphenated persistentParams keys', () => {
|
|
15
|
+
const output = generateRouteModule({
|
|
16
|
+
tree: [],
|
|
17
|
+
routesDir: '/tmp/routes',
|
|
18
|
+
outputPath: '/tmp/buzola.gen.ts',
|
|
19
|
+
persistentParams: ['create-new-project', 'source', 'utm-medium'],
|
|
20
|
+
});
|
|
21
|
+
expect(output).toContain("'create-new-project': true;");
|
|
22
|
+
expect(output).toContain('source: true;');
|
|
23
|
+
expect(output).toContain("'utm-medium': true;");
|
|
24
|
+
});
|
|
25
|
+
it('quotes hyphenated page param keys in BuzolaPageMap', () => {
|
|
26
|
+
const output = generateRouteModule({
|
|
27
|
+
tree: [{
|
|
28
|
+
segment: 'users',
|
|
29
|
+
fullPath: '/users',
|
|
30
|
+
filePath: '/tmp/routes/users.tsx',
|
|
31
|
+
exportName: 'default',
|
|
32
|
+
isLayout: false,
|
|
33
|
+
isIndex: false,
|
|
34
|
+
isNotFound: false,
|
|
35
|
+
isPathlessGroup: false,
|
|
36
|
+
pageExports: [{
|
|
37
|
+
pageId: 'users',
|
|
38
|
+
exportName: 'default',
|
|
39
|
+
routePattern: '/users',
|
|
40
|
+
params: [
|
|
41
|
+
{ name: 'create-new-project', optional: true, array: false },
|
|
42
|
+
{ name: 'source', optional: false, array: false },
|
|
43
|
+
],
|
|
44
|
+
}],
|
|
45
|
+
children: [],
|
|
46
|
+
}],
|
|
47
|
+
routesDir: '/tmp/routes',
|
|
48
|
+
outputPath: '/tmp/buzola.gen.ts',
|
|
49
|
+
});
|
|
50
|
+
expect(output).toContain("'create-new-project'?: string");
|
|
51
|
+
expect(output).toContain('source: string');
|
|
52
|
+
});
|
|
14
53
|
it('does not emit BuzolaPersistentParams without persistentParams', () => {
|
|
15
54
|
const output = generateRouteModule({
|
|
16
55
|
tree: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/__tests__/codegen.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/__tests__/codegen.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/generator/codegen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC9B,yCAAyC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/generator/codegen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC9B,yCAAyC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AASD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAuFnE"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Quote a property key when it isn't a valid JS identifier (e.g. hyphenated).
|
|
4
|
+
*/
|
|
5
|
+
function formatPropertyKey(name) {
|
|
6
|
+
return /^[A-Za-z_$][\w$]*$/.test(name) ? name : `'${name}'`;
|
|
7
|
+
}
|
|
2
8
|
/**
|
|
3
9
|
* Generate the buzola.gen.ts file with:
|
|
4
10
|
* 1. Module augmentation for BuzolaPageMap (type safety)
|
|
@@ -50,7 +56,8 @@ export function generateRouteModule(options) {
|
|
|
50
56
|
else {
|
|
51
57
|
const paramEntries = page.params.map(p => {
|
|
52
58
|
const type = p.array ? 'string[]' : 'string';
|
|
53
|
-
|
|
59
|
+
const key = formatPropertyKey(p.name);
|
|
60
|
+
return p.optional ? `${key}?: ${type}` : `${key}: ${type}`;
|
|
54
61
|
}).join('; ');
|
|
55
62
|
lines.push(` '${page.pageId}': { ${paramEntries} };`);
|
|
56
63
|
}
|
|
@@ -59,7 +66,7 @@ export function generateRouteModule(options) {
|
|
|
59
66
|
if (options.persistentParams && options.persistentParams.length > 0) {
|
|
60
67
|
lines.push(' interface BuzolaPersistentParams {');
|
|
61
68
|
for (const param of options.persistentParams) {
|
|
62
|
-
lines.push(` ${param}: true;`);
|
|
69
|
+
lines.push(` ${formatPropertyKey(param)}: true;`);
|
|
63
70
|
}
|
|
64
71
|
lines.push(' }');
|
|
65
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/generator/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAcjC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IAC1D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC1C,IAAI,aAAa,GAAG,CAAC,CAAA;IAErB,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;IACjF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,wEAAwE;IACxE,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC/D,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC9D,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;IAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,iFAAiF;IACjF,MAAM,OAAO,GAAiF,EAAE,CAAA;IAChG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgD,CAAA;IAC5E,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAA;IAE7E,yBAAyB;IACzB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CACT,SAAS,GAAG,CAAC,OAAO,oBAAoB,GAAG,CAAC,QAAQ,8BAA8B,GAAG,CAAC,UAAU,wDAAwD,CACxJ,CAAA;QACF,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,UAAU,OAAO,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAA;YACrF,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAA;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,uDAAuD;IACvD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAEhC,sCAAsC;IACtC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACvE,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACP,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACxC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;gBAC5C,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/generator/codegen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buzola/vite-plugin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"directory": "packages/vite-plugin"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@buzola/router": "^0.0.
|
|
27
|
+
"@buzola/router": "^0.0.11"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^25.3.3",
|
|
@@ -14,6 +14,49 @@ describe('generateRouteModule', () => {
|
|
|
14
14
|
expect(output).toContain('lang: true;')
|
|
15
15
|
})
|
|
16
16
|
|
|
17
|
+
it('quotes hyphenated persistentParams keys', () => {
|
|
18
|
+
const output = generateRouteModule({
|
|
19
|
+
tree: [],
|
|
20
|
+
routesDir: '/tmp/routes',
|
|
21
|
+
outputPath: '/tmp/buzola.gen.ts',
|
|
22
|
+
persistentParams: ['create-new-project', 'source', 'utm-medium'],
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
expect(output).toContain("'create-new-project': true;")
|
|
26
|
+
expect(output).toContain('source: true;')
|
|
27
|
+
expect(output).toContain("'utm-medium': true;")
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('quotes hyphenated page param keys in BuzolaPageMap', () => {
|
|
31
|
+
const output = generateRouteModule({
|
|
32
|
+
tree: [{
|
|
33
|
+
segment: 'users',
|
|
34
|
+
fullPath: '/users',
|
|
35
|
+
filePath: '/tmp/routes/users.tsx',
|
|
36
|
+
exportName: 'default',
|
|
37
|
+
isLayout: false,
|
|
38
|
+
isIndex: false,
|
|
39
|
+
isNotFound: false,
|
|
40
|
+
isPathlessGroup: false,
|
|
41
|
+
pageExports: [{
|
|
42
|
+
pageId: 'users',
|
|
43
|
+
exportName: 'default',
|
|
44
|
+
routePattern: '/users',
|
|
45
|
+
params: [
|
|
46
|
+
{ name: 'create-new-project', optional: true, array: false },
|
|
47
|
+
{ name: 'source', optional: false, array: false },
|
|
48
|
+
],
|
|
49
|
+
}],
|
|
50
|
+
children: [],
|
|
51
|
+
}],
|
|
52
|
+
routesDir: '/tmp/routes',
|
|
53
|
+
outputPath: '/tmp/buzola.gen.ts',
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
expect(output).toContain("'create-new-project'?: string")
|
|
57
|
+
expect(output).toContain('source: string')
|
|
58
|
+
})
|
|
59
|
+
|
|
17
60
|
it('does not emit BuzolaPersistentParams without persistentParams', () => {
|
|
18
61
|
const output = generateRouteModule({
|
|
19
62
|
tree: [],
|
package/src/generator/codegen.ts
CHANGED
|
@@ -12,6 +12,13 @@ export interface CodegenOptions {
|
|
|
12
12
|
persistentParams?: string[]
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Quote a property key when it isn't a valid JS identifier (e.g. hyphenated).
|
|
17
|
+
*/
|
|
18
|
+
function formatPropertyKey(name: string): string {
|
|
19
|
+
return /^[A-Za-z_$][\w$]*$/.test(name) ? name : `'${name}'`
|
|
20
|
+
}
|
|
21
|
+
|
|
15
22
|
/**
|
|
16
23
|
* Generate the buzola.gen.ts file with:
|
|
17
24
|
* 1. Module augmentation for BuzolaPageMap (type safety)
|
|
@@ -70,7 +77,8 @@ export function generateRouteModule(options: CodegenOptions): string {
|
|
|
70
77
|
} else {
|
|
71
78
|
const paramEntries = page.params.map(p => {
|
|
72
79
|
const type = p.array ? 'string[]' : 'string'
|
|
73
|
-
|
|
80
|
+
const key = formatPropertyKey(p.name)
|
|
81
|
+
return p.optional ? `${key}?: ${type}` : `${key}: ${type}`
|
|
74
82
|
}).join('; ')
|
|
75
83
|
lines.push(` '${page.pageId}': { ${paramEntries} };`)
|
|
76
84
|
}
|
|
@@ -79,7 +87,7 @@ export function generateRouteModule(options: CodegenOptions): string {
|
|
|
79
87
|
if (options.persistentParams && options.persistentParams.length > 0) {
|
|
80
88
|
lines.push(' interface BuzolaPersistentParams {')
|
|
81
89
|
for (const param of options.persistentParams) {
|
|
82
|
-
lines.push(` ${param}: true;`)
|
|
90
|
+
lines.push(` ${formatPropertyKey(param)}: true;`)
|
|
83
91
|
}
|
|
84
92
|
lines.push(' }')
|
|
85
93
|
}
|