one-schema
Version:
one-schema object validator
45 lines (44 loc) • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var int32_1 = __importDefault(require("./int32"));
var string_1 = __importDefault(require("./string"));
var float64_1 = __importDefault(require("./float64"));
function boolToSequelize(Sequelize, _field) {
return {
type: Sequelize.BOOLEAN,
};
}
function objectToSequelize(Sequelize, _field) {
return {
type: Sequelize.JSON,
};
}
var SEQUELIZE_TYPE_MAP = {
int32: int32_1.default,
string: string_1.default,
bool: boolToSequelize,
float64: float64_1.default,
object: objectToSequelize,
array: arrayToSequelize,
};
function arrayToSequelize(Sequelize, field) {
if (field.settings.type !== 'array') {
throw new Error("float64ToSequelize called on field with type: " + field.settings.type);
}
var element = field.settings.arrayOf;
if (!element) {
throw new Error("Cannot convert array field to sequelize because the arrayOf schema is not defined for the array field");
}
var elementType = element.settings.type;
if (!elementType) {
throw new Error("Cannot convert array field to sequelize because the arrayOf schema's type is not defined for the array field");
}
var convertedType = SEQUELIZE_TYPE_MAP[elementType](Sequelize, element).type;
return {
type: Sequelize.ARRAY(convertedType),
};
}
exports.default = SEQUELIZE_TYPE_MAP;