123456789101112131415161718192021222324252627282930313233 |
- 'use strict';
- const Transform = require('stream').Transform;
- class LastNewline extends Transform {
- constructor() {
- super();
- this.lastByte = false;
- }
- _transform(chunk, encoding, done) {
- if (chunk.length) {
- this.lastByte = chunk[chunk.length - 1];
- }
- this.push(chunk);
- done();
- }
- _flush(done) {
- if (this.lastByte === 0x0a) {
- return done();
- }
- if (this.lastByte === 0x0d) {
- this.push(Buffer.from('\n'));
- return done();
- }
- this.push(Buffer.from('\r\n'));
- return done();
- }
- }
- module.exports = LastNewline;
|