UNPKG

localer

Version:
140 lines (99 loc) 2.97 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.flatKeys = flatKeys; exports.asyncForEach = asyncForEach; exports.pushUnique = pushUnique; exports.readFile = readFile; exports.glob = glob; var _glob = require('glob'); var _glob2 = _interopRequireDefault(_glob); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function flatKeys(object) { var keys = []; var _loop = function _loop(key) { var value = object[key]; if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object' && !(value.hasOwnProperty('one') && value.hasOwnProperty('other'))) { keys.push.apply(keys, _toConsumableArray(flatKeys(value).map(function (_) { return key + '.' + _; }))); } else { keys.push(key); } }; for (var key in object) { _loop(key); } return keys; } function asyncForEach(array, each, resolvedObject) { var _this = array; var i = 0; return new Promise(function (resolve, reject) { if (!_this.length) { resolve(resolvedObject); return; } each(_this[i], i++).then(function next() { if (i >= _this.length) { return resolve(resolvedObject); } return each(_this[i], i++).then(next).catch(reject); }).catch(reject); }); } function pushUnique(array, element) { if (array.indexOf(element) != -1) { return element; } return array.push(element); } function readFile(file) { return new Promise(function (resolve, reject) { _fs2.default.readFile(file, 'utf8', function (err, data) { if (err) { reject(err); return; } resolve(data); }); }); } function glob(mask) { var inputIgnore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var ignore = inputIgnore.slice(); if (Array.isArray(mask)) { var masks = [], files = []; mask.forEach(function (mask) { if (mask.indexOf('!') == 0) { pushUnique(ignore, mask.replace('!', '')); } else { masks.push(mask); } }); return Promise.all(masks.map(function (_) { return glob(_, ignore).then(function (_) { return _.forEach(function (_) { return pushUnique(files, _); }); }); })).then(function () { return files; }); } return new Promise(function (resolve, reject) { (0, _glob2.default)(mask, { ignore: ignore }, function (err, files) { if (err) { reject(err); return; } resolve(files); }); }); }