47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| var kLogsArgument = /^--logs\s*=\s*(.+?)$/;
 | |
| var kTrimLeft = /^\s+/;
 | |
| var kTrimRight = /\s+$/;
 | |
| var kCamelCase = /[-_\s]+(.)?/g;
 | |
| var logs = findArgvLogs();
 | |
| 
 | |
| function findArgvLogs() {
 | |
|   for (var i = 0; i < process.argv.length; ++i) {
 | |
|     var match = process.argv[i].match(kLogsArgument);
 | |
|     if (match) {
 | |
|       return logsToObject(match[1]);
 | |
|     }
 | |
|   }
 | |
|   return null;
 | |
| }
 | |
| 
 | |
| function logsToObject(logstr) {
 | |
|   return logstr.split(',').reduce(function(obj, key) {
 | |
|     key = camelize(key);
 | |
|     if (key.length > 0) obj[key] = true;
 | |
|     return obj;
 | |
|   }, Object.create(null));
 | |
|   return logs;
 | |
| }
 | |
| 
 | |
| function camelize(str) {
 | |
|   return str.replace(kTrimLeft, '').replace(kTrimRight, '').replace(kCamelCase, function(match, c) {
 | |
|     return c ? c.toUpperCase() : '';
 | |
|   });
 | |
| }
 | |
| 
 | |
| function shouldLog(str) {
 | |
|   if (!logs || logs.quiet) return false;
 | |
|   if (logs.all) return true;
 | |
|   return !!logs[camelize(str)];
 | |
| }
 | |
| 
 | |
| module.exports = shouldLog;
 |