@avijs/compiler 0.5.1 → 0.5.3
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/client.d.ts.map +1 -1
- package/dist/client.js +21 -4
- package/dist/client.js.map +1 -1
- package/package.json +3 -3
- package/src/client.ts +23 -4
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,CAY9E"}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { HTTP_METHODS } from '@avijs/core';
|
|
2
3
|
import ts from 'typescript';
|
|
3
4
|
import { readProgram, unwrap } from './check.js';
|
|
4
5
|
const ROUTE_DECORATORS = new Set(['Get', 'Post', 'Put', 'Patch', 'Delete', 'Head', 'Options']);
|
|
@@ -101,7 +102,7 @@ class Generator {
|
|
|
101
102
|
.sort((a, b) => a.file.localeCompare(b.file) || a.alias.localeCompare(b.alias))
|
|
102
103
|
.map(({ name, file, alias }) => {
|
|
103
104
|
const named = name === alias ? name : `${name} as ${alias}`;
|
|
104
|
-
return `import type { ${named} } from
|
|
105
|
+
return `import type { ${named} } from ${quote(this.#specifier(file))};`;
|
|
105
106
|
});
|
|
106
107
|
const lines = [
|
|
107
108
|
'// Generated by `avi client`. Do not edit: run it again after changing routes.',
|
|
@@ -109,7 +110,7 @@ class Generator {
|
|
|
109
110
|
...imports,
|
|
110
111
|
'',
|
|
111
112
|
'export interface Api {',
|
|
112
|
-
...routes.map((r) => `
|
|
113
|
+
...routes.map((r) => ` ${quote(`${r.method} ${r.path}`)}: ${r.type};`),
|
|
113
114
|
'}',
|
|
114
115
|
'',
|
|
115
116
|
];
|
|
@@ -196,7 +197,7 @@ class Generator {
|
|
|
196
197
|
continue;
|
|
197
198
|
this.#checkSchemaVisible(call, member);
|
|
198
199
|
const full = joinPath(base, routePath);
|
|
199
|
-
this.#add(method.toUpperCase(), full, `MethodEndpoint
|
|
200
|
+
this.#add(method.toUpperCase(), full, `MethodEndpoint<${quote(full)}, ${alias}['${member.name.text}']>`, call);
|
|
200
201
|
}
|
|
201
202
|
}
|
|
202
203
|
}
|
|
@@ -230,7 +231,7 @@ class Generator {
|
|
|
230
231
|
if (method === undefined)
|
|
231
232
|
return;
|
|
232
233
|
const full = joinPath(base, routePath);
|
|
233
|
-
this.#add(method, full, `RouteEndpoint
|
|
234
|
+
this.#add(method, full, `RouteEndpoint<${quote(full)}, typeof ${alias}, ${String(index)}>`, element);
|
|
234
235
|
});
|
|
235
236
|
}
|
|
236
237
|
/** The routes array: a literal, or a factory whose body returns one. */
|
|
@@ -270,6 +271,10 @@ class Generator {
|
|
|
270
271
|
this.#report(method.getSourceFile(), method.name, 'warning', 'AVI105', `Type ctx as RouteContext<typeof schema> so the client sees the schema of ${method.name.getText()}`);
|
|
271
272
|
}
|
|
272
273
|
#add(method, full, type, at) {
|
|
274
|
+
if (!HTTP_METHODS.includes(method)) {
|
|
275
|
+
this.#report(at.getSourceFile(), at, 'warning', 'AVI107', `${method} is not an HTTP method`);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
273
278
|
const key = `${method} ${full}`;
|
|
274
279
|
if (this.#routes.has(key)) {
|
|
275
280
|
this.#report(at.getSourceFile(), at, 'warning', 'AVI106', `Duplicate route ${key}`);
|
|
@@ -407,6 +412,18 @@ class Generator {
|
|
|
407
412
|
});
|
|
408
413
|
}
|
|
409
414
|
}
|
|
415
|
+
/** A single-quoted TypeScript string literal for any text, so paths cannot break the file. */
|
|
416
|
+
function quote(text) {
|
|
417
|
+
return `'${text.replace(/[\\'\n\r\u2028\u2029]/g, (c) => ESCAPES[c] ?? c)}'`;
|
|
418
|
+
}
|
|
419
|
+
const ESCAPES = {
|
|
420
|
+
'\\': '\\\\',
|
|
421
|
+
"'": "\\'",
|
|
422
|
+
'\n': '\\n',
|
|
423
|
+
'\r': '\\r',
|
|
424
|
+
'\u2028': '\\u2028',
|
|
425
|
+
'\u2029': '\\u2029',
|
|
426
|
+
};
|
|
410
427
|
// Same as `joinPath` in @avijs/core.
|
|
411
428
|
function joinPath(prefix, routePath) {
|
|
412
429
|
const joined = `${prefix}/${routePath}`.replace(/\/{2,}/g, '/');
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@avijs/compiler",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Optional build-time checks and manifests for Avi.js apps.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"avi",
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@avijs/core": "0.5.
|
|
48
|
+
"@avijs/core": "0.5.3"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"typescript": ">=5.8"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@avijs/client": "0.5.
|
|
54
|
+
"@avijs/client": "0.5.3",
|
|
55
55
|
"valibot": "1.5.0"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
package/src/client.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { HTTP_METHODS } from '@avijs/core';
|
|
2
3
|
import ts from 'typescript';
|
|
3
4
|
import { readProgram, unwrap, type Diagnostic } from './check.js';
|
|
4
5
|
|
|
@@ -140,7 +141,7 @@ class Generator {
|
|
|
140
141
|
.sort((a, b) => a.file.localeCompare(b.file) || a.alias.localeCompare(b.alias))
|
|
141
142
|
.map(({ name, file, alias }) => {
|
|
142
143
|
const named = name === alias ? name : `${name} as ${alias}`;
|
|
143
|
-
return `import type { ${named} } from
|
|
144
|
+
return `import type { ${named} } from ${quote(this.#specifier(file))};`;
|
|
144
145
|
});
|
|
145
146
|
|
|
146
147
|
const lines = [
|
|
@@ -149,7 +150,7 @@ class Generator {
|
|
|
149
150
|
...imports,
|
|
150
151
|
'',
|
|
151
152
|
'export interface Api {',
|
|
152
|
-
...routes.map((r) => `
|
|
153
|
+
...routes.map((r) => ` ${quote(`${r.method} ${r.path}`)}: ${r.type};`),
|
|
153
154
|
'}',
|
|
154
155
|
'',
|
|
155
156
|
];
|
|
@@ -254,7 +255,7 @@ class Generator {
|
|
|
254
255
|
this.#add(
|
|
255
256
|
method.toUpperCase(),
|
|
256
257
|
full,
|
|
257
|
-
`MethodEndpoint
|
|
258
|
+
`MethodEndpoint<${quote(full)}, ${alias}['${member.name.text}']>`,
|
|
258
259
|
call,
|
|
259
260
|
);
|
|
260
261
|
}
|
|
@@ -298,7 +299,7 @@ class Generator {
|
|
|
298
299
|
this.#add(
|
|
299
300
|
method,
|
|
300
301
|
full,
|
|
301
|
-
`RouteEndpoint
|
|
302
|
+
`RouteEndpoint<${quote(full)}, typeof ${alias}, ${String(index)}>`,
|
|
302
303
|
element,
|
|
303
304
|
);
|
|
304
305
|
});
|
|
@@ -346,6 +347,10 @@ class Generator {
|
|
|
346
347
|
}
|
|
347
348
|
|
|
348
349
|
#add(method: string, full: string, type: string, at: ts.Node): void {
|
|
350
|
+
if (!(HTTP_METHODS as readonly string[]).includes(method)) {
|
|
351
|
+
this.#report(at.getSourceFile(), at, 'warning', 'AVI107', `${method} is not an HTTP method`);
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
349
354
|
const key = `${method} ${full}`;
|
|
350
355
|
if (this.#routes.has(key)) {
|
|
351
356
|
this.#report(at.getSourceFile(), at, 'warning', 'AVI106', `Duplicate route ${key}`);
|
|
@@ -512,6 +517,20 @@ class Generator {
|
|
|
512
517
|
}
|
|
513
518
|
}
|
|
514
519
|
|
|
520
|
+
/** A single-quoted TypeScript string literal for any text, so paths cannot break the file. */
|
|
521
|
+
function quote(text: string): string {
|
|
522
|
+
return `'${text.replace(/[\\'\n\r\u2028\u2029]/g, (c) => ESCAPES[c] ?? c)}'`;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
const ESCAPES: Record<string, string> = {
|
|
526
|
+
'\\': '\\\\',
|
|
527
|
+
"'": "\\'",
|
|
528
|
+
'\n': '\\n',
|
|
529
|
+
'\r': '\\r',
|
|
530
|
+
'\u2028': '\\u2028',
|
|
531
|
+
'\u2029': '\\u2029',
|
|
532
|
+
};
|
|
533
|
+
|
|
515
534
|
// Same as `joinPath` in @avijs/core.
|
|
516
535
|
function joinPath(prefix: string, routePath: string): string {
|
|
517
536
|
const joined = `${prefix}/${routePath}`.replace(/\/{2,}/g, '/');
|