@strapi/data-transfer
Version:
Data transfer capabilities for Strapi
59 lines (53 loc) • 2.03 kB
JavaScript
;
var stream = require('stream');
var fp = require('lodash/fp');
var chalk = require('chalk');
var providers = require('../../../../../errors/providers.js');
var projectSettingsLogos = require('../../../../utils/project-settings-logos.js');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
const omitInvalidCreationAttributes = fp.omit([
'id'
]);
const restoreCoreStore = async (strapi, values)=>{
const data = omitInvalidCreationAttributes(values);
const row = await projectSettingsLogos.restoreProjectSettingsRow(strapi, data);
return strapi.db.query('strapi::core-store').create({
data: {
...row,
value: JSON.stringify(row.value)
}
});
};
const restoreWebhooks = async (strapi, values)=>{
const data = omitInvalidCreationAttributes(values);
return strapi.db.query('strapi::webhook').create({
data
});
};
const restoreConfigs = async (strapi, config)=>{
if (config.type === 'core-store') {
return restoreCoreStore(strapi, config.value);
}
if (config.type === 'webhook') {
return restoreWebhooks(strapi, config.value);
}
};
const createConfigurationWriteStream = async (strapi, transaction)=>{
return new stream.Writable({
objectMode: true,
async write (config, _encoding, callback) {
await transaction?.attach(async ()=>{
try {
await restoreConfigs(strapi, config);
} catch (error) {
return callback(new providers.ProviderTransferError(`Failed to import ${chalk__default.default.yellowBright(config.type)} (${chalk__default.default.greenBright(config.value.id)}`));
}
callback();
});
}
});
};
exports.createConfigurationWriteStream = createConfigurationWriteStream;
exports.restoreConfigs = restoreConfigs;
//# sourceMappingURL=configuration.js.map