UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

98 lines 4.36 kB
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } import { memoize } from '@backland/utils'; import { AliasField } from './AliasField'; import { AnyField } from './AnyField'; import { ArrayField } from './ArrayField'; import { BooleanField } from './BooleanField'; import { CursorField } from './CursorField'; import { DateField } from './DateField'; import { EmailField } from './EmailField'; import { EnumField } from './EnumField'; import { FloatField } from './FloatField'; import { IDField } from './IDField'; import { IntField } from './IntField'; // import { ListField } from './ListField'; import { LiteralField } from './LiteralField'; import { MetaField } from './MetaFieldField'; import { NullField } from './NullField'; import { ObjectField } from './ObjectField'; import { PhoneField } from './PhoneField'; import { RecordField } from './RecordField'; import { StringField } from './StringField'; import { UlidField } from './UlidField'; import { UndefinedField } from './UndefinedField'; import { UnionField } from './UnionField'; import { UnknownField } from './UnknownField'; export * from './AnyField'; export * from './BooleanField'; export * from './CursorField'; export * from './DateField'; export * from './EmailField'; export * from './EnumField'; export * from './FloatField'; export * from './IDField'; export * from './IntField'; // export * from './ListField'; export * from './LiteralField'; export * from './MetaFieldField'; export * from './NullField'; export * from './ObjectField'; export * from './RecordField'; export * from './StringField'; export * from './UlidField'; export * from './UndefinedField'; export * from './UnionField'; export * from './UnknownField'; export * from './AliasField'; function createConstructors(input) { var res = Object.create(null); Object.entries(input).forEach(_ref => { var [k, val] = _ref; return res[k] = val; }); Object.freeze(res); return res; } export var types = createConstructors({ ID: IDField, alias: AliasField, any: AnyField, array: ArrayField, boolean: BooleanField, cursor: CursorField, date: DateField, email: EmailField, enum: EnumField, float: FloatField, int: IntField, literal: LiteralField, meta: MetaField, null: NullField, object: ObjectField, phone: PhoneField, record: RecordField, string: StringField, ulid: UlidField, undefined: UndefinedField, union: UnionField, unknown: UnknownField }); export var create = Object.entries(types).reduce( // @ts-ignore (acc, _ref2) => { var [key, { create }] = _ref2; return _objectSpread(_objectSpread({}, acc), {}, { [key]: create }); }, {}); function _isFieldTypeName(t) { return typeof t === 'string' && types[t]; } export var isFieldTypeName = memoize(_isFieldTypeName); //# sourceMappingURL=fieldTypes.js.map