1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/src/lib/services/state-util.js

35 lines
880 B
JavaScript
Raw Normal View History

const fs = require('fs');
const mime = require('mime');
const YAML = require('js-yaml');
const readFile = file =>
new Promise((resolve, reject) =>
fs.readFile(file, (err, v) => (err ? reject(err) : resolve(v))),
);
const parseFile = (file, data) =>
mime.getType(file) === 'text/yaml' ? YAML.safeLoad(data) : JSON.parse(data);
const filterExisting = (keepExisting, existingArray = []) => item => {
if (keepExisting) {
const found = existingArray.find(t => t.name === item.name);
return !found;
}
return true;
};
const filterEqual = (existingArray = []) => item => {
const toggle = existingArray.find(t => t.name === item.name);
if (toggle) {
return JSON.stringify(toggle) !== JSON.stringify(item);
}
return true;
};
module.exports = {
readFile,
parseFile,
filterExisting,
filterEqual,
};