From 5747fb303ae2afb939f3cd936673075543c15d6e Mon Sep 17 00:00:00 2001 From: JP Richardson Date: Sun, 17 Apr 2016 14:56:36 -0500 Subject: [PATCH] (Closes #192) removed createOutputStream() --- README.md | 18 ------- lib/index.js | 1 - .../__tests__/create-output-stream.test.js | 50 ------------------- lib/streams/create-output-stream.js | 43 ---------------- lib/streams/index.js | 3 -- 5 files changed, 115 deletions(-) delete mode 100644 lib/streams/__tests__/create-output-stream.test.js delete mode 100644 lib/streams/create-output-stream.js delete mode 100644 lib/streams/index.js diff --git a/README.md b/README.md index 8837dad9..1d156ae5 100644 --- a/README.md +++ b/README.md @@ -153,24 +153,6 @@ fs.copy('/tmp/mydir', '/tmp/mynewdir', function (err) { }) // copies directory, even if it has subdirectories or files ``` -### createOutputStream(file, [options]) - -Exactly like `createWriteStream`, but if the directory does not exist, it's created. - -Examples: - -```js -var fs = require('fs-extra') - -// if /tmp/some does not exist, it is created -var ws = fs.createOutputStream('/tmp/some/file.txt') -ws.write('hello\n') -``` - -Note on naming: you'll notice that fs-extra has some methods like `fs.outputJson`, `fs.outputFile`, etc that use the -word `output` to denote that if the containing directory does not exist, it should be created. If you can think of a -better succinct nomenclature for these methods, please open an issue for discussion. Thanks. - ### emptyDir(dir, [callback]) diff --git a/lib/index.js b/lib/index.js index 2914f537..a56bb0c6 100644 --- a/lib/index.js +++ b/lib/index.js @@ -16,7 +16,6 @@ assign(fs, require('./mkdirs')) assign(fs, require('./remove')) assign(fs, require('./json')) assign(fs, require('./move')) -assign(fs, require('./streams')) assign(fs, require('./empty')) assign(fs, require('./ensure')) assign(fs, require('./output')) diff --git a/lib/streams/__tests__/create-output-stream.test.js b/lib/streams/__tests__/create-output-stream.test.js deleted file mode 100644 index 411ce516..00000000 --- a/lib/streams/__tests__/create-output-stream.test.js +++ /dev/null @@ -1,50 +0,0 @@ -var assert = require('assert') -var fs = require('fs') -var path = require('path') -var os = require('os') -var fse = require(process.cwd()) -var createOutputStream = require('../create-output-stream') - -/* global afterEach, beforeEach, describe, it */ - -describe('createOutputStream', function () { - var TEST_DIR - - beforeEach(function (done) { - TEST_DIR = path.join(os.tmpdir(), 'fs-extra', 'create') - fse.emptyDir(TEST_DIR, done) - }) - - afterEach(function (done) { - fse.remove(TEST_DIR, done) - }) - - describe('+ createOutputStream', function () { - describe('> when the file and directory does not exist', function () { - it('should create the stream', function (done) { - var file = path.join(TEST_DIR, Math.random() + 't-ne', Math.random() + '.txt') - assert(!fs.existsSync(file)) - var stream = createOutputStream(file) - stream.end('hi jp', 'utf8', function () { - assert(fs.existsSync(file)) - assert.equal(fs.readFileSync(file, 'utf8'), 'hi jp') - done() - }) - }) - }) - - describe('> when the dir does exist', function () { - it('should still modify the file', function (done) { - var file = path.join(TEST_DIR, Math.random() + 't-e', Math.random() + '.txt') - fse.mkdirsSync(path.dirname(file)) - fs.writeFileSync(file, 'hello world') - var stream = createOutputStream(file) - stream.end('hi jp', 'utf8', function () { - assert(fs.existsSync(file)) - assert.equal(fs.readFileSync(file, 'utf8'), 'hi jp') - done() - }) - }) - }) - }) -}) diff --git a/lib/streams/create-output-stream.js b/lib/streams/create-output-stream.js deleted file mode 100644 index e6db2dd8..00000000 --- a/lib/streams/create-output-stream.js +++ /dev/null @@ -1,43 +0,0 @@ -var path = require('path') -var fs = require('fs') -var mkdir = require('../mkdirs') -var WriteStream = fs.WriteStream - -function createOutputStream (file, options) { - var dirExists = false - var dir = path.dirname(file) - options = options || {} - - // if fd is set with an actual number, file is created, hence directory is too - if (options.fd) { - return fs.createWriteStream(file, options) - } else { - // this hacks the WriteStream constructor from calling open() - options.fd = -1 - } - - var ws = new WriteStream(file, options) - - var oldOpen = ws.open - ws.open = function () { - ws.fd = null // set actual fd - if (dirExists) return oldOpen.call(ws) - - // this only runs once on first write - mkdir.mkdirs(dir, function (err) { - if (err) { - ws.destroy() - ws.emit('error', err) - return - } - dirExists = true - oldOpen.call(ws) - }) - } - - ws.open() - - return ws -} - -module.exports = createOutputStream diff --git a/lib/streams/index.js b/lib/streams/index.js deleted file mode 100644 index 33be56e8..00000000 --- a/lib/streams/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - createOutputStream: require('./create-output-stream') -}