forest-express-sequelize
Version:
Official Express/Sequelize Liana for Forest
40 lines (39 loc) • 1.27 kB
JavaScript
require("core-js/modules/es.regexp.exec.js");
const {
SchemaUtils
} = require('forest-express');
const semver = require('semver');
const REGEX_VERSION = /(\d+\.)?(\d+\.)?(\*|\d+)/;
const getVersion = function (sequelize) {
const version = sequelize.version.match(REGEX_VERSION);
if (version && version[0]) {
return version[0];
}
return null;
};
const isVersionLessThan = function (sequelize, target) {
try {
return semver.lt(getVersion(sequelize), target);
} catch (error) {
return true;
}
};
const findRecord = function (model, recordId, options) {
if (model.findByPk) {
return model.findByPk(recordId, options);
}
return model.findById(recordId, options);
};
const getColumnName = function (schema, fieldName) {
const schemaField = SchemaUtils.getField(schema, fieldName);
return schemaField && schemaField.columnName ? schemaField.columnName : fieldName;
};
const isUUID = function (DataTypes, fieldType) {
return fieldType instanceof DataTypes.UUID || fieldType instanceof DataTypes.UUIDV1 || fieldType instanceof DataTypes.UUIDV4;
};
exports.getVersion = getVersion;
exports.isVersionLessThan = isVersionLessThan;
exports.findRecord = findRecord;
exports.getColumnName = getColumnName;
exports.isUUID = isUUID;
;