UNPKG

1.74 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var DEFAULT_RECORD_DELIMITER = '\n';
4var VALID_RECORD_DELIMITERS = [DEFAULT_RECORD_DELIMITER, '\r\n'];
5var CsvStringifier = /** @class */ (function () {
6 function CsvStringifier(fieldStringifier, recordDelimiter) {
7 if (recordDelimiter === void 0) { recordDelimiter = DEFAULT_RECORD_DELIMITER; }
8 this.fieldStringifier = fieldStringifier;
9 this.recordDelimiter = recordDelimiter;
10 _validateRecordDelimiter(recordDelimiter);
11 }
12 CsvStringifier.prototype.getHeaderString = function () {
13 var headerRecord = this.getHeaderRecord();
14 return headerRecord ? this.joinRecords([this.getCsvLine(headerRecord)]) : null;
15 };
16 CsvStringifier.prototype.stringifyRecords = function (records) {
17 var _this = this;
18 var csvLines = Array.from(records, function (record) { return _this.getCsvLine(_this.getRecordAsArray(record)); });
19 return this.joinRecords(csvLines);
20 };
21 CsvStringifier.prototype.getCsvLine = function (record) {
22 var _this = this;
23 return record
24 .map(function (fieldValue) { return _this.fieldStringifier.stringify(fieldValue); })
25 .join(this.fieldStringifier.fieldDelimiter);
26 };
27 CsvStringifier.prototype.joinRecords = function (records) {
28 return records.join(this.recordDelimiter) + this.recordDelimiter;
29 };
30 return CsvStringifier;
31}());
32exports.CsvStringifier = CsvStringifier;
33function _validateRecordDelimiter(delimiter) {
34 if (VALID_RECORD_DELIMITERS.indexOf(delimiter) === -1) {
35 throw new Error("Invalid record delimiter `" + delimiter + "` is specified");
36 }
37}
38//# sourceMappingURL=abstract.js.map
\No newline at end of file