@redocly/cli 2.62.2 → 2.63.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.
- package/lib/chunks/{HYE4U6V5.js → 24AVTWC7.js} +1 -1
- package/lib/chunks/{TKLMYBPI.js → 2G2Q42ND.js} +1 -1
- package/lib/chunks/{KRCCY64H.js → 3LGZAJES.js} +1 -1
- package/lib/chunks/3SFDVGEQ.js +7 -0
- package/lib/chunks/{4AM55DEH.js → 4C44BO5N.js} +1 -1
- package/lib/chunks/{DS4SCWID.js → 4JKMQCWY.js} +1 -1
- package/lib/chunks/{3JYQOGV3.js → 5IIJHGNO.js} +1 -1
- package/lib/chunks/{6MH5ZWLD.js → 5VDBZVBF.js} +1 -1
- package/lib/chunks/6AB3BDX4.js +20 -0
- package/lib/chunks/{LRLGVYCG.js → 6LEQ46KS.js} +1 -1
- package/lib/chunks/{2OQM5ARW.js → 6QRNEF7K.js} +1 -1
- package/lib/chunks/{PTNNX4IU.js → 6WESXERF.js} +1 -1
- package/lib/chunks/{5X35UU2C.js → 7AWM5GPD.js} +1 -1
- package/lib/chunks/{CQKQB4PJ.js → 7LNKXEIU.js} +1 -1
- package/lib/chunks/{FDGP3ZYZ.js → 7RQW6KPZ.js} +156 -58
- package/lib/chunks/{SLQPKXO2.js → A22GELRX.js} +1 -1
- package/lib/chunks/{HUWKDZPP.js → AAPHKNGA.js} +1 -1
- package/lib/chunks/{22EANOP2.js → ACMV5RZA.js} +1 -1
- package/lib/chunks/AU7VOB4V.js +20 -0
- package/lib/chunks/{2OBVZIAW.js → B4ONRSDG.js} +3 -3
- package/lib/chunks/BC3XCWQE.js +11 -0
- package/lib/chunks/{VXONEXYX.js → BFIZTFWS.js} +1 -1
- package/lib/chunks/{HWTYAU4Y.js → BS3AUVYD.js} +1 -1
- package/lib/chunks/{ZCVUIIPU.js → C2OCU4E3.js} +1 -1
- package/lib/chunks/{US7X4XPD.js → CQMZF72H.js} +1 -1
- package/lib/chunks/{3C6UUCEW.js → CTPVBOG5.js} +1 -1
- package/lib/chunks/{3JYY42DL.js → CVUPOCX4.js} +1 -1
- package/lib/chunks/{FDMXHRDK.js → DEXQ6S3P.js} +1 -1
- package/lib/chunks/{RPHIT72T.js → DQFNUDOT.js} +1 -1
- package/lib/chunks/{7WM6VLB3.js → E2D25T4G.js} +1 -1
- package/lib/chunks/{4OEXH5EV.js → FCZH3476.js} +1 -1
- package/lib/chunks/{7WTV5KH3.js → FRM6TZ42.js} +1 -1
- package/lib/chunks/{3WHXM4DJ.js → HTG3RKCV.js} +1 -1
- package/lib/chunks/{M3XPS7UF.js → HW7ZCN7J.js} +1 -1
- package/lib/chunks/{I5CGSLGR.js → I3M476SQ.js} +1 -1
- package/lib/chunks/{KOR5TUJG.js → IODGA6FG.js} +1 -1
- package/lib/chunks/{WX24BERR.js → ITUUIAOZ.js} +1 -1
- package/lib/chunks/{CIDSJFJO.js → IYKYAJDC.js} +1 -1
- package/lib/chunks/{XFBJHVYU.js → J373CXCH.js} +1 -1
- package/lib/chunks/{JLVGRO3I.js → J7J4PH3V.js} +7 -7
- package/lib/chunks/{IUSSBOYO.js → JGBWIR5U.js} +1 -1
- package/lib/chunks/{S6NFOZ34.js → JHK6XIMG.js} +1 -1
- package/lib/chunks/{YDVWNFMS.js → KMP5ZE2D.js} +1 -1
- package/lib/chunks/{6EGJEFXO.js → L2EBKZQZ.js} +1 -1
- package/lib/chunks/{SHZZKTDE.js → LLWU7A5G.js} +1 -1
- package/lib/chunks/{LVGVWPDB.js → LXSCIQFU.js} +1 -1
- package/lib/chunks/{5PG3ST2N.js → NCBLLIQ3.js} +2 -2
- package/lib/chunks/{73RBZL53.js → NERCHMVY.js} +1 -1
- package/lib/chunks/{XJE2OFDN.js → NR3R4HFM.js} +45 -18
- package/lib/chunks/{ENSYM7KY.js → OFJ2KV5N.js} +1 -1
- package/lib/chunks/{6WZUCZGV.js → OYUXHAGQ.js} +1 -1
- package/lib/chunks/{37WWN4MA.js → PHWKGYUT.js} +1 -1
- package/lib/chunks/{6NB3FKVN.js → Q4UGLPO2.js} +1 -1
- package/lib/chunks/{36IHQANV.js → QNCKZURN.js} +1 -1
- package/lib/chunks/{GWXT3QO6.js → RFGNVCAR.js} +2 -2
- package/lib/chunks/{HBENVUR4.js → SXIFTBZB.js} +1 -1
- package/lib/chunks/{XJTGJYVS.js → TCALQAX5.js} +1 -1
- package/lib/chunks/{TBZEEKTV.js → U52CY34I.js} +1 -1
- package/lib/chunks/VB4PNWOR.js +7 -0
- package/lib/chunks/{SYWAPWW7.js → VSBSD3XZ.js} +1 -1
- package/lib/chunks/{V3ILUN2S.js → WV2NAII3.js} +1 -1
- package/lib/chunks/{3FXYWWTJ.js → X2V5QOZP.js} +1 -1
- package/lib/chunks/{SXBAAS4M.js → XNNK5G6V.js} +1 -1
- package/lib/chunks/Y4UTXOI2.js +59 -0
- package/lib/chunks/{6DO6IN4A.js → YKST56C6.js} +1 -1
- package/lib/chunks/{2XK7ML3U.js → YXH72HCU.js} +1 -1
- package/lib/chunks/{MNH2K4WM.js → Z52TEGV5.js} +1 -1
- package/lib/chunks/{3DEJQSYG.js → Z5QYTPVY.js} +1 -1
- package/lib/chunks/{OP7NIAI7.js → Z7J6WWCO.js} +1 -1
- package/lib/chunks/{2OVI7BIW.js → ZK27F53P.js} +1 -1
- package/lib/chunks/{V2YF33JL.js → ZP54RCIQ.js} +1 -1
- package/lib/eject-assets/generators/cli/docs.ts +1 -1
- package/lib/eject-assets/generators/cli/engine-source.ts +1 -1
- package/lib/eject-assets/generators/cli/index.ts +2 -2
- package/lib/eject-assets/generators/cli/render.ts +1 -1
- package/lib/eject-assets/generators/go/client.ts +1 -1
- package/lib/eject-assets/generators/go/descriptor.ts +2 -1
- package/lib/eject-assets/generators/go/index.ts +2 -2
- package/lib/eject-assets/generators/go/models.ts +1 -1
- package/lib/eject-assets/generators/go/naming.ts +1 -1
- package/lib/eject-assets/generators/go/operations.ts +1 -1
- package/lib/eject-assets/generators/go/pagination.ts +1 -1
- package/lib/eject-assets/generators/go/types.ts +1 -1
- package/lib/eject-assets/generators/mock/faker.ts +1 -1
- package/lib/eject-assets/generators/mock/index.ts +2 -2
- package/lib/eject-assets/generators/mock/render.ts +1 -1
- package/lib/eject-assets/generators/mock/sample.ts +1 -1
- package/lib/eject-assets/generators/mock/values.ts +1 -1
- package/lib/eject-assets/generators/php/client.ts +1 -1
- package/lib/eject-assets/generators/php/descriptor.ts +2 -1
- package/lib/eject-assets/generators/php/index.ts +2 -2
- package/lib/eject-assets/generators/php/models.ts +1 -1
- package/lib/eject-assets/generators/php/naming.ts +1 -1
- package/lib/eject-assets/generators/php/operations.ts +1 -1
- package/lib/eject-assets/generators/php/pagination.ts +1 -1
- package/lib/eject-assets/generators/php/types.ts +1 -1
- package/lib/eject-assets/generators/python/client.ts +1 -1
- package/lib/eject-assets/generators/python/descriptor.ts +2 -1
- package/lib/eject-assets/generators/python/index.ts +2 -2
- package/lib/eject-assets/generators/python/models.ts +1 -1
- package/lib/eject-assets/generators/python/naming.ts +1 -1
- package/lib/eject-assets/generators/python/operations.ts +1 -1
- package/lib/eject-assets/generators/python/pagination.ts +1 -1
- package/lib/eject-assets/generators/python/types.ts +1 -1
- package/lib/eject-assets/generators/swr/index.ts +2 -2
- package/lib/eject-assets/generators/swr/render.ts +1 -1
- package/lib/eject-assets/generators/tanstack-query/index.ts +2 -2
- package/lib/eject-assets/generators/tanstack-query/render.ts +56 -9
- package/lib/eject-assets/generators/transformers/index.ts +2 -2
- package/lib/eject-assets/generators/transformers/render.ts +1 -1
- package/lib/eject-assets/generators/typescript/banner.ts +1 -1
- package/lib/eject-assets/generators/typescript/client.ts +1 -1
- package/lib/eject-assets/generators/typescript/descriptor.ts +1 -1
- package/lib/eject-assets/generators/typescript/index.ts +2 -2
- package/lib/eject-assets/generators/typescript/inline-runtime.ts +1 -1
- package/lib/eject-assets/generators/typescript/operation-signature.ts +1 -1
- package/lib/eject-assets/generators/typescript/operation-types.ts +1 -1
- package/lib/eject-assets/generators/typescript/operations.ts +1 -1
- package/lib/eject-assets/generators/typescript/response-headers.ts +1 -1
- package/lib/eject-assets/generators/typescript/type-guards.ts +1 -1
- package/lib/eject-assets/generators/typescript/types.ts +1 -1
- package/lib/eject-assets/generators/zod/index.ts +2 -2
- package/lib/eject-assets/generators/zod/schemas.ts +1 -1
- package/lib/eject-assets/skills/tanstack-query-generator/SKILL.md +5 -2
- package/lib/eject-assets/skills/typescript-generator/SKILL.md +5 -0
- package/lib/index.js +5 -5
- package/package.json +1 -1
- package/lib/chunks/5SIJI5LC.js +0 -42
- package/lib/chunks/EDQ6QRIB.js +0 -20
- package/lib/chunks/LCFG5N4V.js +0 -7
- package/lib/chunks/PWGFZ5ZK.js +0 -7
- package/lib/chunks/RU7T4CKG.js +0 -11
- package/lib/chunks/Z6GHMX6Z.js +0 -20
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "tanstack-query" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator tanstack-query --update`.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// `<op>InfiniteOptions(vars, init?)` with `initialPageParam`/`getNextPageParam` compiled
|
|
12
12
|
// from the pagination rule's JSON pointers. Per mutation: `<op>Mutation(init?)`. Calls go
|
|
13
13
|
// through the client instance's methods, which take one input object in either
|
|
14
|
-
// `--args-style`; only the infinite query's
|
|
14
|
+
// `--args-style`; only the infinite query's page-param override differs between them.
|
|
15
15
|
//
|
|
16
16
|
// The factory bodies are authored as source text — the emitted module verbatim
|
|
17
17
|
// and normalizes everything to the printer's canonical style. Every interpolated piece
|
|
@@ -58,6 +58,7 @@ export function renderTanstackModule(model: ApiModel, opts: TanstackOptions): st
|
|
|
58
58
|
const pagination = opts.pagination ?? new Map();
|
|
59
59
|
const source = [
|
|
60
60
|
importHeader(ops, opts, pagination),
|
|
61
|
+
...(ops.some((op) => isBodyLinkInfinite(op, pagination)) ? [NEXT_LINK_QUERY] : []),
|
|
61
62
|
...ops.filter(isQuery).map((op) => queryKeySource(op, opts.queryKeyPrefix)),
|
|
62
63
|
factoriesSource(model, ops, pagination, opts.queryKeyPrefix, opts.argsStyle),
|
|
63
64
|
...defaultBindings(ops, pagination),
|
|
@@ -69,14 +70,36 @@ export function renderTanstackModule(model: ApiModel, opts: TanstackOptions): st
|
|
|
69
70
|
* Whether the op gets an `<op>InfiniteOptions` factory: a paginated query operation.
|
|
70
71
|
* `link`-style pagination is excluded — its next page lives in the `Link` response
|
|
71
72
|
* HEADER, which a TanStack `queryFn` (body-only) cannot see; use the sdk's
|
|
72
|
-
* `.pages()`/`.items()` iterators for those operations instead.
|
|
73
|
+
* `.pages()`/`.items()` iterators for those operations instead. `body-link` qualifies
|
|
74
|
+
* when the operation has a query parameter to carry the link's parameters.
|
|
73
75
|
*/
|
|
74
76
|
function isInfinite(op: OperationModel, pagination: ModelPagination): boolean {
|
|
75
77
|
if (!isQuery(op)) return false;
|
|
76
78
|
const paginated = pagination.get(op.name);
|
|
77
|
-
|
|
79
|
+
if (paginated === undefined || paginated.spec.style === 'link') return false;
|
|
80
|
+
return paginated.spec.style !== 'body-link' || op.queryParams.length > 0;
|
|
78
81
|
}
|
|
79
82
|
|
|
83
|
+
/** A query op whose `body-link` pagination gets an `<op>InfiniteOptions` factory. */
|
|
84
|
+
function isBodyLinkInfinite(op: OperationModel, pagination: ModelPagination): boolean {
|
|
85
|
+
return isInfinite(op, pagination) && pagination.get(op.name)?.spec.style === 'body-link';
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The module-private helper a body-link `queryFn` merges the next page's query
|
|
90
|
+
* parameters with, the way the sdk's link iterator does: a repeated key becomes an array.
|
|
91
|
+
*/
|
|
92
|
+
const NEXT_LINK_QUERY =
|
|
93
|
+
'/** The query parameters of a next-page link; a repeated key becomes an array. */\n' +
|
|
94
|
+
'const nextLinkQuery = (link: string) => {\n' +
|
|
95
|
+
' const query: Record<string, string | string[]> = {};\n' +
|
|
96
|
+
' for (const [key, value] of new URL(link, "http://relative.invalid").searchParams) {\n' +
|
|
97
|
+
' const seen = query[key];\n' +
|
|
98
|
+
' query[key] = seen === undefined ? value : Array.isArray(seen) ? [...seen, value] : [seen, value];\n' +
|
|
99
|
+
' }\n' +
|
|
100
|
+
' return query;\n' +
|
|
101
|
+
'};';
|
|
102
|
+
|
|
80
103
|
/**
|
|
81
104
|
* The import header: the option helpers from `@tanstack/${framework}-query` (only the
|
|
82
105
|
* ones used), then the sdk's `client` instance plus the referenced types.
|
|
@@ -133,9 +156,9 @@ function factoriesSource(
|
|
|
133
156
|
): string {
|
|
134
157
|
const members = ops.flatMap((op) => {
|
|
135
158
|
if (!isQuery(op)) return [mutationMember(op, prefix)];
|
|
136
|
-
const
|
|
137
|
-
return
|
|
138
|
-
? [optionsMember(op), infiniteMember(model, op,
|
|
159
|
+
const spec = pagination.get(op.name)?.spec;
|
|
160
|
+
return spec !== undefined && spec.style !== 'link' && isInfinite(op, pagination)
|
|
161
|
+
? [optionsMember(op), infiniteMember(model, op, spec, argsStyle)]
|
|
139
162
|
: [optionsMember(op)];
|
|
140
163
|
});
|
|
141
164
|
return (
|
|
@@ -179,7 +202,8 @@ function mutationMember(op: OperationModel, prefix: string | undefined): string
|
|
|
179
202
|
* page param rides the rule's advance query parameter, `initialPageParam` resumes from
|
|
180
203
|
* the caller's own value, and `getNextPageParam` mirrors the runtime iterators' stop
|
|
181
204
|
* conditions (cursor: absent/`null`/`''`, plus the optional `hasMore === false`;
|
|
182
|
-
* offset/page: an empty items page).
|
|
205
|
+
* offset/page: an empty items page). A body link is the page param itself: the first
|
|
206
|
+
* page sends `vars` as given, later pages merge the link's query parameters over them.
|
|
183
207
|
*/
|
|
184
208
|
function infiniteMember(
|
|
185
209
|
model: ApiModel,
|
|
@@ -188,6 +212,29 @@ function infiniteMember(
|
|
|
188
212
|
argsStyle: TanstackOptions['argsStyle']
|
|
189
213
|
): string {
|
|
190
214
|
const { params, keyArg } = varsPieces(op);
|
|
215
|
+
if (spec.style === 'body-link') {
|
|
216
|
+
const merged =
|
|
217
|
+
argsStyle === 'flat'
|
|
218
|
+
? '{ ...vars, ...nextLinkQuery(pageParam) }'
|
|
219
|
+
: '{ ...vars, query: { ...vars.query, ...nextLinkQuery(pageParam) } }';
|
|
220
|
+
const pointer = spec.nextLink;
|
|
221
|
+
const checks = cursorStopChecks(model, op, pointer);
|
|
222
|
+
const next =
|
|
223
|
+
checks.length === 0
|
|
224
|
+
? ` return lastPage${pointerChain(pointer)};\n`
|
|
225
|
+
: ` const next = lastPage${pointerChain(pointer)};\n` +
|
|
226
|
+
` return ${checks.join(' || ')} ? undefined : next;\n`;
|
|
227
|
+
return (
|
|
228
|
+
` ${op.name}InfiniteOptions: (${params}) => infiniteQueryOptions({\n` +
|
|
229
|
+
` queryKey: [...${op.name}QueryKey(${keyArg}), "infinite"] as const,\n` +
|
|
230
|
+
` queryFn: ({ pageParam, signal }) => instance.${op.name}(pageParam === undefined ? vars : ${merged} as ${variablesName(op)}, { ...init, signal, envelope: undefined }),\n` +
|
|
231
|
+
` initialPageParam: undefined as string | undefined,\n` +
|
|
232
|
+
` getNextPageParam: (lastPage) => {\n` +
|
|
233
|
+
next +
|
|
234
|
+
` },\n` +
|
|
235
|
+
` })`
|
|
236
|
+
);
|
|
237
|
+
}
|
|
191
238
|
// The cursor is a query parameter, so it lands in the sdk's own spelling for one:
|
|
192
239
|
// inside the `query` layer, or at the top level of a merged call.
|
|
193
240
|
const cursor = safeIdent(spec.param);
|
|
@@ -208,7 +255,7 @@ function infiniteMember(
|
|
|
208
255
|
function nextPageSource(
|
|
209
256
|
model: ApiModel,
|
|
210
257
|
op: OperationModel,
|
|
211
|
-
spec: Exclude<PaginationSpec, { style: 'link' }>,
|
|
258
|
+
spec: Exclude<PaginationSpec, { style: 'link' | 'body-link' }>,
|
|
212
259
|
argsStyle: TanstackOptions['argsStyle']
|
|
213
260
|
): string {
|
|
214
261
|
const advance = paramsAccess(spec.param);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "transformers" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator transformers --update`.
|
|
@@ -42,5 +42,5 @@ export default {
|
|
|
42
42
|
run: transformersGenerator,
|
|
43
43
|
requires: ["typescript"],
|
|
44
44
|
dateTypes: ["Date"],
|
|
45
|
-
requiresGenerator: '^0.
|
|
45
|
+
requiresGenerator: '^0.6.0',
|
|
46
46
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "transformers" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator transformers --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -97,5 +97,5 @@ export default {
|
|
|
97
97
|
run: typescriptGenerator,
|
|
98
98
|
sample: typescriptSample,
|
|
99
99
|
docs: typescriptDocs,
|
|
100
|
-
requiresGenerator: '^0.
|
|
100
|
+
requiresGenerator: '^0.6.0',
|
|
101
101
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "typescript" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator typescript --update`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "zod" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator zod --update`.
|
|
@@ -28,5 +28,5 @@ export const zodGenerator: Generator = ({ model, output, banner }) => {
|
|
|
28
28
|
export default {
|
|
29
29
|
name: 'zod',
|
|
30
30
|
run: zodGenerator,
|
|
31
|
-
requiresGenerator: '^0.
|
|
31
|
+
requiresGenerator: '^0.6.0',
|
|
32
32
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Ejected from @redocly/client-generator@0.
|
|
1
|
+
// Ejected from @redocly/client-generator@0.6.0 — the built-in "zod" generator.
|
|
2
2
|
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
3
|
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
4
|
// `redocly eject-generator zod --update`.
|
|
@@ -21,8 +21,11 @@ query keys. One generator, four framework variants (`react` default, `-vue`,
|
|
|
21
21
|
- **Options factories, not hooks:** consumers call `useQuery(<op>Options(...))`, so the
|
|
22
22
|
output works with any of the framework adapters and stays testable.
|
|
23
23
|
- **`queryKeyPrefix`** namespaces every key when several clients share a cache.
|
|
24
|
-
- **Infinite queries** derive `getNextPageParam` from the resolved pagination rule
|
|
25
|
-
`link
|
|
24
|
+
- **Infinite queries** derive `getNextPageParam` from the resolved pagination rule. A
|
|
25
|
+
`body-link` rule gets one when the operation has a query parameter: the next page's
|
|
26
|
+
URL is the page param, and each later page merges the URL's query parameters over
|
|
27
|
+
`vars`. A `Link` header is invisible to a `queryFn`, so `link`-style operations get
|
|
28
|
+
only the sdk's `.pages()`/`.items()`.
|
|
26
29
|
- **`envelope` is excluded and stripped** — cached data is the plain body.
|
|
27
30
|
- Requires `typescript`; throw-mode only (it wraps thrown errors into query errors).
|
|
28
31
|
|
|
@@ -26,6 +26,11 @@ relatively (`runtime: module`).
|
|
|
26
26
|
an entry that `export *`s it; the entry type-imports only the schema names it
|
|
27
27
|
references (`collectEntrySchemaRefs`).
|
|
28
28
|
- **Zero runtime dependencies.** `Date`, `Blob`, `fetch` — nothing else.
|
|
29
|
+
- **Timeouts need no platform statics.** `send()` uses `AbortSignal.timeout()` and
|
|
30
|
+
`AbortSignal.any()` where they exist and builds the same signal from an `AbortController`
|
|
31
|
+
and `setTimeout` where they do not (Chrome before 116, Safari before 17.4, Firefox before
|
|
32
|
+
124). A timed-out attempt is recognized by its own timeout signal having fired, never by
|
|
33
|
+
the abort reason's name, because Chrome 103 to 123 abort a timeout with `AbortError`.
|
|
29
34
|
- **Names are collision-safe:** `packageIdents` seeds every reserved wiring name before
|
|
30
35
|
any operation is sanitized, so renames are deterministic (`configure` → `configure_2`).
|
|
31
36
|
A rename becomes part of the SDK's public API, so the warning must say WHICH cause it
|