UNPKG

@squiz/json-schema-library

Version:

Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation

18 lines (13 loc) 649 B
import { JSONSchema } from "./types"; export default function resolveRefMerge(schema: JSONSchema, rootSchema: JSONSchema): JSONSchema { if (schema == null || schema.$ref == null) { return schema; } const resolvedSchema = rootSchema.getRef(schema); const mergedSchema = Object.assign({}, resolvedSchema, schema); delete mergedSchema.$ref; // @todo the following might not be safe nor incomplete Object.defineProperty(mergedSchema, "__ref", { enumerable: false, value: schema.__ref }); Object.defineProperty(mergedSchema, "getRoot", { enumerable: false, value: schema.getRoot }); return mergedSchema; }