Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
language: node_js
node_js:
- '6'
- '4'
- '0.12'
- '0.10'
- '12'
- '14'
- '16'
7 changes: 3 additions & 4 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
# Test against these versions of Node.js.
environment:
matrix:
- nodejs_version: '6'
- nodejs_version: '4'
- nodejs_version: '0.12'
- nodejs_version: '0.10'
- nodejs_version: '12'
- nodejs_version: '14'
- nodejs_version: '16'

# Install scripts. (runs after repo cloning)
install:
Expand Down
6 changes: 3 additions & 3 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* responsible for uncompressing in that case if necessary).
*/

exports.Reader = require('./lib/reader');
exports.Reader = require('./lib/reader.js');

/**
* The `Writer` class outputs a valid WAVE file from the audio data written to
Expand All @@ -26,12 +26,12 @@ exports.Reader = require('./lib/reader');
* written.
*/

exports.Writer = require('./lib/writer');
exports.Writer = require('./lib/writer.js');

/**
* The `FileWriter` is a subclass of `Writer` that automatically takes care of
* writing the "header" event at the end of the stream to the beginning of the
* output file.
*/

exports.FileWriter = require('./lib/file-writer');
exports.FileWriter = require('./lib/file-writer.js');
86 changes: 44 additions & 42 deletions lib/file-writer.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,7 @@
*/

var fs = require('fs');
var Writer = require('./writer');
var inherits = require('util').inherits;

/**
* Module exports.
*/

module.exports = FileWriter;
var Writer = require('./writer.js');

/**
* The `FileWriter` class.
Expand All @@ -21,45 +14,54 @@ module.exports = FileWriter;
* @api public
*/

function FileWriter (path, opts) {
if (!(this instanceof FileWriter)) return new FileWriter(path, opts);
Writer.call(this, opts);
this.path = path;
this.file = fs.createWriteStream(path, opts);
this.pipe(this.file);
this.on('header', this._onHeader);
}
inherits(FileWriter, Writer);
class FileWriter extends Writer {
constructor (path, opts) {
super(opts);
this.path = path;
this.file = fs.createWriteStream(path, opts);
this.pipe(this.file);
this.on('header', this._onHeader);
}

/**
* Writes the updated WAVE header to the beginning of the file.
* Emits a "done" event when everything is all good.
*
* @api private
*/
/**
* Writes the updated WAVE header to the beginning of the file.
* Emits a "done" event when everything is all good.
*
* @api private
*/
_onHeader(header) {
var self = this;
var fd;

FileWriter.prototype._onHeader = function (header) {
var self = this;
var fd;
function onOpen(err, f) {
if (err)
return self.emit('error', err);
fd = f;
fs.write(fd, header, 0, header.length, 0, onWrite);
}

function onOpen (err, f) {
if (err) return self.emit('error', err);
fd = f;
fs.write(fd, header, 0, header.length, 0, onWrite);
}
function onWrite(err, bytesWritten) {
if (err)
return self.emit('error', err);
if (bytesWritten !== header.length) {
return self.emit('error', new Error('problem writing "header" data'));
}
fs.close(fd, onClose);
}

function onWrite (err, bytesWritten) {
if (err) return self.emit('error', err);
if (bytesWritten !== header.length) {
return self.emit('error', new Error('problem writing "header" data'));
function onClose(err) {
if (err)
return self.emit('error', err);
self.emit('done');
}
fs.close(fd, onClose);
}

function onClose (err) {
if (err) return self.emit('error', err);
self.emit('done');
fs.open(self.path, 'r+', onOpen);
}
}


/**
* Module exports.
*/

fs.open(self.path, 'r+', onOpen);
};
module.exports = FileWriter;
Loading