mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			984 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			984 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const fs = require('fs');
 | |
| const mime = require('mime');
 | |
| const YAML = require('js-yaml');
 | |
| 
 | |
| const readFile = file => {
 | |
|     return new Promise((resolve, reject) =>
 | |
|         fs.readFile(file, (err, v) => (err ? reject(err) : resolve(v))),
 | |
|     );
 | |
| };
 | |
| 
 | |
| const parseFile = (file, data) => {
 | |
|     return mime.getType(file) === 'text/yaml'
 | |
|         ? YAML.safeLoad(data)
 | |
|         : JSON.parse(data);
 | |
| };
 | |
| 
 | |
| const filterExisitng = (keepExisting, exitingArray) => {
 | |
|     return item => {
 | |
|         if (keepExisting) {
 | |
|             const found = exitingArray.find(t => t.name === item.name);
 | |
|             return !found;
 | |
|         }
 | |
|         return true;
 | |
|     };
 | |
| };
 | |
| 
 | |
| const filterEqual = exitingArray => {
 | |
|     return item => {
 | |
|         const toggle = exitingArray.find(t => t.name === item.name);
 | |
|         if (toggle) {
 | |
|             return JSON.stringify(toggle) !== JSON.stringify(item);
 | |
|         }
 | |
|         return true;
 | |
|     };
 | |
| };
 | |
| 
 | |
| module.exports = {
 | |
|     readFile,
 | |
|     parseFile,
 | |
|     filterExisitng,
 | |
|     filterEqual,
 | |
| };
 |