one-schema
Version:
one-schema object validator
35 lines (34 loc) • 1.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateSequelizeSchema = void 0;
var convertors_1 = __importDefault(require("./convertors"));
function convertFieldToSequelize(Sequelize, field) {
if (!field.settings.type) {
throw new Error("convertFieldToSequelize error: field.settings.type undefined!");
}
var typeConvertor = convertors_1.default[field.settings.type];
if (!convertors_1.default.hasOwnProperty(field.settings.type) ||
typeof typeConvertor !== 'function') {
throw new Error("Missing type '" + field.settings.type + "' for sequelize!");
}
return typeConvertor(Sequelize, field);
}
function generateSequelizeSchema(Sequelize, fieldValidator) {
var fvSchema = fieldValidator.settings.schema;
if (fieldValidator.settings.type !== 'object' || !fvSchema) {
throw new Error('Can not generate schema from fieldValidator unless type is object!');
}
if (fieldValidator.settings.type !== 'object' || !fieldValidator.settings.schema) {
throw new Error('Can not generate schema from fieldValidator!');
}
var sequelizeSchema = {};
Object.keys(fvSchema)
.forEach(function (k) {
sequelizeSchema[k] = convertFieldToSequelize(Sequelize, fvSchema[k]);
});
return sequelizeSchema;
}
exports.generateSequelizeSchema = generateSequelizeSchema;