expand-brackets
Advanced tools
Comparing version 2.1.1 to 2.1.2
@@ -5,3 +5,2 @@ 'use strict'; | ||
var define = require('define-property'); | ||
var cache = {}; | ||
@@ -13,3 +12,3 @@ /** | ||
var TEXT_REGEX = '(\\[(?=.*\\])|\\])+'; | ||
var not = utils.createRegex(TEXT_REGEX, cache); | ||
var not = utils.createRegex(TEXT_REGEX); | ||
@@ -85,3 +84,4 @@ /** | ||
var last = utils.last(prev.nodes); | ||
if (last.type === 'bracket.open') { | ||
if (last.type === 'bracket.open' || this.isInside('bracket')) { | ||
open.val = '\\' + open.val; | ||
open.type = 'bracket.inner'; | ||
@@ -122,10 +122,14 @@ open.escaped = true; | ||
if (val === '\\\\') { | ||
return node; | ||
} | ||
var first = val.charAt(0); | ||
var last = val.slice(-1); | ||
if (val === '[' || val === ']') { | ||
node.escaped = true; | ||
if (first === '!') { | ||
val = '^' + val.slice(1); | ||
} | ||
if ((val === '^' || val === '!') && next === ']') { | ||
if (last === '\\' || (val === '^' && next === ']')) { | ||
val += this.input[0]; | ||
@@ -135,10 +139,2 @@ this.consume(1); | ||
if (last === '\\') { | ||
val += this.input[0]; | ||
this.consume(1); | ||
} | ||
if (first === '!') { | ||
val = '^' + val.slice(1); | ||
} | ||
node.val = val; | ||
@@ -145,0 +141,0 @@ return node; |
'use strict'; | ||
var regex = require('regex-not'); | ||
var toRegex = require('to-regex'); | ||
var regexNot = require('regex-not'); | ||
var cached; | ||
@@ -16,13 +18,18 @@ /** | ||
/** | ||
* Create the regex to use for matching text | ||
* Create and cache regex to use for text nodes | ||
*/ | ||
exports.createRegex = function(str, cache) { | ||
if (cache.hasOwnProperty(str)) { | ||
return cache[str]; | ||
exports.createRegex = function(pattern, include) { | ||
if (cached) return cached; | ||
var opts = {contains: true, strictClose: false}; | ||
var not = regexNot.create(pattern, opts); | ||
var re; | ||
if (typeof include === 'string') { | ||
re = toRegex('^(?:' + include + '|' + not + ')', opts); | ||
} else { | ||
re = toRegex(not, opts); | ||
} | ||
var opts = {contains: true, strictClose: false}; | ||
var re = regex(str, opts); | ||
cache[str] = re; | ||
return re; | ||
return (cached = re); | ||
}; |
{ | ||
"name": "expand-brackets", | ||
"description": "Expand POSIX bracket expressions (character classes) in glob patterns.", | ||
"version": "2.1.1", | ||
"version": "2.1.2", | ||
"homepage": "https://github.com/jonschlinkert/expand-brackets", | ||
@@ -6,0 +6,0 @@ "author": "Jon Schlinkert (https://github.com/jonschlinkert)", |
@@ -1,2 +0,2 @@ | ||
# expand-brackets [![NPM version](https://img.shields.io/npm/v/expand-brackets.svg?style=flat)](https://www.npmjs.com/package/expand-brackets) [![NPM downloads](https://img.shields.io/npm/dm/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![Build Status](https://img.shields.io/travis/jonschlinkert/expand-brackets.svg?style=flat)](https://travis-ci.org/jonschlinkert/expand-brackets) | ||
# expand-brackets [![NPM version](https://img.shields.io/npm/v/expand-brackets.svg?style=flat)](https://www.npmjs.com/package/expand-brackets) [![NPM monthly downloads](https://img.shields.io/npm/dm/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![NPM total downloads](https://img.shields.io/npm/dt/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/expand-brackets.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/expand-brackets) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/expand-brackets.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/expand-brackets) | ||
@@ -265,3 +265,3 @@ > Expand POSIX bracket expressions (character classes) in glob patterns. | ||
| --- | --- | | ||
| 47 | [jonschlinkert](https://github.com/jonschlinkert) | | ||
| 60 | [jonschlinkert](https://github.com/jonschlinkert) | | ||
| 2 | [MartinKolarik](https://github.com/MartinKolarik) | | ||
@@ -303,2 +303,2 @@ | 2 | [es128](https://github.com/es128) | | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 16, 2016._ | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 20, 2016._ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
24967
425