UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

34 lines (32 loc) 1.14 kB
"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) { var def = (0, _utils.simpleObjectClone)(definition); delete def[_MetaFieldField.objectMetaFieldKey]; var tree = []; for (var _len = arguments.length, parents = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { parents[_key - 2] = arguments[_key]; } parents.forEach(function (parent) { if (!(0, _ObjectType.isObject)(parent)) { throw new _utils.RuntimeError("Failed to extend interface. Expected parent to be an Object.", { parent: parent }); } // @ts-ignore def = parent.clone(function (el) { return el.extendObjectDefinition(def).def(); }); tree.push(parent.nonNullId); }); var object = (0, _ObjectType.createObjectType)(name, def); object.__setMetaData('implements', tree); return object; } //# sourceMappingURL=implementObject.js.map