@technicity/openapi-sdk-generator 5.3.0 → 5.4.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/dist/generate-remix.js +113 -63
- package/dist/generate-remix.js.map +1 -1
- package/package.json +1 -1
- package/src/generate-remix.ts +127 -70
- package/dist/HttpClient.ts +0 -76
package/dist/generate-remix.js
CHANGED
|
@@ -73,7 +73,13 @@ async function generate(input) {
|
|
|
73
73
|
await fs.writeFile(path.join(outdir, `Sdk.ts`), prettier.format(`${env === "browser"
|
|
74
74
|
? ""
|
|
75
75
|
: `// TODO: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/60924
|
|
76
|
-
import {
|
|
76
|
+
import {
|
|
77
|
+
fetch,
|
|
78
|
+
Response,
|
|
79
|
+
Request,
|
|
80
|
+
HeadersInit,
|
|
81
|
+
BodyInit,
|
|
82
|
+
Headers, } from "undici";`}
|
|
77
83
|
|
|
78
84
|
export type Interceptors = { req?: (req: Request) => Promise<Request>, res?: (req: Request, res: Response) => Promise<Response> };
|
|
79
85
|
|
|
@@ -89,26 +95,27 @@ async function generate(input) {
|
|
|
89
95
|
}
|
|
90
96
|
|
|
91
97
|
static createNull(
|
|
92
|
-
opts: SdkOpts & {
|
|
93
|
-
responses?: (req: {
|
|
94
|
-
operationId: string;
|
|
95
|
-
url: URL;
|
|
96
|
-
method: string;
|
|
97
|
-
headers: Headers;
|
|
98
|
-
}) => ReturnType<NonNullable<CreateNullFetchInput["responses"]>>;
|
|
99
|
-
}
|
|
98
|
+
opts: SdkOpts & { responses?: NullResponses; }
|
|
100
99
|
) {
|
|
101
100
|
const { responses: _responses, ...rest } = opts;
|
|
102
101
|
const responses: CreateNullFetchInput["responses"] =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
102
|
+
_responses === void 0
|
|
103
|
+
? () => ({ body: JSON.stringify({}) })
|
|
104
|
+
: (req) => {
|
|
105
|
+
const operationId = req.headers.get("x-operation-id");
|
|
106
|
+
if (!operationId) {
|
|
107
|
+
throw new Error(\`No operationId for \${req}.\`);
|
|
108
|
+
}
|
|
109
|
+
const fn = (_responses as any)[operationId] ?? _responses["*"];
|
|
110
|
+
if (!fn) {
|
|
111
|
+
return { body: JSON.stringify({}) };
|
|
110
112
|
}
|
|
111
|
-
|
|
113
|
+
const result = fn({ ...req, operationId });
|
|
114
|
+
return {
|
|
115
|
+
status: result?.status,
|
|
116
|
+
body: JSON.stringify(result?.body),
|
|
117
|
+
};
|
|
118
|
+
};
|
|
112
119
|
return new this({
|
|
113
120
|
...rest,
|
|
114
121
|
httpClient: HttpClient.createNull({ responses }),
|
|
@@ -126,15 +133,27 @@ async function generate(input) {
|
|
|
126
133
|
|
|
127
134
|
${results.map((x) => x.methodCode).join("\n\n")}
|
|
128
135
|
|
|
129
|
-
async #handle(
|
|
136
|
+
async #handle(input: {
|
|
130
137
|
url: string,
|
|
131
138
|
operationId: string,
|
|
132
139
|
_interceptors: Interceptors,
|
|
133
140
|
method?: string,
|
|
134
141
|
_query?: { [k: string]: any },
|
|
135
142
|
_headers?: { [k: string]: string },
|
|
143
|
+
_body?: unknown,
|
|
136
144
|
reqContentType?: string,
|
|
137
|
-
) {
|
|
145
|
+
}) {
|
|
146
|
+
let {
|
|
147
|
+
url,
|
|
148
|
+
operationId,
|
|
149
|
+
_interceptors,
|
|
150
|
+
method,
|
|
151
|
+
_query,
|
|
152
|
+
_headers,
|
|
153
|
+
_body,
|
|
154
|
+
reqContentType,
|
|
155
|
+
} = input;
|
|
156
|
+
|
|
138
157
|
if (_query) {
|
|
139
158
|
let q: [string, string][] = [];
|
|
140
159
|
for (let k in _query) {
|
|
@@ -172,7 +191,11 @@ async function generate(input) {
|
|
|
172
191
|
}
|
|
173
192
|
}
|
|
174
193
|
|
|
175
|
-
let req = new Request(url, {
|
|
194
|
+
let req = new Request(url, {
|
|
195
|
+
method,
|
|
196
|
+
headers,
|
|
197
|
+
body: _body === void 0 ? _body : JSON.stringify(_body)
|
|
198
|
+
});
|
|
176
199
|
|
|
177
200
|
const interceptors = _interceptors;
|
|
178
201
|
|
|
@@ -202,16 +225,29 @@ async function generate(input) {
|
|
|
202
225
|
}
|
|
203
226
|
|
|
204
227
|
${generateOrThrow
|
|
205
|
-
? `async #handleOrThrow(
|
|
228
|
+
? `async #handleOrThrow(input: {
|
|
206
229
|
url: string,
|
|
207
230
|
operationId: string,
|
|
208
231
|
_interceptors: Interceptors,
|
|
209
232
|
method?: string,
|
|
210
233
|
_query?: { [k: string]: any },
|
|
211
234
|
_headers?: { [k: string]: string },
|
|
235
|
+
_body?: unknown,
|
|
212
236
|
reqContentType?: string,
|
|
213
237
|
mapThrow?: (response: Response) => unknown | Promise<unknown>
|
|
214
|
-
) {
|
|
238
|
+
}) {
|
|
239
|
+
let {
|
|
240
|
+
url,
|
|
241
|
+
operationId,
|
|
242
|
+
_interceptors,
|
|
243
|
+
method,
|
|
244
|
+
_query,
|
|
245
|
+
_headers,
|
|
246
|
+
_body,
|
|
247
|
+
reqContentType,
|
|
248
|
+
mapThrow,
|
|
249
|
+
} = input;
|
|
250
|
+
|
|
215
251
|
if (_query) {
|
|
216
252
|
let q: [string, string][] = [];
|
|
217
253
|
for (let k in _query) {
|
|
@@ -249,7 +285,11 @@ async function generate(input) {
|
|
|
249
285
|
}
|
|
250
286
|
}
|
|
251
287
|
|
|
252
|
-
let req = new Request(url, {
|
|
288
|
+
let req = new Request(url, {
|
|
289
|
+
method,
|
|
290
|
+
headers,
|
|
291
|
+
body: _body === void 0 ? _body : JSON.stringify(_body)
|
|
292
|
+
});
|
|
253
293
|
|
|
254
294
|
const interceptors = _interceptors;
|
|
255
295
|
|
|
@@ -284,12 +324,34 @@ async function generate(input) {
|
|
|
284
324
|
}
|
|
285
325
|
|
|
286
326
|
${results.map((x) => x.restCode).join("\n\n")}
|
|
287
|
-
|
|
327
|
+
|
|
328
|
+
type NullResponses = {
|
|
329
|
+
"*"?: (req: {
|
|
330
|
+
operationId: string;
|
|
331
|
+
url: URL;
|
|
332
|
+
method: string;
|
|
333
|
+
headers: Headers;
|
|
334
|
+
}) => { status?: number; body: unknown };
|
|
335
|
+
${results
|
|
336
|
+
.map((x) => `${x.operationId}?: (req: {
|
|
337
|
+
operationId: "${x.operationId}";
|
|
338
|
+
url: URL;
|
|
339
|
+
method: string;
|
|
340
|
+
headers: Headers;
|
|
341
|
+
}) => ${x.resBodyTypes.length === 0
|
|
342
|
+
? `{ status?: number; body: unknown }`
|
|
343
|
+
: x.resBodyTypes
|
|
344
|
+
.map((x) => `{ status: ${x.status}; body: ${x.name} }`)
|
|
345
|
+
.join(" | ")}`)
|
|
346
|
+
.join(";")}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
${getHttpClientCode()}
|
|
350
|
+
`, { parser: "typescript" }));
|
|
288
351
|
await fs.writeFile(path.join(outdir, `schemas.ts`), prettier.format(results.map((x) => x.reqBodySchemas).join("\n\n"), {
|
|
289
352
|
parser: "typescript",
|
|
290
353
|
}));
|
|
291
354
|
await fs.writeFile(path.join(outdir, "api.json"), JSON.stringify(input.doc, null, 2));
|
|
292
|
-
await fs.writeFile(path.join(outdir, "HttpClient.ts"), getHttpClientCode(env));
|
|
293
355
|
}
|
|
294
356
|
exports.generate = generate;
|
|
295
357
|
async function getCode(input) {
|
|
@@ -325,7 +387,7 @@ async function getCode(input) {
|
|
|
325
387
|
: ""}: ${await getInlineTypeScriptType(queryParams.length === 0 ? { type: "object" } : queryParamsSchema)};`}${requestBody == null ? "" : `data: ${requestBodySchemaName};`}headers?: { [k: string]: string };
|
|
326
388
|
interceptors: Interceptors;
|
|
327
389
|
}): ${resBodyTypes.length === 0
|
|
328
|
-
? `Promise<
|
|
390
|
+
? `Promise<unknown>`
|
|
329
391
|
: `Promise<
|
|
330
392
|
${resBodyTypes
|
|
331
393
|
.map((x) => `{ ok: ${parseInt(x.status) <= 299}; status: ${x.status}; body: ${x.name}, res: Response }`)
|
|
@@ -339,8 +401,8 @@ async function getCode(input) {
|
|
|
339
401
|
`)
|
|
340
402
|
.join("\n")}
|
|
341
403
|
|
|
342
|
-
return this.#handle(
|
|
343
|
-
\`\${this.#baseUrl}${(0, path_to_regexp_1.compile)(path
|
|
404
|
+
return this.#handle({
|
|
405
|
+
url: \`\${this.#baseUrl}${(0, path_to_regexp_1.compile)(path
|
|
344
406
|
.replace(/{/g, ":")
|
|
345
407
|
.replace(/}/g, "")
|
|
346
408
|
.split("/")
|
|
@@ -349,13 +411,13 @@ async function getCode(input) {
|
|
|
349
411
|
acc[v.name.replace(/-/g, "_")] = `\${input.params["${v.name}"]}`;
|
|
350
412
|
return acc;
|
|
351
413
|
}, {}))}\`,
|
|
352
|
-
"${operationId}",
|
|
353
|
-
input.interceptors
|
|
354
|
-
|
|
355
|
-
input.
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
);
|
|
414
|
+
operationId: "${operationId}",
|
|
415
|
+
_interceptors: input.interceptors,${method === "get" ? "" : `method: "${method.toLocaleUpperCase()}",`}
|
|
416
|
+
_query: input.query,
|
|
417
|
+
_headers: input.headers,${requestBody == null
|
|
418
|
+
? ""
|
|
419
|
+
: `_body: input.data,reqContentType: "${requestBodyContentType}",`}
|
|
420
|
+
});
|
|
359
421
|
}
|
|
360
422
|
`;
|
|
361
423
|
if (generateOrThrow) {
|
|
@@ -368,7 +430,7 @@ async function getCode(input) {
|
|
|
368
430
|
interceptors: Interceptors;
|
|
369
431
|
mapThrow?: (response: Response) => unknown | Promise<unknown>;
|
|
370
432
|
}): ${resBodyTypes.length === 0
|
|
371
|
-
? `Promise<
|
|
433
|
+
? `Promise<unknown>`
|
|
372
434
|
: `Promise<
|
|
373
435
|
${resBodyTypes
|
|
374
436
|
.filter((x) => parseInt(x.status) <= 299)
|
|
@@ -383,8 +445,8 @@ async function getCode(input) {
|
|
|
383
445
|
`)
|
|
384
446
|
.join("\n")}
|
|
385
447
|
|
|
386
|
-
return this.#handleOrThrow(
|
|
387
|
-
\`\${this.#baseUrl}${(0, path_to_regexp_1.compile)(path
|
|
448
|
+
return this.#handleOrThrow({
|
|
449
|
+
url: \`\${this.#baseUrl}${(0, path_to_regexp_1.compile)(path
|
|
388
450
|
.replace(/{/g, ":")
|
|
389
451
|
.replace(/}/g, "")
|
|
390
452
|
.split("/")
|
|
@@ -393,14 +455,14 @@ async function getCode(input) {
|
|
|
393
455
|
acc[v.name.replace(/-/g, "_")] = `\${input.params["${v.name}"]}`;
|
|
394
456
|
return acc;
|
|
395
457
|
}, {}))}\`,
|
|
396
|
-
"${operationId}",
|
|
397
|
-
input.interceptors
|
|
398
|
-
|
|
399
|
-
input.
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
input.mapThrow,
|
|
403
|
-
);
|
|
458
|
+
operationId: "${operationId}",
|
|
459
|
+
_interceptors: input.interceptors,${method === "get" ? "" : `method: "${method.toLocaleUpperCase()}",`}
|
|
460
|
+
_query: input.query,
|
|
461
|
+
_headers: input.headers,${requestBody == null
|
|
462
|
+
? ""
|
|
463
|
+
: `_body: input.data,reqContentType: "${requestBodyContentType}",`}
|
|
464
|
+
mapThrow: input.mapThrow,
|
|
465
|
+
});
|
|
404
466
|
}
|
|
405
467
|
`;
|
|
406
468
|
}
|
|
@@ -413,7 +475,7 @@ async function getCode(input) {
|
|
|
413
475
|
const reqBodySchemas = `${requestBodySchema == null
|
|
414
476
|
? ""
|
|
415
477
|
: `export const schemaReqData${(0, pascal_case_1.pascalCase)(operationId)} = ${JSON.stringify(requestBodySchema)}`}`;
|
|
416
|
-
return { methodCode, restCode, reqBodySchemas };
|
|
478
|
+
return { methodCode, restCode, reqBodySchemas, resBodyTypes };
|
|
417
479
|
}
|
|
418
480
|
function getParamsSchema(params) {
|
|
419
481
|
const properties = params.reduce((acc, v) => {
|
|
@@ -485,22 +547,10 @@ function prepareSchema(schema) {
|
|
|
485
547
|
}
|
|
486
548
|
return schema;
|
|
487
549
|
}
|
|
488
|
-
function getHttpClientCode(
|
|
489
|
-
return prettier.format(
|
|
490
|
-
? ""
|
|
491
|
-
: `// TODO: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/60924
|
|
492
|
-
import {
|
|
493
|
-
fetch,
|
|
494
|
-
Response,
|
|
495
|
-
Request,
|
|
496
|
-
HeadersInit,
|
|
497
|
-
BodyInit,
|
|
498
|
-
Headers,
|
|
499
|
-
} from "undici";`}
|
|
500
|
-
|
|
501
|
-
type Fetch = typeof fetch;
|
|
550
|
+
function getHttpClientCode() {
|
|
551
|
+
return prettier.format(`type Fetch = typeof fetch;
|
|
502
552
|
|
|
503
|
-
|
|
553
|
+
class HttpClient {
|
|
504
554
|
#fetch: Fetch;
|
|
505
555
|
|
|
506
556
|
static create() {
|
|
@@ -520,7 +570,7 @@ function getHttpClientCode(env) {
|
|
|
520
570
|
}
|
|
521
571
|
}
|
|
522
572
|
|
|
523
|
-
|
|
573
|
+
type CreateNullFetchInput = {
|
|
524
574
|
responses?: (req: { url: URL; method: string; headers: Headers }) => {
|
|
525
575
|
body?: BodyInit;
|
|
526
576
|
status?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-remix.js","sourceRoot":"","sources":["../src/generate-remix.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAC7B,8CAAgC;AAEhC,qDAAkD;AAClD,yEAAoD;AACpD,mDAAwD;AACxD,mHAA0E;AAC1E,gFAA4C;AAC5C,6CAAyC;AACzC,mDAAqC;AACrC,8CAAsB;AAEf,KAAK,UAAU,QAAQ,CAAC,KAM9B;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAEpD,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACpC;IAED,IAAI,OAAO,GAKL,EAAE,CAAC;IAET,OAAO;IACP,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;IAEF,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACpC,OAAO;QACP,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtE,CAAC;QACF,KAAK,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;YACjD,MAAM,WAAW,GAAG,IAAA,+BAAc,EAAC,EAAE,CAAC,CAAC;YACvC,MAAM,UAAU,GAAI,EAAU,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;YACrD,MAAM,SAAS,GAAI,EAAU,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;YACnD,MAAM,WAAW,GAAI,EAAU,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;YAEvD,OAAO,CAAC,IAAI,CAAC;gBACX,WAAW;gBACX,GAAG,CAAC,MAAM,OAAO,CAAC;oBAChB,WAAW;oBACX,IAAI,EAAE,CAAC;oBACP,MAAM;oBACN,UAAU;oBACV,WAAW;oBACX,SAAS;oBACT,eAAe;iBAChB,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;KACF;IAED,MAAM,IAAA,aAAG,EAAC,MAAM,CAAC,CAAC;IAClB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC3B,QAAQ,CAAC,MAAM,CACb,GACE,GAAG,KAAK,SAAS;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;2DAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmDE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8E7C,eAAe;QACb,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6EJ;QACE,CAAC,CAAC,EACN;;;MAGA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5C,EACC,EAAE,MAAM,EAAE,YAAY,EAAE,CACzB,CACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAC/B,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACjE,MAAM,EAAE,YAAY;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAClC,iBAAiB,CAAC,GAAG,CAAC,CACvB,CAAC;AACJ,CAAC;AAxSD,4BAwSC;AAED,KAAK,UAAU,OAAO,CAAC,KAQtB;IACC,MAAM,EACJ,WAAW,EACX,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,eAAe,GAChB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACvE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE,GACtE,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;IAErD,MAAM,qBAAqB,GAAG,UAAU,IAAA,wBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;IAClE,IAAI,iBAAiB,EAAE,KAAK,EAAE;QAC5B,iBAAiB,CAAC,KAAK,GAAG,qBAAqB,CAAC;KACjD;IAED,IAAI,YAAY,GAAqD,EAAE,CAAC;IACxE,IAAI,SAAS,IAAI,IAAI,EAAE;QACrB,KAAK,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACxD,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;aACrD;iBAAM;gBACL,MAAM,MAAM,GAAI,QAAgB,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBACxE,MAAM,IAAI,GAAG,UAAU,MAAM,GAAG,IAAA,wBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAChD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3C;SACF;KACF;IAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,UAAU,GAAG,SAAS,WAAW;MAEjC,UAAU,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,SACE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACjD,KAAK,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,GAAG;QACzD,CAAC,CAAC,EACN,GAAG,QACH,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACjE,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,EACN,KAAK,MAAM,uBAAuB,CAChC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAClE,GAAG,GACF,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,qBAAqB,GAC3D;;QAGE,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC;IACJ,YAAY;aACX,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,SAAS,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,MAAM,WACrD,CAAC,CAAC,IACJ,mBAAmB,CACtB;aACA,IAAI,CAAC,KAAK,CAAC,GACd;MACI,UAAU;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACzB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC;wBACS,CAAC,CAAC,IAAI;6CACe,CAAC,CAAC,IAAI;;KAE9C,CACE;SACA,IAAI,CAAC,IAAI,CAAC;;;6BAGY,IAAA,wBAAW,EAC9B,IAAI;SACD,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,IAAI,CAAC,GAAG,CAAC,CACb,CACC,UAAU,CAAC,MAAM,CAAC,CAAC,GAA4B,EAAE,CAAC,EAAE,EAAE;QACpD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,KAAK,CAAC;QACjE,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CACP;WACE,WAAW;;UAEZ,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG;;;UAGlE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,sBAAsB,GAAG;;;CAG1E,CAAC;IAEA,IAAI,eAAe,EAAE;QACnB,UAAU,IAAI,WAAW,WAAW;MAElC,UAAU,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,SACE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACjD,KAAK,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,GAAG;YACzD,CAAC,CAAC,EACN,GAAG,QACD,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YACjE,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,EACN,KAAK,MAAM,uBAAuB,CAChC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAClE,GAAG,GACF,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,qBAAqB,GAC3D;;;QAIA,YAAY,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC;IACJ,YAAY;iBACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;iBACxC,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,IAAI,mBAAmB,CAC3E;iBACA,IAAI,CAAC,KAAK,CAAC,GACd;MACI,UAAU;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACzB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC;wBACS,CAAC,CAAC,IAAI;6CACe,CAAC,CAAC,IAAI;;KAE9C,CACE;aACA,IAAI,CAAC,IAAI,CAAC;;;6BAGY,IAAA,wBAAW,EAC9B,IAAI;aACD,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1D,IAAI,CAAC,GAAG,CAAC,CACb,CACC,UAAU,CAAC,MAAM,CAAC,CAAC,GAA4B,EAAE,CAAC,EAAE,EAAE;YACpD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,KAAK,CAAC;YACjE,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CACP;WACE,WAAW;;UAEZ,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG;;;UAGlE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,sBAAsB,GAAG;;;;CAI1E,CAAC;KACC;IAED,MAAM,QAAQ,GAAG,GACf,iBAAiB,IAAI,IAAI;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,MAAM,cAAc,CAAC,iBAAiB,EAAE,qBAAqB,CACnE;;IAEE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;GACzD,CAAC;IAEF,MAAM,cAAc,GAAG,GACrB,iBAAiB,IAAI,IAAI;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,6BAA6B,IAAA,wBAAU,EACrC,WAAW,CACZ,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAC9C,EAAE,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CACtB,MAAiE;IAEjE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAyB,EAAE,CAAC,EAAE,EAAE;QAChE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAgB,EAAE,WAAmB;IAC/D,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;IACrC,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,WAAW,CAAC,CAAC;KACpD;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,WAAW,CAAC,CAAC;KAC1E;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAY,EAAE,IAAY;IACtD,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,eAAe,IAAI,aAAa,CAAC;KACzC;IACD,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5B,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAA,mCAAO,EAAC,MAAM,EAAE,IAAI,EAAE;QAC3B,aAAa,EAAE,EAAE;QACjB,2BAA2B,EAAE,KAAK;KACnC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAAY;IACjD,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5B,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,qDAAqD;IACrD,IAAI,IAAI,GAAG,MAAM,IAAA,mCAAO,EAAC,MAAM,EAAE,OAAO,EAAE;QACxC,aAAa,EAAE,EAAE;QACjB,2BAA2B,EAAE,KAAK;KACnC,CAAC,CAAC;IACH,OAAO,CACL,IAAI;SACD,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;SACtC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;QACpC,uBAAuB;SACtB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACtB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAW;IAChC,MAAM,GAAG,IAAA,uCAAY,EAAC,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,oEAAoE;IACpE,wBAAwB;IACxB,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAA,8BAAQ,EAAC,MAAM,EAAE;YACf,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBACb,IAAI,MAAM,CAAC,KAAK,EAAE;oBAChB,OAAO,MAAM,CAAC,KAAK,CAAC;iBACrB;gBACD,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,OAAO,MAAM,CAAC,MAAM,CAAC;iBACtB;gBACD,4DAA4D;gBAC5D,IAAI,MAAM,CAAC,OAAO,EAAE;oBAClB,OAAO,MAAM,CAAC,OAAO,CAAC;iBACvB;YACH,CAAC;SACF,CAAC,CAAC;KACJ;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAuB;IAChD,OAAO,QAAQ,CAAC,MAAM,CACpB,GACE,GAAG,KAAK,SAAS;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;;;;;;;mBASN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoED,EACC,EAAE,MAAM,EAAE,YAAY,EAAE,CACzB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"generate-remix.js","sourceRoot":"","sources":["../src/generate-remix.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/generate-remix.ts
CHANGED
|
@@ -29,6 +29,7 @@ export async function generate(input: {
|
|
|
29
29
|
methodCode: string;
|
|
30
30
|
restCode: string;
|
|
31
31
|
reqBodySchemas: string;
|
|
32
|
+
resBodyTypes: { name: string; status: string; type: string }[];
|
|
32
33
|
}[] = [];
|
|
33
34
|
|
|
34
35
|
// Sort
|
|
@@ -72,8 +73,14 @@ export async function generate(input: {
|
|
|
72
73
|
env === "browser"
|
|
73
74
|
? ""
|
|
74
75
|
: `// TODO: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/60924
|
|
75
|
-
import {
|
|
76
|
-
|
|
76
|
+
import {
|
|
77
|
+
fetch,
|
|
78
|
+
Response,
|
|
79
|
+
Request,
|
|
80
|
+
HeadersInit,
|
|
81
|
+
BodyInit,
|
|
82
|
+
Headers, } from "undici";`
|
|
83
|
+
}
|
|
77
84
|
|
|
78
85
|
export type Interceptors = { req?: (req: Request) => Promise<Request>, res?: (req: Request, res: Response) => Promise<Response> };
|
|
79
86
|
|
|
@@ -89,26 +96,27 @@ export async function generate(input: {
|
|
|
89
96
|
}
|
|
90
97
|
|
|
91
98
|
static createNull(
|
|
92
|
-
opts: SdkOpts & {
|
|
93
|
-
responses?: (req: {
|
|
94
|
-
operationId: string;
|
|
95
|
-
url: URL;
|
|
96
|
-
method: string;
|
|
97
|
-
headers: Headers;
|
|
98
|
-
}) => ReturnType<NonNullable<CreateNullFetchInput["responses"]>>;
|
|
99
|
-
}
|
|
99
|
+
opts: SdkOpts & { responses?: NullResponses; }
|
|
100
100
|
) {
|
|
101
101
|
const { responses: _responses, ...rest } = opts;
|
|
102
102
|
const responses: CreateNullFetchInput["responses"] =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
return _responses({ ...req, operationId });
|
|
103
|
+
_responses === void 0
|
|
104
|
+
? () => ({ body: JSON.stringify({}) })
|
|
105
|
+
: (req) => {
|
|
106
|
+
const operationId = req.headers.get("x-operation-id");
|
|
107
|
+
if (!operationId) {
|
|
108
|
+
throw new Error(\`No operationId for \${req}.\`);
|
|
110
109
|
}
|
|
111
|
-
|
|
110
|
+
const fn = (_responses as any)[operationId] ?? _responses["*"];
|
|
111
|
+
if (!fn) {
|
|
112
|
+
return { body: JSON.stringify({}) };
|
|
113
|
+
}
|
|
114
|
+
const result = fn({ ...req, operationId });
|
|
115
|
+
return {
|
|
116
|
+
status: result?.status,
|
|
117
|
+
body: JSON.stringify(result?.body),
|
|
118
|
+
};
|
|
119
|
+
};
|
|
112
120
|
return new this({
|
|
113
121
|
...rest,
|
|
114
122
|
httpClient: HttpClient.createNull({ responses }),
|
|
@@ -126,15 +134,27 @@ export async function generate(input: {
|
|
|
126
134
|
|
|
127
135
|
${results.map((x) => x.methodCode).join("\n\n")}
|
|
128
136
|
|
|
129
|
-
async #handle(
|
|
137
|
+
async #handle(input: {
|
|
130
138
|
url: string,
|
|
131
139
|
operationId: string,
|
|
132
140
|
_interceptors: Interceptors,
|
|
133
141
|
method?: string,
|
|
134
142
|
_query?: { [k: string]: any },
|
|
135
143
|
_headers?: { [k: string]: string },
|
|
144
|
+
_body?: unknown,
|
|
136
145
|
reqContentType?: string,
|
|
137
|
-
) {
|
|
146
|
+
}) {
|
|
147
|
+
let {
|
|
148
|
+
url,
|
|
149
|
+
operationId,
|
|
150
|
+
_interceptors,
|
|
151
|
+
method,
|
|
152
|
+
_query,
|
|
153
|
+
_headers,
|
|
154
|
+
_body,
|
|
155
|
+
reqContentType,
|
|
156
|
+
} = input;
|
|
157
|
+
|
|
138
158
|
if (_query) {
|
|
139
159
|
let q: [string, string][] = [];
|
|
140
160
|
for (let k in _query) {
|
|
@@ -172,7 +192,11 @@ export async function generate(input: {
|
|
|
172
192
|
}
|
|
173
193
|
}
|
|
174
194
|
|
|
175
|
-
let req = new Request(url, {
|
|
195
|
+
let req = new Request(url, {
|
|
196
|
+
method,
|
|
197
|
+
headers,
|
|
198
|
+
body: _body === void 0 ? _body : JSON.stringify(_body)
|
|
199
|
+
});
|
|
176
200
|
|
|
177
201
|
const interceptors = _interceptors;
|
|
178
202
|
|
|
@@ -203,16 +227,29 @@ export async function generate(input: {
|
|
|
203
227
|
|
|
204
228
|
${
|
|
205
229
|
generateOrThrow
|
|
206
|
-
? `async #handleOrThrow(
|
|
230
|
+
? `async #handleOrThrow(input: {
|
|
207
231
|
url: string,
|
|
208
232
|
operationId: string,
|
|
209
233
|
_interceptors: Interceptors,
|
|
210
234
|
method?: string,
|
|
211
235
|
_query?: { [k: string]: any },
|
|
212
236
|
_headers?: { [k: string]: string },
|
|
237
|
+
_body?: unknown,
|
|
213
238
|
reqContentType?: string,
|
|
214
239
|
mapThrow?: (response: Response) => unknown | Promise<unknown>
|
|
215
|
-
) {
|
|
240
|
+
}) {
|
|
241
|
+
let {
|
|
242
|
+
url,
|
|
243
|
+
operationId,
|
|
244
|
+
_interceptors,
|
|
245
|
+
method,
|
|
246
|
+
_query,
|
|
247
|
+
_headers,
|
|
248
|
+
_body,
|
|
249
|
+
reqContentType,
|
|
250
|
+
mapThrow,
|
|
251
|
+
} = input;
|
|
252
|
+
|
|
216
253
|
if (_query) {
|
|
217
254
|
let q: [string, string][] = [];
|
|
218
255
|
for (let k in _query) {
|
|
@@ -250,7 +287,11 @@ export async function generate(input: {
|
|
|
250
287
|
}
|
|
251
288
|
}
|
|
252
289
|
|
|
253
|
-
let req = new Request(url, {
|
|
290
|
+
let req = new Request(url, {
|
|
291
|
+
method,
|
|
292
|
+
headers,
|
|
293
|
+
body: _body === void 0 ? _body : JSON.stringify(_body)
|
|
294
|
+
});
|
|
254
295
|
|
|
255
296
|
const interceptors = _interceptors;
|
|
256
297
|
|
|
@@ -286,7 +327,34 @@ export async function generate(input: {
|
|
|
286
327
|
}
|
|
287
328
|
|
|
288
329
|
${results.map((x) => x.restCode).join("\n\n")}
|
|
289
|
-
|
|
330
|
+
|
|
331
|
+
type NullResponses = {
|
|
332
|
+
"*"?: (req: {
|
|
333
|
+
operationId: string;
|
|
334
|
+
url: URL;
|
|
335
|
+
method: string;
|
|
336
|
+
headers: Headers;
|
|
337
|
+
}) => { status?: number; body: unknown };
|
|
338
|
+
${results
|
|
339
|
+
.map(
|
|
340
|
+
(x) => `${x.operationId}?: (req: {
|
|
341
|
+
operationId: "${x.operationId}";
|
|
342
|
+
url: URL;
|
|
343
|
+
method: string;
|
|
344
|
+
headers: Headers;
|
|
345
|
+
}) => ${
|
|
346
|
+
x.resBodyTypes.length === 0
|
|
347
|
+
? `{ status?: number; body: unknown }`
|
|
348
|
+
: x.resBodyTypes
|
|
349
|
+
.map((x) => `{ status: ${x.status}; body: ${x.name} }`)
|
|
350
|
+
.join(" | ")
|
|
351
|
+
}`
|
|
352
|
+
)
|
|
353
|
+
.join(";")}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
${getHttpClientCode()}
|
|
357
|
+
`,
|
|
290
358
|
{ parser: "typescript" }
|
|
291
359
|
)
|
|
292
360
|
);
|
|
@@ -302,11 +370,6 @@ export async function generate(input: {
|
|
|
302
370
|
path.join(outdir, "api.json"),
|
|
303
371
|
JSON.stringify(input.doc, null, 2)
|
|
304
372
|
);
|
|
305
|
-
|
|
306
|
-
await fs.writeFile(
|
|
307
|
-
path.join(outdir, "HttpClient.ts"),
|
|
308
|
-
getHttpClientCode(env)
|
|
309
|
-
);
|
|
310
373
|
}
|
|
311
374
|
|
|
312
375
|
async function getCode(input: {
|
|
@@ -373,7 +436,7 @@ async function getCode(input: {
|
|
|
373
436
|
interceptors: Interceptors;
|
|
374
437
|
}): ${
|
|
375
438
|
resBodyTypes.length === 0
|
|
376
|
-
? `Promise<
|
|
439
|
+
? `Promise<unknown>`
|
|
377
440
|
: `Promise<
|
|
378
441
|
${resBodyTypes
|
|
379
442
|
.map(
|
|
@@ -395,8 +458,8 @@ async function getCode(input: {
|
|
|
395
458
|
)
|
|
396
459
|
.join("\n")}
|
|
397
460
|
|
|
398
|
-
return this.#handle(
|
|
399
|
-
\`\${this.#baseUrl}${compilePath(
|
|
461
|
+
return this.#handle({
|
|
462
|
+
url: \`\${this.#baseUrl}${compilePath(
|
|
400
463
|
path
|
|
401
464
|
.replace(/{/g, ":")
|
|
402
465
|
.replace(/}/g, "")
|
|
@@ -409,13 +472,17 @@ async function getCode(input: {
|
|
|
409
472
|
return acc;
|
|
410
473
|
}, {})
|
|
411
474
|
)}\`,
|
|
412
|
-
"${operationId}",
|
|
413
|
-
input.interceptors
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
input.
|
|
417
|
-
|
|
418
|
-
|
|
475
|
+
operationId: "${operationId}",
|
|
476
|
+
_interceptors: input.interceptors,${
|
|
477
|
+
method === "get" ? "" : `method: "${method.toLocaleUpperCase()}",`
|
|
478
|
+
}
|
|
479
|
+
_query: input.query,
|
|
480
|
+
_headers: input.headers,${
|
|
481
|
+
requestBody == null
|
|
482
|
+
? ""
|
|
483
|
+
: `_body: input.data,reqContentType: "${requestBodyContentType}",`
|
|
484
|
+
}
|
|
485
|
+
});
|
|
419
486
|
}
|
|
420
487
|
`;
|
|
421
488
|
|
|
@@ -440,7 +507,7 @@ async function getCode(input: {
|
|
|
440
507
|
mapThrow?: (response: Response) => unknown | Promise<unknown>;
|
|
441
508
|
}): ${
|
|
442
509
|
resBodyTypes.length === 0
|
|
443
|
-
? `Promise<
|
|
510
|
+
? `Promise<unknown>`
|
|
444
511
|
: `Promise<
|
|
445
512
|
${resBodyTypes
|
|
446
513
|
.filter((x) => parseInt(x.status) <= 299)
|
|
@@ -460,8 +527,8 @@ async function getCode(input: {
|
|
|
460
527
|
)
|
|
461
528
|
.join("\n")}
|
|
462
529
|
|
|
463
|
-
return this.#handleOrThrow(
|
|
464
|
-
\`\${this.#baseUrl}${compilePath(
|
|
530
|
+
return this.#handleOrThrow({
|
|
531
|
+
url: \`\${this.#baseUrl}${compilePath(
|
|
465
532
|
path
|
|
466
533
|
.replace(/{/g, ":")
|
|
467
534
|
.replace(/}/g, "")
|
|
@@ -474,14 +541,18 @@ async function getCode(input: {
|
|
|
474
541
|
return acc;
|
|
475
542
|
}, {})
|
|
476
543
|
)}\`,
|
|
477
|
-
"${operationId}",
|
|
478
|
-
input.interceptors
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
input.
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
544
|
+
operationId: "${operationId}",
|
|
545
|
+
_interceptors: input.interceptors,${
|
|
546
|
+
method === "get" ? "" : `method: "${method.toLocaleUpperCase()}",`
|
|
547
|
+
}
|
|
548
|
+
_query: input.query,
|
|
549
|
+
_headers: input.headers,${
|
|
550
|
+
requestBody == null
|
|
551
|
+
? ""
|
|
552
|
+
: `_body: input.data,reqContentType: "${requestBodyContentType}",`
|
|
553
|
+
}
|
|
554
|
+
mapThrow: input.mapThrow,
|
|
555
|
+
});
|
|
485
556
|
}
|
|
486
557
|
`;
|
|
487
558
|
}
|
|
@@ -503,7 +574,7 @@ async function getCode(input: {
|
|
|
503
574
|
)} = ${JSON.stringify(requestBodySchema)}`
|
|
504
575
|
}`;
|
|
505
576
|
|
|
506
|
-
return { methodCode, restCode, reqBodySchemas };
|
|
577
|
+
return { methodCode, restCode, reqBodySchemas, resBodyTypes };
|
|
507
578
|
}
|
|
508
579
|
|
|
509
580
|
function getParamsSchema(
|
|
@@ -585,25 +656,11 @@ function prepareSchema(schema: any) {
|
|
|
585
656
|
return schema;
|
|
586
657
|
}
|
|
587
658
|
|
|
588
|
-
function getHttpClientCode(
|
|
659
|
+
function getHttpClientCode() {
|
|
589
660
|
return prettier.format(
|
|
590
|
-
|
|
591
|
-
env === "browser"
|
|
592
|
-
? ""
|
|
593
|
-
: `// TODO: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/60924
|
|
594
|
-
import {
|
|
595
|
-
fetch,
|
|
596
|
-
Response,
|
|
597
|
-
Request,
|
|
598
|
-
HeadersInit,
|
|
599
|
-
BodyInit,
|
|
600
|
-
Headers,
|
|
601
|
-
} from "undici";`
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
type Fetch = typeof fetch;
|
|
661
|
+
`type Fetch = typeof fetch;
|
|
605
662
|
|
|
606
|
-
|
|
663
|
+
class HttpClient {
|
|
607
664
|
#fetch: Fetch;
|
|
608
665
|
|
|
609
666
|
static create() {
|
|
@@ -623,7 +680,7 @@ function getHttpClientCode(env: "browser" | "node") {
|
|
|
623
680
|
}
|
|
624
681
|
}
|
|
625
682
|
|
|
626
|
-
|
|
683
|
+
type CreateNullFetchInput = {
|
|
627
684
|
responses?: (req: { url: URL; method: string; headers: Headers }) => {
|
|
628
685
|
body?: BodyInit;
|
|
629
686
|
status?: number | undefined;
|
package/dist/HttpClient.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
// TODO: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/60924
|
|
2
|
-
import {
|
|
3
|
-
fetch,
|
|
4
|
-
Response,
|
|
5
|
-
Request,
|
|
6
|
-
HeadersInit,
|
|
7
|
-
BodyInit,
|
|
8
|
-
Headers,
|
|
9
|
-
} from "undici";
|
|
10
|
-
|
|
11
|
-
type Fetch = typeof fetch;
|
|
12
|
-
|
|
13
|
-
export class HttpClient {
|
|
14
|
-
#fetch: Fetch;
|
|
15
|
-
|
|
16
|
-
static create() {
|
|
17
|
-
return new this(fetch);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
static createNull(input?: CreateNullFetchInput) {
|
|
21
|
-
return new this(createNullFetch(input));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
constructor(fetch: Fetch) {
|
|
25
|
-
this.#fetch = fetch;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
fetch(...params: Parameters<Fetch>): ReturnType<Fetch> {
|
|
29
|
-
return this.#fetch(...params);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export type CreateNullFetchInput = {
|
|
34
|
-
responses?: (req: { url: URL; method: string; headers: Headers }) => {
|
|
35
|
-
body?: BodyInit;
|
|
36
|
-
status?: number | undefined;
|
|
37
|
-
headers?: HeadersInit;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
function createNullFetch(input?: CreateNullFetchInput) {
|
|
42
|
-
return function fetch(...params: Parameters<Fetch>): ReturnType<Fetch> {
|
|
43
|
-
const [requestInfo, init] = params;
|
|
44
|
-
const url =
|
|
45
|
-
requestInfo instanceof URL
|
|
46
|
-
? requestInfo
|
|
47
|
-
: requestInfo instanceof Request
|
|
48
|
-
? getURL(requestInfo.url)
|
|
49
|
-
: getURL(requestInfo);
|
|
50
|
-
const method =
|
|
51
|
-
init?.method?.toUpperCase() ??
|
|
52
|
-
(requestInfo instanceof Request ? requestInfo.method : "GET");
|
|
53
|
-
const reqHeaders = new Headers(
|
|
54
|
-
requestInfo instanceof Request ? requestInfo.headers : init?.headers
|
|
55
|
-
);
|
|
56
|
-
const result = input?.responses?.({
|
|
57
|
-
url,
|
|
58
|
-
method,
|
|
59
|
-
headers: reqHeaders,
|
|
60
|
-
});
|
|
61
|
-
const resBody = result?.body;
|
|
62
|
-
const resStatus = result?.status;
|
|
63
|
-
const resHeaders = result?.headers;
|
|
64
|
-
return Promise.resolve(
|
|
65
|
-
new Response(resBody, { status: resStatus, headers: resHeaders })
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function getURL(url: string) {
|
|
71
|
-
try {
|
|
72
|
-
return new URL(url);
|
|
73
|
-
} catch (e) {
|
|
74
|
-
return new URL(url, "https://stub.com");
|
|
75
|
-
}
|
|
76
|
-
}
|