UNPKG

@prisma/sdk

Version:
129 lines (128 loc) 4.43 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var byline_exports = {}; __export(byline_exports, { LineStream: () => LineStream, createLineStream: () => createLineStream, createStream: () => createStream, default: () => byline }); module.exports = __toCommonJS(byline_exports); var import_stream = __toESM(require("stream")); var import_util = __toESM(require("util")); function byline(readStream, options) { return createStream(readStream, options); } __name(byline, "byline"); function createStream(readStream, options) { if (readStream) { return createLineStream(readStream, options); } else { return new LineStream(options); } } __name(createStream, "createStream"); function createLineStream(readStream, options) { if (!readStream) { throw new Error("expected readStream"); } if (!readStream.readable) { throw new Error("readStream must be readable"); } const ls = new LineStream(options); readStream.pipe(ls); return ls; } __name(createLineStream, "createLineStream"); function LineStream(options) { import_stream.default.Transform.call(this, options); options = options || {}; this._readableState.objectMode = true; this._lineBuffer = []; this._keepEmptyLines = options.keepEmptyLines || false; this._lastChunkEndedWithCR = false; this.on("pipe", function(src) { if (!this.encoding) { if (src instanceof import_stream.default.Readable) { this.encoding = src._readableState.encoding; } } }); } __name(LineStream, "LineStream"); import_util.default.inherits(LineStream, import_stream.default.Transform); LineStream.prototype._transform = function(chunk, encoding, done) { encoding = encoding || "utf8"; if (Buffer.isBuffer(chunk)) { if (encoding == "buffer") { chunk = chunk.toString(); encoding = "utf8"; } else { chunk = chunk.toString(encoding); } } this._chunkEncoding = encoding; const lines = chunk.split(/\r\n|\r|\n/g); if (this._lastChunkEndedWithCR && chunk[0] == "\n") { lines.shift(); } if (this._lineBuffer.length > 0) { this._lineBuffer[this._lineBuffer.length - 1] += lines[0]; lines.shift(); } this._lastChunkEndedWithCR = chunk[chunk.length - 1] == "\r"; this._lineBuffer = this._lineBuffer.concat(lines); this._pushBuffer(encoding, 1, done); }; LineStream.prototype._pushBuffer = function(encoding, keep, done) { while (this._lineBuffer.length > keep) { const line = this._lineBuffer.shift(); if (this._keepEmptyLines || line.length > 0) { if (!this.push(this._reencode(line, encoding))) { const self = this; setImmediate(function() { self._pushBuffer(encoding, keep, done); }); return; } } } done(); }; LineStream.prototype._flush = function(done) { this._pushBuffer(this._chunkEncoding, 0, done); }; LineStream.prototype._reencode = function(line, chunkEncoding) { if (this.encoding && this.encoding != chunkEncoding) { return Buffer.from(line, chunkEncoding).toString(this.encoding); } else if (this.encoding) { return line; } else { return Buffer.from(line, chunkEncoding); } }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { LineStream, createLineStream, createStream });