UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

41 lines (40 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnknownField = void 0; var _utils = require("@backland/utils"); var _FieldType = require("./FieldType"); var _FieldTypeErrors = require("./FieldTypeErrors"); class UnknownField extends _FieldType.FieldType { constructor(def) { super({ def: def, name: 'unknown' }); const { types } = def || {}; this.parse = this.applyParser({ parse: input => { if (input === undefined) { if (this.optional) return input; throw (0, _FieldTypeErrors.createFieldTypeError)('requiredField'); } if (types !== null && types !== void 0 && types.length) { const arr = (Array.isArray(types) ? types : [types]).map(el => el.toLowerCase()); const tn = (0, _utils.getTypeName)(input).toLowerCase(); if (!arr.includes(tn)) { throw new Error(`expected type to be one of -> (${arr.join(', ')}), found "${tn}"`); } } return input; } }); } static create = def => { return new UnknownField(def); }; } exports.UnknownField = UnknownField; //# sourceMappingURL=UnknownField.js.map