@ntrip/caster
Version:
NTRIP caster
57 lines (56 loc) • 1.96 kB
JavaScript
;
/*
* This file is part of the @ntrip/caster distribution (https://github.com/node-ntrip/caster).
* Copyright (c) 2020 Nebojsa Cvetkovic.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileTransport = void 0;
const fs = require("fs");
const transport_1 = require("../transport");
class FileTransport extends transport_1.SingleConnectionTransport {
constructor(manager, options) {
super(manager, options);
this.options = options;
}
static new(options) {
return (caster) => new FileTransport(caster, options);
}
open() {
const input = this.options.input !== undefined ?
fs.createReadStream(this.options.input, {
emitClose: true
}) : undefined;
const output = this.options.output !== undefined ?
fs.createWriteStream(this.options.output, {
emitClose: true
}) : undefined;
try {
this.connect({
...this.options,
input: input,
output: output
});
this.emit('open');
}
catch (err) {
this.emit('error', err);
}
}
get description() {
return 'file';
}
}
exports.FileTransport = FileTransport;