util: start using path module. remove some functions.

This commit is contained in:
Christopher Jeffrey 2017-06-27 01:23:27 -07:00
parent 8358fa59c6
commit b26b82ab97
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
6 changed files with 33 additions and 65 deletions

View File

@ -9,6 +9,7 @@
'use strict'; 'use strict';
var assert = require('assert'); var assert = require('assert');
var path = require('path');
var EventEmitter = require('events').EventEmitter; var EventEmitter = require('events').EventEmitter;
var util = require('../utils/util'); var util = require('../utils/util');
var co = require('../utils/co'); var co = require('../utils/co');
@ -691,7 +692,7 @@ AuthDB.prototype.readKnown = async function readKnown() {
if (!this.prefix) if (!this.prefix)
return; return;
file = this.prefix + '/known-peers'; file = path.join(this.prefix, 'known-peers');
try { try {
text = await fs.readFile(file, 'utf8'); text = await fs.readFile(file, 'utf8');
@ -769,7 +770,7 @@ AuthDB.prototype.readAuth = async function readAuth() {
if (!this.prefix) if (!this.prefix)
return; return;
file = this.prefix + '/authorized-peers'; file = path.join(this.prefix, 'authorized-peers');
try { try {
text = await fs.readFile(file, 'utf8'); text = await fs.readFile(file, 'utf8');

View File

@ -7,6 +7,7 @@
'use strict'; 'use strict';
var assert = require('assert'); var assert = require('assert');
var path = require('path');
var util = require('../utils/util'); var util = require('../utils/util');
var IP = require('../utils/ip'); var IP = require('../utils/ip');
var co = require('../utils/co'); var co = require('../utils/co');
@ -1634,7 +1635,7 @@ HostListOptions.prototype.fromOptions = function fromOptions(options) {
if (options.prefix != null) { if (options.prefix != null) {
assert(typeof options.prefix === 'string'); assert(typeof options.prefix === 'string');
this.prefix = options.prefix; this.prefix = options.prefix;
this.filename = this.prefix + '/hosts.json'; this.filename = path.join(this.prefix, 'hosts.json');
} }
if (options.filename != null) { if (options.filename != null) {

View File

@ -7,9 +7,10 @@
'use strict'; 'use strict';
var assert = require('assert'); var assert = require('assert');
var path = require('path');
var os = require('os');
var fs = require('../utils/fs'); var fs = require('../utils/fs');
var util = require('../utils/util'); var util = require('../utils/util');
var os = require('os');
var HOME = os.homedir(); var HOME = os.homedir();
/** /**
@ -24,10 +25,11 @@ function Config(module) {
return new Config(module); return new Config(module);
assert(typeof module === 'string'); assert(typeof module === 'string');
assert(module.length > 0);
this.module = module; this.module = module;
this.network = 'main'; this.network = 'main';
this.prefix = HOME + '/.' + module; this.prefix = path.join(HOME, '.' + module);
this.options = Object.create(null); this.options = Object.create(null);
this.data = Object.create(null); this.data = Object.create(null);
@ -522,7 +524,7 @@ Config.prototype.func = function func(key, fallback) {
* @returns {String|null} * @returns {String|null}
*/ */
Config.prototype.path = function path(key, fallback) { Config.prototype.path = function _path(key, fallback) {
var value = this.str(key); var value = this.str(key);
if (fallback === undefined) if (fallback === undefined)
@ -533,16 +535,16 @@ Config.prototype.path = function path(key, fallback) {
switch (value[0]) { switch (value[0]) {
case '~': // home dir case '~': // home dir
value = HOME + value.substring(1); value = path.join(HOME, value.substring(1));
break; break;
case '@': // prefix case '@': // prefix
value = this.prefix + value.substring(1); value = path.join(this.prefix, value.substring(1));
break; break;
default: // cwd default: // cwd
break; break;
} }
return util.normalize(value); return path.normalize(value);
}; };
/** /**
@ -593,20 +595,20 @@ Config.prototype.getPrefix = function getPrefix() {
if (prefix) { if (prefix) {
if (prefix[0] === '~') if (prefix[0] === '~')
prefix = HOME + prefix.substring(1); prefix = path.join(HOME, prefix.substring(1));
return prefix; return prefix;
} }
prefix = HOME + '/.' + this.module; prefix = path.join(HOME, '.' + this.module);
network = this.str('network'); network = this.str('network');
if (network) { if (network) {
assert(isAlpha(network), 'Bad network.'); assert(isAlpha(network), 'Bad network.');
if (network !== 'main') if (network !== 'main')
prefix += '/' + network; prefix = path.join(prefix, network);
} }
return util.normalize(prefix); return path.normalize(prefix);
}; };
/** /**
@ -617,12 +619,12 @@ Config.prototype.getPrefix = function getPrefix() {
*/ */
Config.prototype.getFile = function getFile(file) { Config.prototype.getFile = function getFile(file) {
var path = this.str('config'); var name = this.str('config');
if (path) if (name)
return path; return name;
return this.prefix + '/' + file; return path.join(this.prefix, file);
}; };
/** /**
@ -644,7 +646,7 @@ Config.prototype.ensure = function ensure() {
*/ */
Config.prototype.location = function location(file) { Config.prototype.location = function location(file) {
return this.prefix + '/' + file; return path.join(this.prefix, file);
}; };
/** /**

View File

@ -12,6 +12,7 @@
*/ */
var BN = require('bn.js'); var BN = require('bn.js');
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
var encoding = exports; var encoding = exports;
/** /**
@ -352,7 +353,7 @@ encoding._write64 = function _write64(dst, num, off, be) {
num -= 1; num -= 1;
} }
enforce(num <= Number.MAX_SAFE_INTEGER, off, 'Number exceeds 2^53-1'); enforce(num <= MAX_SAFE_INTEGER, off, 'Number exceeds 2^53-1');
lo = num % 0x100000000; lo = num % 0x100000000;
hi = (num - lo) / 0x100000000; hi = (num - lo) / 0x100000000;

View File

@ -7,6 +7,7 @@
'use strict'; 'use strict';
var fs = require('fs'); var fs = require('fs');
var path = require('path');
var co = require('./co'); var co = require('./co');
exports.access = co.promisify(fs.access); exports.access = co.promisify(fs.access);
@ -87,11 +88,11 @@ exports.writeFileSync = fs.writeFileSync;
exports.mkdirpSync = function mkdirpSync(dir, mode) { exports.mkdirpSync = function mkdirpSync(dir, mode) {
var data = getParts(dir); var data = getParts(dir);
var parts = data.parts; var parts = data.parts;
var path = data.path; var path = data.root;
var i, stat; var i, stat;
if (mode == null) if (mode == null)
mode = 488; // 0755 mode = 0o750;
for (i = 0; i < parts.length; i++) { for (i = 0; i < parts.length; i++) {
path += parts[i]; path += parts[i];
@ -114,11 +115,11 @@ exports.mkdirpSync = function mkdirpSync(dir, mode) {
exports.mkdirp = async function mkdirp(dir, mode) { exports.mkdirp = async function mkdirp(dir, mode) {
var data = getParts(dir); var data = getParts(dir);
var parts = data.parts; var parts = data.parts;
var path = data.path; var path = data.root;
var i, stat; var i, stat;
if (mode == null) if (mode == null)
mode = 488; // 0755 mode = 0o750;
for (i = 0; i < parts.length; i++) { for (i = 0; i < parts.length; i++) {
path += parts[i]; path += parts[i];
@ -139,28 +140,28 @@ exports.mkdirp = async function mkdirp(dir, mode) {
}; };
function getParts(path) { function getParts(path) {
var root = '';
var parts; var parts;
path = path.replace(/\\/g, '/'); path = path.replace(/\\/g, '/');
path = path.replace(/(^|\/)\.\//, '$1'); path = path.replace(/(^|\/)\.\//, '$1');
path = path.replace(/\/+\.?$/, ''); path = path.replace(/\/+\.?$/, '');
parts = path.split(/\/+/); parts = path.split(/\/+/);
path = '';
if (process.platform === 'win32') { if (process.platform === 'win32') {
if (parts[0].indexOf(':') !== -1) if (parts[0].indexOf(':') !== -1)
path = parts.shift() + '/'; root = parts.shift() + '/';
} }
if (parts.length > 0) { if (parts.length > 0) {
if (parts[0].length === 0) { if (parts[0].length === 0) {
parts.shift(); parts.shift();
path = '/'; root = '/';
} }
} }
return { return {
path: path, root: root,
parts: parts parts: parts
}; };
} }

View File

@ -792,26 +792,6 @@ util.binaryRemove = function binaryRemove(items, item, compare) {
return true; return true;
}; };
/**
* Normalize a path.
* @param {String} path
* @param {Boolean?} dirname
*/
util.normalize = function normalize(path, dirname) {
var parts;
path = path.replace(/\\/g, '/');
path = path.replace(/(^|\/)\.\//, '$1');
path = path.replace(/\/+\.?$/, '');
parts = path.split(/\/+/);
if (dirname)
parts.pop();
return parts.join('/');
};
/** /**
* Ensure hidden-class mode for object. * Ensure hidden-class mode for object.
* @param {Object} obj * @param {Object} obj
@ -850,24 +830,6 @@ if (!''.startsWith) {
}; };
} }
/**
* Promisify a function.
* @param {Function} func
* @returns {Function}
*/
util.promisify = function promisify(func) {
return function() {
var result;
try {
result = func.apply(this, arguments);
} catch (e) {
return Promise.reject(e);
}
return Promise.resolve(result);
};
};
/** /**
* Get memory usage info. * Get memory usage info.
* @returns {Object} * @returns {Object}