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.
		
		
		
		
			
				
					52 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					52 lines
				
				1.4 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const {
							 | 
						||
| 
								 | 
							
								  inspect
							 | 
						||
| 
								 | 
							
								} = require('util');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const _ = require('lodash');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
							 | 
						||
| 
								 | 
							
								exports.createAssetsFilter = createAssetsFilter;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createAssetsFilter(excludePatterns) {
							 | 
						||
| 
								 | 
							
								  const excludeFunctions = _(excludePatterns).castArray().compact().map(pattern => {
							 | 
						||
| 
								 | 
							
								    if (typeof pattern === 'string') {
							 | 
						||
| 
								 | 
							
								      pattern = new RegExp(pattern, 'u');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (_.isRegExp(pattern)) {
							 | 
						||
| 
								 | 
							
								      return asset => pattern.test(asset);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!_.isFunction(pattern)) {
							 | 
						||
| 
								 | 
							
								      throw new TypeError(`Pattern should be either string, RegExp or a function, but "${inspect(pattern, {
							 | 
						||
| 
								 | 
							
								        depth: 0
							 | 
						||
| 
								 | 
							
								      })}" got.`);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return pattern;
							 | 
						||
| 
								 | 
							
								  }).value();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (excludeFunctions.length) {
							 | 
						||
| 
								 | 
							
								    return asset => _.every(excludeFunctions, fn => fn(asset) !== true);
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    return () => true;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @desc get string of current time
							 | 
						||
| 
								 | 
							
								 * format: dd/MMM HH:mm
							 | 
						||
| 
								 | 
							
								 * */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.defaultTitle = function () {
							 | 
						||
| 
								 | 
							
								  const time = new Date();
							 | 
						||
| 
								 | 
							
								  const year = time.getFullYear();
							 | 
						||
| 
								 | 
							
								  const month = MONTHS[time.getMonth()];
							 | 
						||
| 
								 | 
							
								  const day = time.getDate();
							 | 
						||
| 
								 | 
							
								  const hour = `0${time.getHours()}`.slice(-2);
							 | 
						||
| 
								 | 
							
								  const minute = `0${time.getMinutes()}`.slice(-2);
							 | 
						||
| 
								 | 
							
								  const currentTime = `${day} ${month} ${year} at ${hour}:${minute}`;
							 | 
						||
| 
								 | 
							
								  return `${process.env.npm_package_name || 'Webpack Bundle Analyzer'} [${currentTime}]`;
							 | 
						||
| 
								 | 
							
								};
							 |