feat: Allow excluding configs by giving part of the config name
parent
724f56f20b
commit
c93546b594
|
@ -1,3 +1,4 @@
|
||||||
|
const { isEmpty } = require('lodash');
|
||||||
const { logMessage, sanitizeConfig, dynamicSort, noLimit } = require('../utils');
|
const { logMessage, sanitizeConfig, dynamicSort, noLimit } = require('../utils');
|
||||||
const difference = require('../utils/getArrayDiff');
|
const difference = require('../utils/getArrayDiff');
|
||||||
|
|
||||||
|
@ -31,7 +32,7 @@ const ConfigType = class ConfigType {
|
||||||
*/
|
*/
|
||||||
importSingle = async (configName, configContent) => {
|
importSingle = async (configName, configContent) => {
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(`${this.configPrefix}.${configName}`);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => `${this.configPrefix}.${configName}`.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
const queryAPI = strapi.query(this.queryString);
|
const queryAPI = strapi.query(this.queryString);
|
||||||
|
@ -134,7 +135,7 @@ const ConfigType = class ConfigType {
|
||||||
const formattedDiff = await strapi.plugin('config-sync').service('main').getFormattedDiff(this.configPrefix);
|
const formattedDiff = await strapi.plugin('config-sync').service('main').getFormattedDiff(this.configPrefix);
|
||||||
|
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(`${configName}`);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => configName.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
const currentConfig = formattedDiff.databaseConfig[configName];
|
const currentConfig = formattedDiff.databaseConfig[configName];
|
||||||
|
@ -160,7 +161,7 @@ const ConfigType = class ConfigType {
|
||||||
|
|
||||||
await Promise.all(Object.values(AllConfig).map(async (config) => {
|
await Promise.all(Object.values(AllConfig).map(async (config) => {
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(`${this.configPrefix}.${config[this.uid]}`);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => `${this.configPrefix}.${config[this.uid]}`.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
const formattedConfig = { ...sanitizeConfig(config) };
|
const formattedConfig = { ...sanitizeConfig(config) };
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const { isEmpty } = require('lodash');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const util = require('util');
|
const util = require('util');
|
||||||
const difference = require('../utils/getObjectDiff');
|
const difference = require('../utils/getObjectDiff');
|
||||||
|
@ -19,7 +20,7 @@ module.exports = () => ({
|
||||||
*/
|
*/
|
||||||
writeConfigFile: async (configType, configName, fileContents) => {
|
writeConfigFile: async (configType, configName, fileContents) => {
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(`${configType}.${configName}`);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => `${configType}.${configName}`.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
// Replace ':' with '#' in filenames for Windows support.
|
// Replace ':' with '#' in filenames for Windows support.
|
||||||
|
@ -54,7 +55,7 @@ module.exports = () => ({
|
||||||
*/
|
*/
|
||||||
deleteConfigFile: async (configName) => {
|
deleteConfigFile: async (configName) => {
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(`${configName}`);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => configName.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
// Replace ':' with '#' in filenames for Windows support.
|
// Replace ':' with '#' in filenames for Windows support.
|
||||||
|
@ -111,7 +112,7 @@ module.exports = () => ({
|
||||||
if (
|
if (
|
||||||
configType && configType !== type
|
configType && configType !== type
|
||||||
|| !strapi.plugin('config-sync').types[type]
|
|| !strapi.plugin('config-sync').types[type]
|
||||||
|| strapi.config.get('plugin.config-sync.excludedConfig').includes(`${type}.${name}`)
|
|| !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => `${type}.${name}`.startsWith(option)))
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -210,7 +211,7 @@ module.exports = () => ({
|
||||||
*/
|
*/
|
||||||
importSingleConfig: async (configName, onSuccess) => {
|
importSingleConfig: async (configName, onSuccess) => {
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(configName);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => configName.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
const type = configName.split('.')[0]; // Grab the first part of the filename.
|
const type = configName.split('.')[0]; // Grab the first part of the filename.
|
||||||
|
@ -236,7 +237,7 @@ module.exports = () => ({
|
||||||
*/
|
*/
|
||||||
exportSingleConfig: async (configName, onSuccess) => {
|
exportSingleConfig: async (configName, onSuccess) => {
|
||||||
// Check if the config should be excluded.
|
// Check if the config should be excluded.
|
||||||
const shouldExclude = strapi.config.get('plugin.config-sync.excludedConfig').includes(configName);
|
const shouldExclude = !isEmpty(strapi.config.get('plugin.config-sync.excludedConfig').filter((option) => configName.startsWith(option)));
|
||||||
if (shouldExclude) return;
|
if (shouldExclude) return;
|
||||||
|
|
||||||
const type = configName.split('.')[0]; // Grab the first part of the filename.
|
const type = configName.split('.')[0]; // Grab the first part of the filename.
|
||||||
|
|
Loading…
Reference in New Issue