/
opt
/
canhelp
/
node_modules
/
glob-parent
/
/opt/canhelp/node_modules/glob-parent
mkdir
upload
Name
Size
Mode
Actions
index.js
1614
0644
edit
dl
rm
LICENSE
857
0644
edit
dl
rm
package.json
1050
0644
edit
dl
rm
README.md
4198
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/glob-parent/index.js
(1614B)
'use strict'; var isGlob = require('is-glob'); var pathPosixDirname = require('path').posix.dirname; var isWin32 = require('os').platform() === 'win32'; var slash = '/'; var backslash = /\\/g; var escaped = /\\([!*?|[\](){}])/g; /** * @param {string} str * @param {Object} opts * @param {boolean} [opts.flipBackslashes=true] */ module.exports = function globParent(str, opts) { var options = Object.assign({ flipBackslashes: true }, opts); // flip windows path separators if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { str = str.replace(backslash, slash); } // special case for strings ending in enclosure containing path separator if (isEnclosure(str)) { str += slash; } // preserves full path in case of trailing path separator str += 'a'; // remove path parts that are globby do { str = pathPosixDirname(str); } while (isGlobby(str)); // remove escape chars and return result return str.replace(escaped, '$1'); }; function isEnclosure(str) { var lastChar = str.slice(-1); var enclosureStart; switch (lastChar) { case '}': enclosureStart = '{'; break; case ']': enclosureStart = '['; break; default: return false; } var foundIndex = str.indexOf(enclosureStart); if (foundIndex < 0) { return false; } return str.slice(foundIndex + 1, -1).includes(slash); } function isGlobby(str) { if (/\([^()]+$/.test(str)) { return true; } if (str[0] === '{' || str[0] === '[') { return true; } if (/[^\\][{[]/.test(str)) { return true; } return isGlob(str); }
Save
cmd:
run