Sha256: b1f7614c14cd406a2409dfd59628ce5ea06666d017b65a7df12f83b62613c897

Contents?: true

Size: 1.13 KB

Versions: 86

Compression:

Stored size: 1.13 KB

Contents

/*!
 * is-glob <https://github.com/jonschlinkert/is-glob>
 *
 * Copyright (c) 2014-2017, Jon Schlinkert.
 * Released under the MIT License.
 */

var isExtglob = require('is-extglob');
var chars = { '{': '}', '(': ')', '[': ']'};
var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/;
var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/;

module.exports = function isGlob(str, options) {
  if (typeof str !== 'string' || str === '') {
    return false;
  }

  if (isExtglob(str)) {
    return true;
  }

  var regex = strictRegex;
  var match;

  // optionally relax regex
  if (options && options.strict === false) {
    regex = relaxedRegex;
  }

  while ((match = regex.exec(str))) {
    if (match[2]) return true;
    var idx = match.index + match[0].length;

    // if an open bracket/brace/paren is escaped,
    // set the index to the next closing character
    var open = match[1];
    var close = open ? chars[open] : null;
    if (open && close) {
      var n = str.indexOf(close, idx);
      if (n !== -1) {
        idx = n + 1;
      }
    }

    str = str.slice(idx);
  }
  return false;
};

Version data entries

86 entries across 73 versions & 12 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/is-glob/index.js
disco_app-0.18.0 test/dummy/node_modules/is-glob/index.js
disco_app-0.18.2 test/dummy/node_modules/is-glob/index.js
trusty-cms-5.0.7 node_modules/is-glob/index.js
appmap-0.72.2 ./node_modules/is-glob/index.js
trusty-cms-5.0.6 node_modules/is-glob/index.js
appmap-0.72.1 ./node_modules/is-glob/index.js
appmap-0.72.0 ./node_modules/is-glob/index.js
trusty-cms-5.0.5 node_modules/is-glob/index.js
trusty-cms-5.0.4 node_modules/is-glob/index.js
appmap-0.71.0 ./node_modules/is-glob/index.js
disco_app-0.16.1 test/dummy/node_modules/is-glob/index.js
appmap-0.70.2 ./node_modules/is-glob/index.js
appmap-0.70.1 ./node_modules/is-glob/index.js
appmap-0.70.0 ./node_modules/is-glob/index.js
appmap-0.69.0 ./node_modules/is-glob/index.js
appmap-0.68.2 ./node_modules/is-glob/index.js
appmap-0.68.1 ./node_modules/is-glob/index.js
disco_app-0.15.2 test/dummy/node_modules/is-glob/index.js
appmap-0.68.0 ./node_modules/is-glob/index.js