@backland/schema
Version:
TypeScript schema declaration and validation library with static type inference
41 lines (40 loc) • 1.21 kB
JavaScript
;
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