fork of hey-api/openapi-ts because I need some additional things
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at feat/use-query-options 51 lines 1.4 kB view raw
1import type { IR } from '@hey-api/shared'; 2 3import type { PydanticMeta, PydanticResult } from './types'; 4 5/** 6 * Creates default metadata from a schema. 7 */ 8export function defaultMeta(schema: IR.SchemaObject): PydanticMeta { 9 return { 10 default: schema.default, 11 hasForwardReference: false, 12 nullable: false, 13 readonly: schema.accessScope === 'read', 14 }; 15} 16 17/** 18 * Composes metadata from child results. 19 * 20 * @param children - Results from walking child schemas 21 * @param overrides - Explicit overrides (e.g., from parent schema) 22 */ 23export function composeMeta( 24 children: ReadonlyArray<PydanticResult>, 25 overrides?: Partial<PydanticMeta>, 26): PydanticMeta { 27 return { 28 default: overrides?.default, 29 hasForwardReference: 30 overrides?.hasForwardReference ?? children.some((c) => c.meta.hasForwardReference), 31 nullable: overrides?.nullable ?? children.some((c) => c.meta.nullable), 32 readonly: overrides?.readonly ?? children.some((c) => c.meta.readonly), 33 }; 34} 35 36/** 37 * Merges parent schema metadata with composed child metadata. 38 * 39 * @param parent - The parent schema 40 * @param children - Results from walking child schemas 41 */ 42export function inheritMeta( 43 parent: IR.SchemaObject, 44 children: ReadonlyArray<PydanticResult>, 45): PydanticMeta { 46 return composeMeta(children, { 47 default: parent.default, 48 nullable: false, 49 readonly: parent.accessScope === 'read', 50 }); 51}