56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
"use strict";
|
|
|
|
var _path = _interopRequireDefault(require("path"));
|
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
var _index = _interopRequireDefault(require("./index"));
|
|
var _process = _interopRequireDefault(require("process"));
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
const storage = {
|
|
migration: 'sequelize',
|
|
seeder: 'none'
|
|
};
|
|
const storageTableName = {
|
|
migration: 'SequelizeMeta',
|
|
seeder: 'SequelizeData'
|
|
};
|
|
const storageJsonName = {
|
|
migration: 'sequelize-meta.json',
|
|
seeder: 'sequelize-data.json'
|
|
};
|
|
let timestampsDefault = false;
|
|
module.exports = {
|
|
getStorageOption(property, fallback) {
|
|
return _index.default.config.readConfig()[property] || fallback;
|
|
},
|
|
getStorage(type) {
|
|
return this.getStorageOption(type + 'Storage', storage[type]);
|
|
},
|
|
getStoragePath(type) {
|
|
const fallbackPath = _path.default.join(_process.default.cwd(), storageJsonName[type]);
|
|
return this.getStorageOption(type + 'StoragePath', fallbackPath);
|
|
},
|
|
getTableName(type) {
|
|
return this.getStorageOption(type + 'StorageTableName', storageTableName[type]);
|
|
},
|
|
getSchema(type) {
|
|
return this.getStorageOption(type + 'StorageTableSchema', undefined);
|
|
},
|
|
enableTimestamps() {
|
|
timestampsDefault = true;
|
|
},
|
|
getTimestamps(type) {
|
|
return this.getStorageOption(type + 'Timestamps', timestampsDefault);
|
|
},
|
|
getStorageOptions(type, extraOptions) {
|
|
const options = {};
|
|
if (this.getStorage(type) === 'json') {
|
|
options.path = this.getStoragePath(type);
|
|
} else if (this.getStorage(type) === 'sequelize') {
|
|
options.tableName = this.getTableName(type);
|
|
options.schema = this.getSchema(type);
|
|
options.timestamps = this.getTimestamps(type);
|
|
}
|
|
_lodash.default.assign(options, extraOptions);
|
|
return options;
|
|
}
|
|
}; |