Sha256: 8e482c70067850425183ae785f19614bb9c788cf22226db62243119e507384c4

Contents?: true

Size: 1.09 KB

Versions: 85

Compression:

Stored size: 1.09 KB

Contents

'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 enclosure = /[\{\[].*[\}\]]$/;
var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;
var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;

/**
 * @param {string} str
 * @param {Object} opts
 * @param {boolean} [opts.flipBackslashes=true]
 * @returns {string}
 */
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 (enclosure.test(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 (isGlob(str) || globby.test(str));

  // remove escape chars and return result
  return str.replace(escaped, '$1');
};

Version data entries

85 entries across 70 versions & 9 rubygems

Version Path
rapid_stack-0.1.1 templates/FrontEnd/node_modules/karma/node_modules/glob-parent/index.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/webpack-dev-server/node_modules/glob-parent/index.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/fast-glob/node_modules/glob-parent/index.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/@ionic/angular-toolkit/node_modules/glob-parent/index.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/webpack-dev-server/node_modules/glob-parent/index.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/karma/node_modules/glob-parent/index.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/@ionic/angular-toolkit/node_modules/glob-parent/index.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.60 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.59 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.58 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.57 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.56 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.55 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.54 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.53 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.52 node_modules/fast-glob/node_modules/glob-parent/index.js
trusty-cms-6.3.1 node_modules/glob-parent/index.js
immosquare-cleaner-0.1.51 node_modules/fast-glob/node_modules/glob-parent/index.js
immosquare-cleaner-0.1.50 node_modules/fast-glob/node_modules/glob-parent/index.js