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.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							103 lines
						
					
					
						
							2.5 KiB
						
					
					
				| var noop = function () { };
 | |
| var path = require('path');
 | |
| const semver = require('semver');
 | |
| var version = process.versions.node.split('.') || [null, null, null];
 | |
| 
 | |
| var utils = (module.exports = {
 | |
|   semver: semver,
 | |
|   satisfies: test => semver.satisfies(process.versions.node, test),
 | |
|   version: {
 | |
|     major: parseInt(version[0] || 0, 10),
 | |
|     minor: parseInt(version[1] || 0, 10),
 | |
|     patch: parseInt(version[2] || 0, 10),
 | |
|   },
 | |
|   clone: require('./clone'),
 | |
|   merge: require('./merge'),
 | |
|   bus: require('./bus'),
 | |
|   isWindows: process.platform === 'win32',
 | |
|   isMac: process.platform === 'darwin',
 | |
|   isLinux: process.platform === 'linux',
 | |
|   isRequired: (function () {
 | |
|     var p = module.parent;
 | |
|     while (p) {
 | |
|       // in electron.js engine it happens
 | |
|       if (!p.filename) {
 | |
|         return true;
 | |
|       }
 | |
|       if (p.filename.indexOf('bin' + path.sep + 'nodemon.js') !== -1) {
 | |
|         return false;
 | |
|       }
 | |
|       p = p.parent;
 | |
|     }
 | |
| 
 | |
|     return true;
 | |
|   })(),
 | |
|   home: process.env.HOME || process.env.HOMEPATH,
 | |
|   quiet: function () {
 | |
|     // nukes the logging
 | |
|     if (!this.debug) {
 | |
|       for (var method in utils.log) {
 | |
|         if (typeof utils.log[method] === 'function') {
 | |
|           utils.log[method] = noop;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   },
 | |
|   reset: function () {
 | |
|     if (!this.debug) {
 | |
|       for (var method in utils.log) {
 | |
|         if (typeof utils.log[method] === 'function') {
 | |
|           delete utils.log[method];
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     this.debug = false;
 | |
|   },
 | |
|   regexpToText: function (t) {
 | |
|     return t
 | |
|       .replace(/\.\*\\./g, '*.')
 | |
|       .replace(/\\{2}/g, '^^')
 | |
|       .replace(/\\/g, '')
 | |
|       .replace(/\^\^/g, '\\');
 | |
|   },
 | |
|   stringify: function (exec, args) {
 | |
|     // serializes an executable string and array of arguments into a string
 | |
|     args = args || [];
 | |
| 
 | |
|     return [exec]
 | |
|       .concat(
 | |
|       args.map(function (arg) {
 | |
|         // if an argument contains a space, we want to show it with quotes
 | |
|         // around it to indicate that it is a single argument
 | |
|         if (arg.length > 0 && arg.indexOf(' ') === -1) {
 | |
|           return arg;
 | |
|         }
 | |
|         // this should correctly escape nested quotes
 | |
|         return JSON.stringify(arg);
 | |
|       })
 | |
|       )
 | |
|       .join(' ')
 | |
|       .trim();
 | |
|   },
 | |
| });
 | |
| 
 | |
| utils.log = require('./log')(utils.isRequired);
 | |
| 
 | |
| Object.defineProperty(utils, 'debug', {
 | |
|   set: function (value) {
 | |
|     this.log.debug = value;
 | |
|   },
 | |
|   get: function () {
 | |
|     return this.log.debug;
 | |
|   },
 | |
| });
 | |
| 
 | |
| Object.defineProperty(utils, 'colours', {
 | |
|   set: function (value) {
 | |
|     this.log.useColours = value;
 | |
|   },
 | |
|   get: function () {
 | |
|     return this.log.useColours;
 | |
|   },
 | |
| });
 |