@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
87 lines • 5.66 kB
JavaScript
;
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDataRows = exports.parse = exports.CsvUtilsPlugin = void 0;
var papaparse_1 = __importDefault(require("papaparse"));
var sandbox_plugin_1 = require("../sandbox-plugin");
var parse_utils_1 = require("../../../utils/parse-utils");
var CsvUtilsPlugin = /** @class */ (function (_super) {
__extends(CsvUtilsPlugin, _super);
function CsvUtilsPlugin() {
return _super !== null && _super.apply(this, arguments) || this;
}
CsvUtilsPlugin.prototype.registerClass = function (sandbox) {
var methods = [
{
isStatic: true,
externalName: 'parse',
functionRef: parse,
},
{
isStatic: true,
externalName: 'createDataRows',
functionRef: createDataRows,
},
];
(0, sandbox_plugin_1.addClassToSandbox)(sandbox, methods, 'CsvUtils');
};
return CsvUtilsPlugin;
}(sandbox_plugin_1.SandboxPlugin));
exports.CsvUtilsPlugin = CsvUtilsPlugin;
function parse(rawData, options) {
return new Promise(function (resolve, _reject) {
console.log('>CsvUtils.parse');
var data;
if (ArrayBuffer.isView(rawData)) {
data = new TextDecoder('utf-8').decode(rawData);
}
else {
data = rawData;
}
// TODO: figure out why don't we just use the header flag?
var papaResult = papaparse_1.default.parse(data, { header: false });
var rows;
var headers;
if (options.hasHeader) {
headers = papaResult.data[0];
rows = papaResult.data.slice(1);
}
else {
rows = papaResult.data;
}
console.log("<CsvUtils.parse returning ".concat(rows.length, " rows."));
resolve({ rows: rows, headers: headers });
});
}
exports.parse = parse;
function createDataRows(rows, columnNames) {
return new Promise(function (resolve, reject) {
try {
var dataRows = (0, parse_utils_1.composeDataRows)(rows, columnNames);
resolve(dataRows);
}
catch (e) {
e.message = "Failed to create DataRows. Caused by: ".concat(e.message);
reject(e);
}
});
}
exports.createDataRows = createDataRows;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Vwcy9zYW5kYm94L3Nkay9wYXJzZXItdXRpbHMvY3N2LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUE0QjtBQUc1QixvREFBZ0Y7QUFDaEYsMERBQTREO0FBRzVEO0lBQW9DLGtDQUFhO0lBQWpEOztJQWlCQSxDQUFDO0lBaEJDLHNDQUFhLEdBQWIsVUFBYyxPQUFrQjtRQUM5QixJQUFNLE9BQU8sR0FBaUI7WUFDNUI7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLFdBQVcsRUFBRSxLQUFLO2FBQ25CO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLGdCQUFnQjtnQkFDOUIsV0FBVyxFQUFFLGNBQWM7YUFDNUI7U0FDRixDQUFBO1FBRUQsSUFBQSxrQ0FBaUIsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFDSCxxQkFBQztBQUFELENBQUMsQUFqQkQsQ0FBb0MsOEJBQWEsR0FpQmhEO0FBakJZLHdDQUFjO0FBbUIzQixTQUFnQixLQUFLLENBQ25CLE9BQTZCLEVBQzdCLE9BQStCO0lBRS9CLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsT0FBTztRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFOUIsSUFBSSxJQUFJLENBQUE7UUFDUixJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUNoRDthQUFNO1lBQ0wsSUFBSSxHQUFHLE9BQU8sQ0FBQTtTQUNmO1FBRUQsMERBQTBEO1FBQzFELElBQU0sVUFBVSxHQUFHLG1CQUFJLENBQUMsS0FBSyxDQUFXLElBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBRTFFLElBQUksSUFBZ0IsQ0FBQTtRQUNwQixJQUFJLE9BQTZCLENBQUE7UUFDakMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3JCLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzVCLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNoQzthQUFNO1lBQ0wsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7U0FDdkI7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUE2QixJQUFJLENBQUMsTUFBTSxXQUFRLENBQUMsQ0FBQTtRQUM3RCxPQUFPLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUE7SUFDNUIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBN0JELHNCQTZCQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxJQUFnQixFQUFFLFdBQXFCO0lBQ3BFLE9BQU8sSUFBSSxPQUFPLENBQVksVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUM1QyxJQUFJO1lBQ0YsSUFBTSxRQUFRLEdBQUcsSUFBQSw2QkFBZSxFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNuRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDbEI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLENBQUMsQ0FBQyxPQUFPLEdBQUcsZ0RBQXlDLENBQUMsQ0FBQyxPQUFPLENBQUUsQ0FBQTtZQUNoRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDVjtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQVZELHdDQVVDIn0=