@redocly/client-generator 0.7.11 → 0.7.13
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/eject-assets/generators/cli/docs.ts +1 -1
- package/eject-assets/generators/cli/engine-source.ts +1 -1
- package/eject-assets/generators/cli/index.ts +2 -2
- package/eject-assets/generators/cli/render.ts +1 -1
- package/eject-assets/generators/go/client.ts +1 -1
- package/eject-assets/generators/go/descriptor.ts +1 -1
- package/eject-assets/generators/go/index.ts +2 -2
- package/eject-assets/generators/go/models.ts +7 -2
- package/eject-assets/generators/go/naming.ts +1 -1
- package/eject-assets/generators/go/operations.ts +1 -1
- package/eject-assets/generators/go/pagination.ts +1 -1
- package/eject-assets/generators/go/types.ts +1 -1
- package/eject-assets/generators/mock/faker.ts +17 -9
- package/eject-assets/generators/mock/index.ts +4 -3
- package/eject-assets/generators/mock/render.ts +128 -9
- package/eject-assets/generators/mock/sample.ts +87 -4
- package/eject-assets/generators/mock/values.ts +1 -1
- package/eject-assets/generators/php/client.ts +1 -1
- package/eject-assets/generators/php/descriptor.ts +10 -1
- package/eject-assets/generators/php/index.ts +2 -2
- package/eject-assets/generators/php/models.ts +8 -3
- package/eject-assets/generators/php/naming.ts +1 -1
- package/eject-assets/generators/php/operations.ts +11 -6
- package/eject-assets/generators/php/pagination.ts +3 -2
- package/eject-assets/generators/php/types.ts +12 -2
- package/eject-assets/generators/python/client.ts +1 -1
- package/eject-assets/generators/python/descriptor.ts +1 -1
- package/eject-assets/generators/python/index.ts +3 -3
- package/eject-assets/generators/python/models.ts +9 -3
- package/eject-assets/generators/python/naming.ts +1 -1
- package/eject-assets/generators/python/operations.ts +6 -5
- package/eject-assets/generators/python/pagination.ts +1 -1
- package/eject-assets/generators/python/types.ts +1 -1
- package/eject-assets/generators/swr/index.ts +2 -2
- package/eject-assets/generators/swr/render.ts +1 -1
- package/eject-assets/generators/tanstack-query/index.ts +2 -2
- package/eject-assets/generators/tanstack-query/render.ts +6 -5
- package/eject-assets/generators/transformers/index.ts +2 -2
- package/eject-assets/generators/transformers/render.ts +34 -7
- package/eject-assets/generators/typescript/banner.ts +1 -1
- package/eject-assets/generators/typescript/client.ts +1 -1
- package/eject-assets/generators/typescript/descriptor.ts +1 -1
- package/eject-assets/generators/typescript/index.ts +2 -2
- package/eject-assets/generators/typescript/inline-runtime.ts +1 -1
- package/eject-assets/generators/typescript/operation-signature.ts +1 -1
- package/eject-assets/generators/typescript/operation-types.ts +1 -1
- package/eject-assets/generators/typescript/operations.ts +1 -1
- package/eject-assets/generators/typescript/response-headers.ts +1 -1
- package/eject-assets/generators/typescript/type-guards.ts +1 -1
- package/eject-assets/generators/typescript/types.ts +1 -1
- package/eject-assets/generators/zod/index.ts +2 -2
- package/eject-assets/generators/zod/schemas.ts +1 -1
- package/eject-assets/skills/go-generator/SKILL.md +3 -0
- package/eject-assets/skills/mock-generator/SKILL.md +22 -0
- package/eject-assets/skills/php-generator/SKILL.md +9 -2
- package/eject-assets/skills/python-generator/SKILL.md +6 -0
- package/eject-assets/skills/tanstack-query-generator/SKILL.md +2 -1
- package/eject-assets/skills/transformers-generator/SKILL.md +4 -0
- package/eject-assets/skills/typescript-generator/SKILL.md +5 -0
- package/lib/authoring/schema.d.ts.map +1 -1
- package/lib/authoring/schema.js +4 -1
- package/lib/authoring/schema.js.map +1 -1
- package/lib/generators/go/models.d.ts.map +1 -1
- package/lib/generators/go/models.js +4 -1
- package/lib/generators/go/models.js.map +1 -1
- package/lib/generators/mock/faker.js +18 -8
- package/lib/generators/mock/faker.js.map +1 -1
- package/lib/generators/mock/index.d.ts.map +1 -1
- package/lib/generators/mock/index.js +2 -1
- package/lib/generators/mock/index.js.map +1 -1
- package/lib/generators/mock/render.d.ts +3 -1
- package/lib/generators/mock/render.d.ts.map +1 -1
- package/lib/generators/mock/render.js +119 -9
- package/lib/generators/mock/render.js.map +1 -1
- package/lib/generators/mock/sample.d.ts +18 -1
- package/lib/generators/mock/sample.d.ts.map +1 -1
- package/lib/generators/mock/sample.js +71 -2
- package/lib/generators/mock/sample.js.map +1 -1
- package/lib/generators/php/descriptor.d.ts +6 -0
- package/lib/generators/php/descriptor.d.ts.map +1 -1
- package/lib/generators/php/descriptor.js +8 -0
- package/lib/generators/php/descriptor.js.map +1 -1
- package/lib/generators/php/models.d.ts.map +1 -1
- package/lib/generators/php/models.js +5 -2
- package/lib/generators/php/models.js.map +1 -1
- package/lib/generators/php/operations.d.ts.map +1 -1
- package/lib/generators/php/operations.js +5 -5
- package/lib/generators/php/operations.js.map +1 -1
- package/lib/generators/php/pagination.d.ts.map +1 -1
- package/lib/generators/php/pagination.js +2 -1
- package/lib/generators/php/pagination.js.map +1 -1
- package/lib/generators/php/types.d.ts.map +1 -1
- package/lib/generators/php/types.js +13 -2
- package/lib/generators/php/types.js.map +1 -1
- package/lib/generators/python/index.js +1 -1
- package/lib/generators/python/index.js.map +1 -1
- package/lib/generators/python/models.d.ts.map +1 -1
- package/lib/generators/python/models.js +6 -2
- package/lib/generators/python/models.js.map +1 -1
- package/lib/generators/python/operations.d.ts.map +1 -1
- package/lib/generators/python/operations.js +5 -4
- package/lib/generators/python/operations.js.map +1 -1
- package/lib/generators/tanstack-query/render.js +5 -4
- package/lib/generators/tanstack-query/render.js.map +1 -1
- package/lib/generators/transformers/render.d.ts +1 -1
- package/lib/generators/transformers/render.d.ts.map +1 -1
- package/lib/generators/transformers/render.js +24 -5
- package/lib/generators/transformers/render.js.map +1 -1
- package/lib/generators/typescript/runtime/create-client.js +1 -1
- package/lib/generators/typescript/runtime/create-client.js.map +1 -1
- package/lib/generators/typescript/runtime/paginate.d.ts.map +1 -1
- package/lib/generators/typescript/runtime/paginate.js +5 -4
- package/lib/generators/typescript/runtime/paginate.js.map +1 -1
- package/lib/generators/typescript/runtime/send.d.ts.map +1 -1
- package/lib/generators/typescript/runtime/send.js +10 -4
- package/lib/generators/typescript/runtime/send.js.map +1 -1
- package/lib/generators/typescript/runtime/sse.d.ts.map +1 -1
- package/lib/generators/typescript/runtime/sse.js +6 -1
- package/lib/generators/typescript/runtime/sse.js.map +1 -1
- package/lib/generators/typescript/telemetry/telemetry.d.ts.map +1 -1
- package/lib/generators/typescript/telemetry/telemetry.js +72 -11
- package/lib/generators/typescript/telemetry/telemetry.js.map +1 -1
- package/lib/intermediate-representation/build.d.ts.map +1 -1
- package/lib/intermediate-representation/build.js +51 -26
- package/lib/intermediate-representation/build.js.map +1 -1
- package/lib/intermediate-representation/model.d.ts +6 -2
- package/lib/intermediate-representation/model.d.ts.map +1 -1
- package/lib/intermediate-representation/model.js.map +1 -1
- package/lib/runtime-contract.d.ts +1 -1
- package/lib/runtime-contract.d.ts.map +1 -1
- package/lib/runtime-contract.js.map +1 -1
- package/lib/runtime-sources/python.d.ts +2 -2
- package/lib/runtime-sources/python.js +2 -2
- package/lib/runtime-sources/python.js.map +1 -1
- package/lib/runtime-sources/telemetry.d.ts +1 -1
- package/lib/runtime-sources/telemetry.d.ts.map +1 -1
- package/lib/runtime-sources/telemetry.js +1 -1
- package/lib/runtime-sources/telemetry.js.map +1 -1
- package/lib/runtime-sources/typescript.d.ts +10 -10
- package/lib/runtime-sources/typescript.js +10 -10
- package/lib/runtime-sources/typescript.js.map +1 -1
- package/package.json +2 -2
package/lib/authoring/schema.js
CHANGED
|
@@ -118,7 +118,10 @@ function stepIntoSchema(schema, key, model) {
|
|
|
118
118
|
* Unions bail (genuinely ambiguous). Returns `undefined` on any miss.
|
|
119
119
|
*/
|
|
120
120
|
export function schemaAtPointer(schema, pointer, model) {
|
|
121
|
-
|
|
121
|
+
// An `omit` root (a response without its writeOnly keys) walks its base; the dropped
|
|
122
|
+
// keys are never a page's items or cursor.
|
|
123
|
+
const root = schema.kind === 'omit' ? { kind: 'ref', name: schema.base } : schema;
|
|
124
|
+
let current = deref(root, model);
|
|
122
125
|
if (current === undefined || (pointer !== '' && !pointer.startsWith('/')))
|
|
123
126
|
return undefined;
|
|
124
127
|
if (pointer === '')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/authoring/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/authoring/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/generators/go/models.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,QAAQ,EAKd,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/generators/go/models.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,QAAQ,EAKd,MAAM,2BAA2B,CAAC;AA6CnC,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAE,QAAmB,GAAG,MAAM,CAoBrF"}
|
|
@@ -5,9 +5,12 @@ import { exported, GoPrinter } from '@redocly/client-generator/printers/go';
|
|
|
5
5
|
import { naming } from "./naming.js";
|
|
6
6
|
import { goType } from "./types.js";
|
|
7
7
|
function writeStruct(printer, name, properties, dateType, description) {
|
|
8
|
+
// A response never carries a `writeOnly` property, and responses decode into this same
|
|
9
|
+
// struct, so the property is optional even when the description requires it.
|
|
10
|
+
const fields = properties.map((property) => property.writeOnly ? { ...property, required: false } : property);
|
|
8
11
|
printer.doc(exported(name), description);
|
|
9
12
|
printer.block(`type ${exported(name)} struct {`, () => {
|
|
10
|
-
for (const property of
|
|
13
|
+
for (const property of fields) {
|
|
11
14
|
const field = exported(property.name);
|
|
12
15
|
let fieldType = goType(property.schema, dateType);
|
|
13
16
|
let tag = `\`json:"${property.name}"\``;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/generators/go/models.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,0EAA0E;AAE1E,OAAO,EAEL,MAAM,EAEN,kBAAkB,EAClB,UAAU,EACV,YAAY,GAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,SAAS,WAAW,CAClB,OAAkB,EAClB,IAAY,EACZ,UAA2B,EAC3B,QAAkB,EAClB,WAAoB;IAEpB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CACX,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,EACjC,GAAG,EAAE;QACH,KAAK,MAAM,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/generators/go/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// `mockData` without touching call sites; `@faker-js/faker` becomes their
|
|
10
10
|
// dev-dep while the real client stays dependency-free.
|
|
11
11
|
import { codeLiteral } from '@redocly/client-generator/printers/typescript';
|
|
12
|
-
import { splitIntersection } from "./sample.js";
|
|
12
|
+
import { numericRange, omitsFromResponse, splitIntersection } from "./sample.js";
|
|
13
13
|
import { expr, isObjectValue, objectValue } from "./values.js";
|
|
14
14
|
/** The faker-call value for an IR schema. Refs resolve against `schemas`;
|
|
15
15
|
* recursion is cut with a visited-set (`null` at the cycle). `dateType` mirrors
|
|
@@ -41,6 +41,8 @@ function walk(schema, byName, visiting, dateType) {
|
|
|
41
41
|
}
|
|
42
42
|
case 'object':
|
|
43
43
|
return objectValue(schema.properties.flatMap((p) => {
|
|
44
|
+
if (omitsFromResponse(p))
|
|
45
|
+
return [];
|
|
44
46
|
const value = walk(p.schema, byName, visiting, dateType);
|
|
45
47
|
// A cyclic optional property is omitted; a cyclic required property is
|
|
46
48
|
// uninhabitable, so null is the only stand-in.
|
|
@@ -113,9 +115,9 @@ function scalarExpr(scalar, meta, dateType) {
|
|
|
113
115
|
if (scalar === 'boolean')
|
|
114
116
|
return 'faker.datatype.boolean()';
|
|
115
117
|
if (scalar === 'integer')
|
|
116
|
-
return `faker.number.int(${boundsArg(meta)})`;
|
|
118
|
+
return `faker.number.int(${boundsArg(scalar, meta)})`;
|
|
117
119
|
if (scalar === 'number')
|
|
118
|
-
return `faker.number.float(${boundsArg(meta)})`;
|
|
120
|
+
return `faker.number.float(${boundsArg(scalar, meta)})`;
|
|
119
121
|
switch (meta?.format) {
|
|
120
122
|
case 'email':
|
|
121
123
|
return 'faker.internet.email()';
|
|
@@ -144,13 +146,21 @@ function dateExpr(dateType, dateOnly) {
|
|
|
144
146
|
const iso = 'faker.date.recent().toISOString()';
|
|
145
147
|
return dateOnly ? `${iso}.slice(0, 10)` : iso;
|
|
146
148
|
}
|
|
147
|
-
/**
|
|
148
|
-
|
|
149
|
+
/**
|
|
150
|
+
* `{ min, max, multipleOf }` for a bounded numeric, or empty when unbounded. Both ends are
|
|
151
|
+
* always set, because faker's defaults (`0`, and `1` for floats) can sit on the wrong side
|
|
152
|
+
* of a single bound: the missing end is 100 steps away from the set one.
|
|
153
|
+
*/
|
|
154
|
+
function boundsArg(scalar, meta) {
|
|
155
|
+
const { min, max, step = 1 } = numericRange(scalar, meta);
|
|
156
|
+
if (min === undefined && max === undefined)
|
|
157
|
+
return '';
|
|
149
158
|
const props = [
|
|
150
|
-
|
|
151
|
-
|
|
159
|
+
`min: ${min ?? (max ?? 0) - 100 * step}`,
|
|
160
|
+
`max: ${max ?? (min ?? 0) + 100 * step}`,
|
|
161
|
+
...(meta?.multipleOf !== undefined ? [`multipleOf: ${meta.multipleOf}`] : []),
|
|
152
162
|
];
|
|
153
|
-
return
|
|
163
|
+
return `{ ${props.join(', ')} }`;
|
|
154
164
|
}
|
|
155
165
|
/** `faker.helpers.multiple(() => <item>, { count: 1 })` — one element keeps output small.
|
|
156
166
|
* An object-literal arrow body must be parenthesized (`() => ({ … })`), or the braces
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faker.js","sourceRoot":"","sources":["../../../src/generators/mock/faker.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,gFAAgF;AAChF,yEAAyE;AACzE,iFAAiF;AACjF,0EAA0E;AAC1E,iFAAiF;AACjF,8EAA8E;AAC9E,gFAAgF;AAChF,0EAA0E;AAC1E,uDAAuD;AASvD,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"faker.js","sourceRoot":"","sources":["../../../src/generators/mock/faker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/mock/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/mock/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,SAa3B,CAAC"}
|
|
@@ -6,13 +6,14 @@ import { renderMockModule } from "./render.js";
|
|
|
6
6
|
* sdk client stays dependency-free. Output-mode-agnostic in v1 — one module beside
|
|
7
7
|
* the client. Emits nothing when there are no operations.
|
|
8
8
|
*/
|
|
9
|
-
export const mockGenerator = ({ model, output, banner, emit }) => {
|
|
9
|
+
export const mockGenerator = ({ model, output, banner, emit, pagination }) => {
|
|
10
10
|
const header = banner.map((line) => `// ${line}`).join('\n');
|
|
11
11
|
const content = renderMockModule(model, {
|
|
12
12
|
sdkModule: `./${output.stem}.${emit.importExt ?? 'js'}`,
|
|
13
13
|
dateType: emit.dateType,
|
|
14
14
|
mockData: emit.mockData,
|
|
15
15
|
mockSeed: emit.mockSeed,
|
|
16
|
+
pagination,
|
|
16
17
|
});
|
|
17
18
|
if (content === '')
|
|
18
19
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/mock/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/mock/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE;QACtC,SAAS,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;QACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU;KACX,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO;QACL,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,OAAO,EAAE,EAAE;KAC1F,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ApiModel, type DateType } from '@redocly/client-generator';
|
|
1
|
+
import { type ApiModel, type DateType, type ModelPagination } from '@redocly/client-generator';
|
|
2
2
|
export type MockOptions = {
|
|
3
3
|
/** Import specifier for the sdk entry the schema types live in. */
|
|
4
4
|
sdkModule: string;
|
|
@@ -15,6 +15,8 @@ export type MockOptions = {
|
|
|
15
15
|
mockData?: 'static' | 'faker';
|
|
16
16
|
/** When set in `'faker'` mode, emit a top-level `faker.seed(<n>);` so runs reproduce. */
|
|
17
17
|
mockSeed?: number;
|
|
18
|
+
/** The run's resolved pagination: a paginated handler serves the last page. */
|
|
19
|
+
pagination?: ModelPagination;
|
|
18
20
|
};
|
|
19
21
|
/** Render the full `*.mocks.ts` source. `''` when the model has no operations. */
|
|
20
22
|
export declare function renderMockModule(model: ApiModel, opts: MockOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/generators/mock/render.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/generators/mock/render.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EAGb,KAAK,eAAe,EAMrB,MAAM,2BAA2B,CAAC;AAsBnC,MAAM,MAAM,WAAW,GAAG;IACxB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB;mFAC+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B,CAAC;AAYF,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAmB3E"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// data is sampled at codegen time (`sampleValue`) and printed as TypeScript
|
|
5
5
|
// literals — source-text templates — so the generated module depends only on
|
|
6
6
|
// `msw`; the real client stays zero-dependency.
|
|
7
|
-
import { allOperations, } from '@redocly/client-generator';
|
|
7
|
+
import { allOperations, flattenAllOf, isNullable, schemaAtPointer, } from '@redocly/client-generator';
|
|
8
8
|
import { codeLiteral, isIdentifier, pascalCase, } from '@redocly/client-generator/printers/typescript';
|
|
9
9
|
import { isPlainObject } from '@redocly/openapi-core';
|
|
10
10
|
import { fakerExpression } from "./faker.js";
|
|
@@ -102,7 +102,7 @@ function codeIdent(value) {
|
|
|
102
102
|
function handlerFor(op, model, opts) {
|
|
103
103
|
const override = overrideParam(op, model, opts);
|
|
104
104
|
const params = override ?? '';
|
|
105
|
-
const call = `http.${codeIdent(op.method)}(${JSON.stringify(mswPath(op.path))},
|
|
105
|
+
const call = `http.${codeIdent(op.method)}(${JSON.stringify(mswPath(op.path))}, ${resolverFor(op, model, opts)})`;
|
|
106
106
|
return `export const ${codeIdent(op.name)}Handler = (${params}) => ${call};`;
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
@@ -161,8 +161,8 @@ function errorBodyType(op) {
|
|
|
161
161
|
* A `ref` success body forwards `override` to `create<Schema>(override)`, so its type
|
|
162
162
|
* mirrors the factory's parameter (`Partial<Schema>`, or the full type when the factory
|
|
163
163
|
* replaces wholesale — see `factoryFor`). An inline object body spreads `override`, typed
|
|
164
|
-
* `Record<string, unknown
|
|
165
|
-
* override, so the handler takes no parameter.
|
|
164
|
+
* `Record<string, unknown>`, or `Partial<Omit<Schema, …>>` for an `omit` body. A body-less
|
|
165
|
+
* or non-object inline response has nothing to override, so the handler takes no parameter.
|
|
166
166
|
*/
|
|
167
167
|
function overrideParam(op, model, opts) {
|
|
168
168
|
const success = op.successResponses[0];
|
|
@@ -177,15 +177,125 @@ function overrideParam(op, model, opts) {
|
|
|
177
177
|
}
|
|
178
178
|
if (!isObjectValue(bodyValue(success.schema, model, opts)))
|
|
179
179
|
return undefined;
|
|
180
|
+
if (success.schema.kind === 'omit') {
|
|
181
|
+
const keys = success.schema.keys.map((key) => JSON.stringify(key)).join(' | ');
|
|
182
|
+
return `override?: Partial<Omit<${success.schema.base}, ${keys}>>`;
|
|
183
|
+
}
|
|
180
184
|
return 'override?: Record<string, unknown>';
|
|
181
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* The handler's resolver. A paginated operation serves the LAST page, so `.pages()` over
|
|
188
|
+
* the default handlers ends after one page: a cursor page carries no next cursor (and a
|
|
189
|
+
* `false` "has more" flag), and a `body-link` page no next link; an offset or page-number
|
|
190
|
+
* page answers any position past the first with an empty item list, because those styles
|
|
191
|
+
* stop only on an empty page.
|
|
192
|
+
*/
|
|
193
|
+
function resolverFor(op, model, opts) {
|
|
194
|
+
const spec = opts.pagination?.get(op.name)?.spec;
|
|
195
|
+
const success = op.successResponses[0];
|
|
196
|
+
if (!spec || spec.style === 'link' || !success)
|
|
197
|
+
return `() => ${responseExpression(op, model, opts)}`;
|
|
198
|
+
const page = bodyValue(success.schema, model, opts);
|
|
199
|
+
const status = statusCode(success.status);
|
|
200
|
+
// An object page spreads `override` in; a page that is the item array is replaced by it.
|
|
201
|
+
const takesOverride = overrideParam(op, model, opts) !== undefined;
|
|
202
|
+
const withOverride = (value) => {
|
|
203
|
+
if (isObjectValue(value))
|
|
204
|
+
return spreadInto(value, 'override');
|
|
205
|
+
return takesOverride ? { kind: 'wrap', before: 'override ?? ', value, after: '' } : value;
|
|
206
|
+
};
|
|
207
|
+
const json = (value) => {
|
|
208
|
+
const data = renderMockValue(value, '');
|
|
209
|
+
return status === 200
|
|
210
|
+
? `HttpResponse.json(${data})`
|
|
211
|
+
: `HttpResponse.json(${data}, { status: ${status} })`;
|
|
212
|
+
};
|
|
213
|
+
if (spec.style === 'cursor' || spec.style === 'body-link') {
|
|
214
|
+
const next = spec.style === 'cursor' ? spec.nextCursor : spec.nextLink;
|
|
215
|
+
let last = withPointer(page, pointerKeys(next), cursorStop(success.schema, next, model));
|
|
216
|
+
if (spec.style === 'cursor' && spec.hasMore !== undefined)
|
|
217
|
+
last = withPointer(last, pointerKeys(spec.hasMore), expr('false'));
|
|
218
|
+
return `() => ${json(withOverride(last))}`;
|
|
219
|
+
}
|
|
220
|
+
const first = spec.style === 'page' ? 1 : 0;
|
|
221
|
+
const position = `Number(new URL(request.url).searchParams.get(${codeLiteral(spec.param)}) ?? ${first})`;
|
|
222
|
+
const empty = emptyPage(page, pointerKeys(spec.items));
|
|
223
|
+
return `({ request }) => ${position} > ${first} ? ${json(empty)} : ${json(withOverride(page))}`;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* The page past the last one: the page with `override` spread in, and the items at `keys`
|
|
227
|
+
* set AFTER the spread, so an override that sets the items cannot refill the empty page.
|
|
228
|
+
* The top-level property that holds the items is written out from the sample.
|
|
229
|
+
*/
|
|
230
|
+
function emptyPage(page, keys) {
|
|
231
|
+
if (keys.length === 0 || !isObjectValue(page))
|
|
232
|
+
return withPointer(page, keys, expr('[]'));
|
|
233
|
+
const [key, ...rest] = keys;
|
|
234
|
+
const isKey = (entry) => !('spread' in entry) && entry.key === key;
|
|
235
|
+
const holder = page.entries.find(isKey);
|
|
236
|
+
const inner = holder && !('spread' in holder) ? holder.value : objectValue([]);
|
|
237
|
+
return objectValue([
|
|
238
|
+
...page.entries.filter((entry) => !isKey(entry)),
|
|
239
|
+
{ spread: 'override' },
|
|
240
|
+
{ key, value: withPointer(inner, rest, expr('[]')) },
|
|
241
|
+
]);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* What ends a cursor or `body-link` walk at `pointer`: `null` when the value is nullable,
|
|
245
|
+
* nothing (the property is left out) when it is optional, and an empty string otherwise.
|
|
246
|
+
*/
|
|
247
|
+
function cursorStop(schema, pointer, model) {
|
|
248
|
+
const cursor = schemaAtPointer(schema, pointer, model);
|
|
249
|
+
if (cursor?.kind === 'null' || (cursor && isNullable(cursor)))
|
|
250
|
+
return expr('null');
|
|
251
|
+
const keys = pointerKeys(pointer);
|
|
252
|
+
const parent = schemaAtPointer(schema, pointer.slice(0, pointer.lastIndexOf('/')), model);
|
|
253
|
+
const property = parent &&
|
|
254
|
+
flattenAllOf(parent, model)?.properties.find((candidate) => candidate.name === keys.at(-1));
|
|
255
|
+
return property?.required === false ? undefined : expr('""');
|
|
256
|
+
}
|
|
257
|
+
/** RFC 6901 pointer tokens (`~1` → `/`, `~0` → `~`); none for `''`, the whole value. */
|
|
258
|
+
function pointerKeys(pointer) {
|
|
259
|
+
if (pointer === '')
|
|
260
|
+
return [];
|
|
261
|
+
return pointer
|
|
262
|
+
.slice(1)
|
|
263
|
+
.split('/')
|
|
264
|
+
.map((token) => token.replaceAll('~1', '/').replaceAll('~0', '~'));
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* `value` with the property at the `keys` path replaced (added when missing), or removed
|
|
268
|
+
* when `replacement` is `undefined`. An empty path replaces the whole value (a page that
|
|
269
|
+
* is the item array itself). Steps only through objects: a path that reaches into
|
|
270
|
+
* anything else leaves the value unchanged.
|
|
271
|
+
*/
|
|
272
|
+
function withPointer(value, keys, replacement) {
|
|
273
|
+
if (keys.length === 0)
|
|
274
|
+
return replacement ?? value;
|
|
275
|
+
if (!isObjectValue(value))
|
|
276
|
+
return value;
|
|
277
|
+
const [key, ...rest] = keys;
|
|
278
|
+
const found = value.entries.some((entry) => !('spread' in entry) && entry.key === key);
|
|
279
|
+
const entries = value.entries.flatMap((entry) => {
|
|
280
|
+
if ('spread' in entry || entry.key !== key)
|
|
281
|
+
return [entry];
|
|
282
|
+
if (rest.length > 0)
|
|
283
|
+
return [{ key, value: withPointer(entry.value, rest, replacement) }];
|
|
284
|
+
return replacement === undefined ? [] : [{ key, value: replacement }];
|
|
285
|
+
});
|
|
286
|
+
if (!found && rest.length === 0 && replacement !== undefined) {
|
|
287
|
+
entries.push({ key, value: replacement });
|
|
288
|
+
}
|
|
289
|
+
return objectValue(entries);
|
|
290
|
+
}
|
|
182
291
|
/**
|
|
183
292
|
* The handler's response. A primary success body becomes `HttpResponse.json(…)`:
|
|
184
|
-
* a `ref` body calls its named `create<Schema>(override)` factory; an inline body
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* response
|
|
293
|
+
* a `ref` body calls its named `create<Schema>(override)` factory; an inline body is
|
|
294
|
+
* sampled and printed in place with `...override` spread in. An `omit` body (a named
|
|
295
|
+
* schema without its `writeOnly` keys) is inline too, because the factory keeps the
|
|
296
|
+
* required ones. A success with no usable body (an `unknown` schema, or no success
|
|
297
|
+
* response at all) becomes a body-less `new HttpResponse(null, { status })`. The status
|
|
298
|
+
* is the success response's declared code, or 200 when it's `default`/absent.
|
|
189
299
|
*/
|
|
190
300
|
function responseExpression(op, model, opts) {
|
|
191
301
|
const success = op.successResponses[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/generators/mock/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/generators/mock/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DateType, type NamedSchemaModel, type SchemaModel } from '@redocly/client-generator';
|
|
1
|
+
import { type DateType, type NamedSchemaModel, type PropertyModel, type SchemaMetadata, type SchemaModel } from '@redocly/client-generator';
|
|
2
2
|
/** A sampled value the emitter must print as a raw TS expression rather than a JSON
|
|
3
3
|
* literal — e.g. a `format: binary` field, whose generated type is `Blob`. The `code`
|
|
4
4
|
* strings are generator-authored constants (never spec-derived), so emitting them
|
|
@@ -35,4 +35,21 @@ export declare function splitIntersection(members: SchemaModel[], byName: Map<st
|
|
|
35
35
|
merged: SchemaModel | undefined;
|
|
36
36
|
rest: SchemaModel[];
|
|
37
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Whether a mock leaves a property out. Mocks are response data, and a response never
|
|
40
|
+
* carries a `writeOnly` property. A required one stays, because the named type still
|
|
41
|
+
* demands it; a handler whose response omits it samples that `omit` shape instead.
|
|
42
|
+
*/
|
|
43
|
+
export declare function omitsFromResponse(property: PropertyModel): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The inclusive range a numeric schema allows. `minimum`/`maximum` and the exclusive
|
|
46
|
+
* bounds narrow it, aligned to `multipleOf` (an integer steps by 1 without one). An
|
|
47
|
+
* exclusive bound on a number without a step moves in by 1, or to the middle of the
|
|
48
|
+
* range when the range is narrower than that. An unbounded side is `undefined`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function numericRange(scalar: 'integer' | 'number', meta: SchemaMetadata | undefined): {
|
|
51
|
+
min?: number;
|
|
52
|
+
max?: number;
|
|
53
|
+
step?: number;
|
|
54
|
+
};
|
|
38
55
|
//# sourceMappingURL=sample.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../../src/generators/mock/sample.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../../src/generators/mock/sample.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAGnC;;;wBAGwB;AACxB,qBAAa,gBAAgB;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAClC;AAED;;wFAEwF;AACxF,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,IAAI,GAAE,aAAkB,GACvB,OAAO,CAMT;AA0CD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EAAE,EACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAC/B;IAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,CA0C1D;AA4KD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,GAAG,QAAQ,EAC5B,IAAI,EAAE,cAAc,GAAG,SAAS,GAC/B;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAoC/C"}
|
|
@@ -94,6 +94,7 @@ export function splitIntersection(members, byName) {
|
|
|
94
94
|
properties.set(property.name, {
|
|
95
95
|
schema: property.schema,
|
|
96
96
|
required: property.required || (existing?.required ?? false),
|
|
97
|
+
writeOnly: property.writeOnly === true || (existing?.writeOnly ?? false),
|
|
97
98
|
rank,
|
|
98
99
|
});
|
|
99
100
|
}
|
|
@@ -108,6 +109,7 @@ export function splitIntersection(members, byName) {
|
|
|
108
109
|
name,
|
|
109
110
|
schema: p.schema,
|
|
110
111
|
required: p.required,
|
|
112
|
+
...(p.writeOnly ? { writeOnly: true } : {}),
|
|
111
113
|
})),
|
|
112
114
|
},
|
|
113
115
|
rest,
|
|
@@ -161,7 +163,9 @@ function walk(schema, byName, visiting, dateType) {
|
|
|
161
163
|
const meta = schema.metadata;
|
|
162
164
|
// An example/default is honored only when it inhabits the generated type — real specs
|
|
163
165
|
// carry `example: null` on non-nullable fields and defaults outside a narrowed enum
|
|
164
|
-
// (`enum: [cram-md5], default: none`); baking those would not type-check.
|
|
166
|
+
// (`enum: [cram-md5], default: none`); baking those would not type-check. A number
|
|
167
|
+
// outside its bounds or off its `multipleOf` step would fail the zod schema, so it is
|
|
168
|
+
// skipped too.
|
|
165
169
|
const inhabits = (value) => {
|
|
166
170
|
if (value === null) {
|
|
167
171
|
return (schema.kind === 'null' ||
|
|
@@ -171,6 +175,14 @@ function walk(schema, byName, visiting, dateType) {
|
|
|
171
175
|
return schema.values.includes(value);
|
|
172
176
|
if (schema.kind === 'literal')
|
|
173
177
|
return value === schema.value;
|
|
178
|
+
if (schema.kind === 'scalar' &&
|
|
179
|
+
(schema.scalar === 'integer' || schema.scalar === 'number') &&
|
|
180
|
+
typeof value === 'number') {
|
|
181
|
+
const { min, max, step } = numericRange(schema.scalar, meta);
|
|
182
|
+
// `toPrecision` drops float noise, so `0.3` counts as a multiple of `0.1`.
|
|
183
|
+
const onStep = step === undefined || Number.isInteger(Number((value / step).toPrecision(12)));
|
|
184
|
+
return onStep && (min === undefined || value >= min) && (max === undefined || value <= max);
|
|
185
|
+
}
|
|
174
186
|
return true;
|
|
175
187
|
};
|
|
176
188
|
if (meta?.example !== undefined && inhabits(meta.example))
|
|
@@ -187,6 +199,8 @@ function walk(schema, byName, visiting, dateType) {
|
|
|
187
199
|
}
|
|
188
200
|
case 'object':
|
|
189
201
|
return Object.fromEntries(schema.properties.flatMap((p) => {
|
|
202
|
+
if (omitsFromResponse(p))
|
|
203
|
+
return [];
|
|
190
204
|
const value = walk(p.schema, byName, visiting, dateType);
|
|
191
205
|
// A cyclic optional property is omitted (a null would not satisfy `T | undefined`);
|
|
192
206
|
// a cyclic required property is uninhabitable, so null is the only stand-in.
|
|
@@ -264,11 +278,66 @@ function walk(schema, byName, visiting, dateType) {
|
|
|
264
278
|
return null;
|
|
265
279
|
}
|
|
266
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Whether a mock leaves a property out. Mocks are response data, and a response never
|
|
283
|
+
* carries a `writeOnly` property. A required one stays, because the named type still
|
|
284
|
+
* demands it; a handler whose response omits it samples that `omit` shape instead.
|
|
285
|
+
*/
|
|
286
|
+
export function omitsFromResponse(property) {
|
|
287
|
+
return property.writeOnly === true && !property.required;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* The inclusive range a numeric schema allows. `minimum`/`maximum` and the exclusive
|
|
291
|
+
* bounds narrow it, aligned to `multipleOf` (an integer steps by 1 without one). An
|
|
292
|
+
* exclusive bound on a number without a step moves in by 1, or to the middle of the
|
|
293
|
+
* range when the range is narrower than that. An unbounded side is `undefined`.
|
|
294
|
+
*/
|
|
295
|
+
export function numericRange(scalar, meta) {
|
|
296
|
+
const step = meta?.multipleOf ?? (scalar === 'integer' ? 1 : undefined);
|
|
297
|
+
// The multiple of `step` that `round` picks for `bound`; `toPrecision` drops float noise.
|
|
298
|
+
const onStep = (bound, size, round) => Number((round(bound / size) * size).toPrecision(15));
|
|
299
|
+
const lows = [];
|
|
300
|
+
const highs = [];
|
|
301
|
+
if (meta?.minimum !== undefined) {
|
|
302
|
+
const bound = meta.minimum;
|
|
303
|
+
lows.push(step === undefined ? bound : onStep(bound, step, Math.ceil));
|
|
304
|
+
}
|
|
305
|
+
if (meta?.exclusiveMinimum !== undefined) {
|
|
306
|
+
const bound = meta.exclusiveMinimum;
|
|
307
|
+
lows.push(step === undefined ? bound + 1 : onStep(bound, step, (steps) => Math.floor(steps) + 1));
|
|
308
|
+
}
|
|
309
|
+
if (meta?.maximum !== undefined) {
|
|
310
|
+
const bound = meta.maximum;
|
|
311
|
+
highs.push(step === undefined ? bound : onStep(bound, step, Math.floor));
|
|
312
|
+
}
|
|
313
|
+
if (meta?.exclusiveMaximum !== undefined) {
|
|
314
|
+
const bound = meta.exclusiveMaximum;
|
|
315
|
+
highs.push(step === undefined ? bound - 1 : onStep(bound, step, (steps) => Math.ceil(steps) - 1));
|
|
316
|
+
}
|
|
317
|
+
const min = lows.length > 0 ? Math.max(...lows) : undefined;
|
|
318
|
+
const max = highs.length > 0 ? Math.min(...highs) : undefined;
|
|
319
|
+
if (step === undefined && min !== undefined && max !== undefined && min > max) {
|
|
320
|
+
const low = Math.max(meta?.minimum ?? -Infinity, meta?.exclusiveMinimum ?? -Infinity);
|
|
321
|
+
const high = Math.min(meta?.maximum ?? Infinity, meta?.exclusiveMaximum ?? Infinity);
|
|
322
|
+
const middle = (low + high) / 2;
|
|
323
|
+
return { min: middle, max: middle };
|
|
324
|
+
}
|
|
325
|
+
return { min, max, step };
|
|
326
|
+
}
|
|
327
|
+
/** `0` when the range allows it, else the end of the range nearest to `0`. */
|
|
328
|
+
function numberSample(scalar, meta) {
|
|
329
|
+
const { min, max } = numericRange(scalar, meta);
|
|
330
|
+
if (min !== undefined && min > 0)
|
|
331
|
+
return min;
|
|
332
|
+
if (max !== undefined && max < 0)
|
|
333
|
+
return max;
|
|
334
|
+
return 0;
|
|
335
|
+
}
|
|
267
336
|
function scalarSample(scalar, meta) {
|
|
268
337
|
if (scalar === 'boolean')
|
|
269
338
|
return true;
|
|
270
339
|
if (scalar === 'integer' || scalar === 'number')
|
|
271
|
-
return
|
|
340
|
+
return numberSample(scalar, meta);
|
|
272
341
|
// Type-demanding formats (binary, and date/date-time under `dateType: 'Date'`) are
|
|
273
342
|
// handled earlier in `walk` via `typeDemandedExpression`; here the date formats fall
|
|
274
343
|
// through to the ISO-string path (the `dateType: 'string'` types them as `string`).
|