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
			| 
											3 years ago
										 | 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; | ||
|  |   }, | ||
|  | }); |