UNPKG

flipr-etcd-seed

Version:

Upload flipr config from yaml files to Etcd. Also handles validation.

22 lines (19 loc) 706 B
'use strict'; var _ = require('lodash'); var debug = require('debug')('flipr-etcd-seed'); var util = require('util'); module.exports = ensureKeysAreUnique; function ensureKeysAreUnique(dir, configs, cb) { var mergedConfigs = []; mergedConfigs = mergedConfigs.concat.apply(mergedConfigs, configs); var allKeys = _(mergedConfigs) .reduce(function(result, item){ return result.concat(_.keys(item)); }, []); debug('All keys for %s: %s', dir, allKeys); var uniqueKeys = _.uniq(allKeys); debug('Unique keys for %s: %s', dir, uniqueKeys); if(allKeys.length !== uniqueKeys.length) return cb(new Error(util.format('Found duplicate keys in %s', dir))); cb(null, mergedConfigs); }