You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
664 B
34 lines
664 B
'use strict'; |
|
|
|
var toRegex = require('to-regex'); |
|
var regexNot = require('regex-not'); |
|
var cached; |
|
|
|
/** |
|
* Get the last element from `array` |
|
* @param {Array} `array` |
|
* @return {*} |
|
*/ |
|
|
|
exports.last = function(arr) { |
|
return arr[arr.length - 1]; |
|
}; |
|
|
|
/** |
|
* Create and cache regex to use for text nodes |
|
*/ |
|
|
|
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); |
|
} |
|
|
|
return (cached = re); |
|
};
|
|
|