diff --git a/browser/server.js b/browser/server.js index 823beffa..3322d878 100644 --- a/browser/server.js +++ b/browser/server.js @@ -1,7 +1,7 @@ 'use strict'; const bweb = require('bweb'); -const fs = require('../lib/utils/fs'); +const fs = require('bfile'); const WSProxy = require('./wsproxy'); const index = fs.readFileSync(`${__dirname}/index.html`); diff --git a/lib/net/bip150.js b/lib/net/bip150.js index 4a10036b..dcbf7278 100644 --- a/lib/net/bip150.js +++ b/lib/net/bip150.js @@ -11,6 +11,7 @@ const assert = require('assert'); const path = require('path'); const EventEmitter = require('events'); +const fs = require('bfile'); const co = require('../utils/co'); const digest = require('bcrypto/lib/digest'); const random = require('bcrypto/lib/random'); @@ -22,7 +23,6 @@ const base58 = require('../utils/base58'); const encoding = require('../utils/encoding'); const IP = require('../utils/ip'); const dns = require('./dns'); -const fs = require('../utils/fs'); const Logger = require('../node/logger'); /** diff --git a/lib/net/hostlist.js b/lib/net/hostlist.js index 1029fbff..d3973e22 100644 --- a/lib/net/hostlist.js +++ b/lib/net/hostlist.js @@ -8,6 +8,7 @@ const assert = require('assert'); const path = require('path'); +const fs = require('bfile'); const util = require('../utils/util'); const IP = require('../utils/ip'); const co = require('../utils/co'); @@ -19,7 +20,6 @@ const common = require('./common'); const seeds = require('./seeds'); const dns = require('./dns'); const Logger = require('../node/logger'); -const fs = require('../utils/fs'); const POOL32 = Buffer.allocUnsafe(32); /** diff --git a/lib/node/config.js b/lib/node/config.js index 0d1684d7..23fc6844 100644 --- a/lib/node/config.js +++ b/lib/node/config.js @@ -9,7 +9,7 @@ const assert = require('assert'); const Path = require('path'); const os = require('os'); -const fs = require('../utils/fs'); +const fs = require('bfile'); const {fromFloat} = require('../utils/fixed'); const HOME = os.homedir ? os.homedir() : '/'; diff --git a/lib/node/logger.js b/lib/node/logger.js index 39666e53..781d9117 100644 --- a/lib/node/logger.js +++ b/lib/node/logger.js @@ -8,7 +8,7 @@ const assert = require('assert'); const {format, inspect} = require('util'); -const fs = require('../utils/fs'); +const fs = require('bfile'); const util = require('../utils/util'); const co = require('../utils/co'); const Lock = require('../utils/lock'); diff --git a/lib/utils/fs-browser.js b/lib/utils/fs-browser.js deleted file mode 100644 index 21227270..00000000 --- a/lib/utils/fs-browser.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -exports.unsupported = true; diff --git a/lib/utils/fs.js b/lib/utils/fs.js deleted file mode 100644 index 5c1a7be9..00000000 --- a/lib/utils/fs.js +++ /dev/null @@ -1,175 +0,0 @@ -/*! - * fs.js - promisified fs module for bcoin - * Copyright (c) 2014-2017, Christopher Jeffrey (MIT License). - * https://github.com/bcoin-org/bcoin - */ - -'use strict'; - -const fs = require('fs'); -const co = require('./co'); - -exports.access = co.promisify(fs.access); -exports.accessSync = fs.accessSync; -exports.appendFile = co.promisify(fs.appendFile); -exports.appendFileSync = fs.appendFileSync; -exports.chmod = co.promisify(fs.chmod); -exports.chmodSync = fs.chmodSync; -exports.chown = co.promisify(fs.chown); -exports.chownSync = fs.chownSync; -exports.close = co.promisify(fs.close); -exports.closeSync = fs.closeSync; -exports.constants = fs.constants; -exports.createReadStream = fs.createReadStream; -exports.createWriteStream = fs.createWriteStream; -exports.exists = async (file) => { - try { - await exports.stat(file); - return true; - } catch (e) { - if (e.code === 'ENOENT') - return false; - throw e; - } -}; -exports.existsSync = (file) => { - try { - exports.statSync(file); - return true; - } catch (e) { - if (e.code === 'ENOENT') - return false; - throw e; - } -}; -exports.fchmod = co.promisify(fs.fchmod); -exports.fchmodSync = fs.fchmodSync; -exports.fchown = co.promisify(fs.fchown); -exports.fchownSync = fs.fchownSync; -exports.fdatasync = co.promisify(fs.fdatasync); -exports.fdatasyncSync = fs.fdatasyncSync; -exports.fstat = co.promisify(fs.fstat); -exports.fstatSync = fs.fstatSync; -exports.fsync = co.promisify(fs.fsync); -exports.fsyncSync = fs.fsyncSync; -exports.ftruncate = co.promisify(fs.ftruncate); -exports.ftruncateSync = fs.ftruncateSync; -exports.futimes = co.promisify(fs.futimes); -exports.futimesSync = fs.futimesSync; -exports.lchmod = co.promisify(fs.lchmod); -exports.lchmodSync = fs.lchmodSync; -exports.lchown = co.promisify(fs.lchown); -exports.lchownSync = fs.lchownSync; -exports.link = co.promisify(fs.link); -exports.linkSync = fs.linkSync; -exports.lstat = co.promisify(fs.lstat); -exports.lstatSync = fs.lstatSync; -exports.mkdir = co.promisify(fs.mkdir); -exports.mkdirSync = fs.mkdirSync; -exports.mkdtemp = co.promisify(fs.mkdtemp); -exports.mkdtempSync = fs.mkdtempSync; -exports.open = co.promisify(fs.open); -exports.openSync = fs.openSync; -exports.read = co.promisify(fs.read); -exports.readSync = fs.readSync; -exports.readdir = co.promisify(fs.readdir); -exports.readdirSync = fs.readdirSync; -exports.readFile = co.promisify(fs.readFile); -exports.readFileSync = fs.readFileSync; -exports.readlink = co.promisify(fs.readlink); -exports.readlinkSync = fs.readlinkSync; -exports.realpath = co.promisify(fs.realpath); -exports.realpathSync = fs.realpathSync; -exports.rename = co.promisify(fs.rename); -exports.renameSync = fs.renameSync; -exports.rmdir = co.promisify(fs.rmdir); -exports.rmdirSync = fs.rmdirSync; -exports.stat = co.promisify(fs.stat); -exports.statSync = fs.statSync; -exports.symlink = co.promisify(fs.symlink); -exports.symlinkSync = fs.symlinkSync; -exports.truncate = co.promisify(fs.truncate); -exports.truncateSync = fs.truncateSync; -exports.unlink = co.promisify(fs.unlink); -exports.unlinkSync = fs.unlinkSync; -exports.unwatchFile = fs.unwatchFile; -exports.utimes = co.promisify(fs.utimes); -exports.utimesSync = fs.utimesSync; -exports.watch = fs.watch; -exports.watchFile = fs.watchFile; -exports.write = co.promisify(fs.write); -exports.writeSync = fs.writeSync; -exports.writeFile = co.promisify(fs.writeFile); -exports.writeFileSync = fs.writeFileSync; - -exports.mkdirpSync = function mkdirpSync(dir, mode) { - if (mode == null) - mode = 0o750; - - let [path, parts] = getParts(dir); - - for (const part of parts) { - path += part; - - try { - const stat = exports.statSync(path); - if (!stat.isDirectory()) - throw new Error('Could not create directory.'); - } catch (e) { - if (e.code === 'ENOENT') - exports.mkdirSync(path, mode); - else - throw e; - } - - path += '/'; - } -}; - -exports.mkdirp = async function mkdirp(dir, mode) { - if (mode == null) - mode = 0o750; - - let [path, parts] = getParts(dir); - - for (const part of parts) { - path += part; - - try { - const stat = await exports.stat(path); - if (!stat.isDirectory()) - throw new Error('Could not create directory.'); - } catch (e) { - if (e.code === 'ENOENT') - await exports.mkdir(path, mode); - else - throw e; - } - - path += '/'; - } -}; - -function getParts(path) { - path = path.replace(/\\/g, '/'); - path = path.replace(/(^|\/)\.\//, '$1'); - path = path.replace(/\/+\.?$/, ''); - - const parts = path.split(/\/+/); - - let root = ''; - - if (process.platform === 'win32') { - if (parts[0].indexOf(':') !== -1) - root = parts.shift() + '/'; - } - - if (parts.length > 0) { - if (parts[0].length === 0) { - parts.shift(); - root = '/'; - } - } - - return [root, parts]; -} diff --git a/lib/utils/index.js b/lib/utils/index.js index 26425964..54f0f748 100644 --- a/lib/utils/index.js +++ b/lib/utils/index.js @@ -21,7 +21,6 @@ exports.co = require('./co'); exports.encoding = require('./encoding'); exports.enforce = require('./enforce'); exports.fixed = require('./fixed'); -exports.fs = require('./fs'); exports.GCSFilter = require('./gcs'); exports.Heap = require('./heap'); exports.Int64 = require('./int64'); diff --git a/lib/wallet/rpc.js b/lib/wallet/rpc.js index bb5b779f..9ecc995b 100644 --- a/lib/wallet/rpc.js +++ b/lib/wallet/rpc.js @@ -8,8 +8,8 @@ const assert = require('assert'); const bweb = require('bweb'); +const fs = require('bfile'); const {format} = require('util'); -const fs = require('../utils/fs'); const util = require('../utils/util'); const digest = require('bcrypto/lib/digest'); const Amount = require('../btc/amount'); diff --git a/package.json b/package.json index 78b890ab..94fe94f1 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "bclient": "^0.0.1", "bcrypto": "^0.0.1", "bdb": "^0.0.1", + "bfile": "^0.0.1", "breq": "^0.0.1", "bsock": "^0.0.1", "bweb": "^0.0.1", diff --git a/test/util/common.js b/test/util/common.js index 149cb342..5105acf9 100644 --- a/test/util/common.js +++ b/test/util/common.js @@ -2,7 +2,7 @@ const assert = require('assert'); const path = require('path'); -const fs = require('../../lib/utils/fs'); +const fs = require('bfile'); const Block = require('../../lib/primitives/block'); const MerkleBlock = require('../../lib/primitives/merkleblock'); const Headers = require('../../lib/primitives/headers');