UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

29 lines (27 loc) 950 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.implementObject = implementObject; var _utils = require("@backland/utils"); var _ObjectType = require("./ObjectType"); var _MetaFieldField = require("./fields/MetaFieldField"); function implementObject(name, definition, ...parents) { let def = (0, _utils.simpleObjectClone)(definition); delete def[_MetaFieldField.objectMetaFieldKey]; const tree = []; parents.forEach(parent => { if (!(0, _ObjectType.isObject)(parent)) { throw new _utils.RuntimeError(`Failed to extend interface. Expected parent to be an Object.`, { parent }); } // @ts-ignore def = parent.clone(el => el.extendObjectDefinition(def).def()); tree.push(parent.nonNullId); }); const object = (0, _ObjectType.createObjectType)(name, def); object.__setMetaData('implements', tree); return object; } //# sourceMappingURL=implementObject.js.map