UNPKG

@ntrip/caster

Version:
57 lines (56 loc) 1.96 kB
"use strict"; /* * 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;