@backland/schema
Version:
TypeScript schema declaration and validation library with static type inference
37 lines • 1.16 kB
JavaScript
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