UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

31 lines (30 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeJsonSchemaObjects = mergeJsonSchemaObjects; const index_1 = require("../index"); const object_util_1 = require("../object/object.util"); /** * Merges s2 into s1 (mutates s1) and returns s1. * Does not mutate s2. * API similar to Object.assign(s1, s2) */ function mergeJsonSchemaObjects(s1, s2) { // Merge `properties` Object.entries(s2.properties).forEach(([k, v]) => { ; s1.properties[k] = v; }); // Merge `patternProperties` Object.entries(s2.patternProperties || {}).forEach(([k, v]) => { ; s1.patternProperties[k] = v; }); s1.propertyNames = s2.propertyNames || s1.propertyNames; s1.minProperties = s2.minProperties ?? s1.minProperties; s1.maxProperties = s2.maxProperties ?? s1.maxProperties; // Merge `required` s1.required.push(...s2.required); s1.required = (0, index_1._uniq)(s1.required).sort(); // `additionalProperties` remains the same return (0, object_util_1._filterNullishValues)(s1, true); }