UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

27 lines (26 loc) 989 B
import { RuntimeError } from '@backland/utils'; import { simpleObjectClone } from '@backland/utils'; import { createObjectType, isObject } from './ObjectType'; import { objectMetaFieldKey } from './fields/MetaFieldField'; export function implementObject(name, definition) { var def = simpleObjectClone(definition); delete def[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(parent => { if (!isObject(parent)) { throw new 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); }); var object = createObjectType(name, def); object.__setMetaData('implements', tree); return object; } //# sourceMappingURL=implementObject.js.map