UNPKG

fs-finder-updated

Version:
84 lines (72 loc) 2.33 kB
// Generated by CoffeeScript 2.7.0 (function() { var Helpers, escape, path; escape = require('escape-regexp'); path = require('path'); Helpers = (function() { class Helpers { static parseDirectory(_path) { var asterisk, mask, regexp, splitter; mask = null; asterisk = _path.indexOf('*'); regexp = _path.indexOf('<'); if (asterisk !== -1 || regexp !== -1) { if (asterisk === -1 || (asterisk !== -1 && regexp !== -1 && asterisk > regexp)) { splitter = regexp; } else if (regexp === -1 || (regexp !== -1 && asterisk !== -1 && asterisk <= regexp)) { splitter = asterisk; } mask = _path.substr(splitter); _path = _path.substr(0, splitter); } return { directory: _path, mask: mask }; } static normalizePattern(pattern) { var i, j, len, part, parts, partsResult, replacement; if (pattern === null) { return null; } if (pattern === '*') { return null; } pattern = pattern.replace(/\*/g, Helpers.ASTERISK_PATTERN); parts = pattern.match(/<((?!(<|>)).)*>/g); if (parts !== null) { partsResult = {}; for (i = j = 0, len = parts.length; j < len; i = ++j) { part = parts[i]; partsResult['__<<' + i + '>>__'] = part.replace(/^<(.*)>$/, '$1'); pattern = pattern.replace(part, '__<<' + i + '>>__'); } pattern = escape(pattern); for (replacement in partsResult) { part = partsResult[replacement]; pattern = pattern.replace(replacement, part); } } else { pattern = escape(pattern); } return pattern; } static expandPath(_path, isFile = false) { var current, result; if (isFile) { _path = path.dirname(_path); } current = _path; result = [current]; while (current !== '/') { result.push(path.dirname(current)); current = path.dirname(current); } return result; } }; Helpers.ASTERISK_PATTERN = '<[0-9a-zA-Z/.-_ ]+>'; return Helpers; }).call(this); module.exports = Helpers; }).call(this);