1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var DEFAULT_RECORD_DELIMITER = '\n';
|
4 | var VALID_RECORD_DELIMITERS = [DEFAULT_RECORD_DELIMITER, '\r\n'];
|
5 | var CsvStringifier = (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 | }());
|
32 | exports.CsvStringifier = CsvStringifier;
|
33 | function _validateRecordDelimiter(delimiter) {
|
34 | if (VALID_RECORD_DELIMITERS.indexOf(delimiter) === -1) {
|
35 | throw new Error("Invalid record delimiter `" + delimiter + "` is specified");
|
36 | }
|
37 | }
|
38 |
|
\ | No newline at end of file |