UNPKG

npm-upgrade

Version:

Interactive CLI utility to easily update outdated NPM dependencies

26 lines (25 loc) 1.42 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.globToRegexp = globToRegexp; exports.makeFilterFunction = makeFilterFunction; var _partition2 = _interopRequireDefault(require("lodash/fp/partition")); var _compact2 = _interopRequireDefault(require("lodash/fp/compact")); var _split2 = _interopRequireDefault(require("lodash/fp/split")); var _flow2 = _interopRequireDefault(require("lodash/fp/flow")); var _escapeRegExp2 = _interopRequireDefault(require("lodash/escapeRegExp")); function globToRegexp(glob, flags) { const regexp = glob.split(/\*+/).map(_escapeRegExp2.default).join('.*?'); return new RegExp(`^${regexp}$`, flags); } function makeFilterFunction(filterStr = '') { let [excludeFilters, includeFilters] = (0, _flow2.default)((0, _split2.default)(/\s+/), _compact2.default, (0, _partition2.default)(filter => filter[0] === '!'))(filterStr); if (!includeFilters.length) { includeFilters.push('*'); } includeFilters = includeFilters.map(filter => globToRegexp(filter, 'i')).map(filterRegexp => str => filterRegexp.test(str)); excludeFilters = excludeFilters.map(filter => globToRegexp(filter.slice(1), 'i')).map(filterRegexp => str => filterRegexp.test(str)); return str => excludeFilters.every(filter => !filter(str)) && includeFilters.some(filter => filter(str)); }