35 lines
		
	
	
		
			664 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			664 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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);
 | |
| };
 |