UNPKG

@strapi/data-transfer

Version:

Data transfer capabilities for Strapi

59 lines (53 loc) 2.03 kB
'use strict'; 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