UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

37 lines 1.16 kB
import { memoize } from '@backland/utils'; import { isFieldTypeName } from './fields/fieldTypes'; function _parseStringDefinition(typeName) { var t = typeNameFromTemplate(typeName); var isOptional = isOptionalTemplate(typeName); var isList = isListTemplate(typeName); var obj = { type: t }; if (isList) { obj.list = true; } if (isOptional) { obj.optional = true; } return obj; } function _isOptionalTemplate(type) { return !!type.match(/\?$/); } function _isListTemplate(type) { return !!type.match(/]\??$/); } function _typeNameFromTemplate(enhanced) { return enhanced.replace(/[\[\]?, ]/g, ''); } function _isStringFieldDefinition(t) { if (typeof t !== 'string') return false; var field = typeNameFromTemplate(t); return isFieldTypeName(field); } export var parseStringDefinition = memoize(_parseStringDefinition); export var typeNameFromTemplate = memoize(_typeNameFromTemplate); export var isStringFieldDefinition = memoize(_isStringFieldDefinition); export var isListTemplate = memoize(_isListTemplate); export var isOptionalTemplate = memoize(_isOptionalTemplate); //# sourceMappingURL=parseStringDefinition.js.map