rittenhop-ghost/versions/5.94.2/node_modules/csv-writer/dist/lib/field-stringifier.js

69 lines
3.0 KiB
JavaScript
Raw Normal View History

"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var DEFAULT_FIELD_DELIMITER = ',';
var VALID_FIELD_DELIMITERS = [DEFAULT_FIELD_DELIMITER, ';'];
var FieldStringifier = /** @class */ (function () {
function FieldStringifier(fieldDelimiter) {
this.fieldDelimiter = fieldDelimiter;
}
FieldStringifier.prototype.isEmpty = function (value) {
return typeof value === 'undefined' || value === null || value === '';
};
FieldStringifier.prototype.quoteField = function (field) {
return "\"" + field.replace(/"/g, '""') + "\"";
};
return FieldStringifier;
}());
exports.FieldStringifier = FieldStringifier;
var DefaultFieldStringifier = /** @class */ (function (_super) {
__extends(DefaultFieldStringifier, _super);
function DefaultFieldStringifier() {
return _super !== null && _super.apply(this, arguments) || this;
}
DefaultFieldStringifier.prototype.stringify = function (value) {
if (this.isEmpty(value))
return '';
var str = String(value);
return this.needsQuote(str) ? this.quoteField(str) : str;
};
DefaultFieldStringifier.prototype.needsQuote = function (str) {
return str.includes(this.fieldDelimiter) || str.includes('\n') || str.includes('"');
};
return DefaultFieldStringifier;
}(FieldStringifier));
var ForceQuoteFieldStringifier = /** @class */ (function (_super) {
__extends(ForceQuoteFieldStringifier, _super);
function ForceQuoteFieldStringifier() {
return _super !== null && _super.apply(this, arguments) || this;
}
ForceQuoteFieldStringifier.prototype.stringify = function (value) {
return this.isEmpty(value) ? '' : this.quoteField(String(value));
};
return ForceQuoteFieldStringifier;
}(FieldStringifier));
function createFieldStringifier(fieldDelimiter, alwaysQuote) {
if (fieldDelimiter === void 0) { fieldDelimiter = DEFAULT_FIELD_DELIMITER; }
if (alwaysQuote === void 0) { alwaysQuote = false; }
_validateFieldDelimiter(fieldDelimiter);
return alwaysQuote ? new ForceQuoteFieldStringifier(fieldDelimiter) : new DefaultFieldStringifier(fieldDelimiter);
}
exports.createFieldStringifier = createFieldStringifier;
function _validateFieldDelimiter(delimiter) {
if (VALID_FIELD_DELIMITERS.indexOf(delimiter) === -1) {
throw new Error("Invalid field delimiter `" + delimiter + "` is specified");
}
}
//# sourceMappingURL=field-stringifier.js.map