CoolFace
Apppublic

opusdev/vector-similarity-api

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes
index.js43 linesDownload Raw Back to glob-parent
1'use strict';2 3var isGlob = require('is-glob');4var pathPosixDirname = require('path').posix.dirname;5var isWin32 = require('os').platform() === 'win32';6 7var slash = '/';8var backslash = /\\/g;9var enclosure = /[\{\[].*[\}\]]$/;10var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;11var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;12 13/**14 * @param {string} str15 * @param {Object} opts16 * @param {boolean} [opts.flipBackslashes=true]17 * @returns {string}18 */19module.exports = function globParent(str, opts) {20  var options = Object.assign({ flipBackslashes: true }, opts);21 22  // flip windows path separators23  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {24    str = str.replace(backslash, slash);25  }26 27  // special case for strings ending in enclosure containing path separator28  if (enclosure.test(str)) {29    str += slash;30  }31 32  // preserves full path in case of trailing path separator33  str += 'a';34 35  // remove path parts that are globby36  do {37    str = pathPosixDirname(str);38  } while (isGlob(str) || globby.test(str));39 40  // remove escape chars and return result41  return str.replace(escaped, '$1');42};43