UNPKG

flatfile-csv-importer

Version:

A simple adapter for elegantly importing CSV files via flatfile.io (Typescript, ES6, Browser)

299 lines 16.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var stats_1 = require("./stats"); var user_1 = require("./user"); var upload_file_1 = require("./upload-file"); var streamed_results_1 = require("./streamed-results"); var FlatfileResults = /** @class */ (function () { function FlatfileResults(data, meta, importer) { this.$meta = meta; this.$data = data; this.$importer = importer; } Object.defineProperty(FlatfileResults.prototype, "rawOutput", { /** * The raw output from the importer including all deleted rows * and sequence info */ get: function () { return this.blobOnly(this.$data, 'rawOutput'); }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "data", { /** * An array of valid data, key-mapped to the configuration provided * (alias of validData) */ get: function () { return this.blobOnly(this.validData, 'data'); }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "validData", { /** * An array of valid data, key-mapped to the configuration provided */ get: function () { var res = this.$data.filter(function (v) { return v.valid; }) .filter(function (v) { return !v.deleted; }) .map(function (v) { return v.data; }); return this.blobOnly(res, 'validData'); }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "deletedData", { /** * Rows of data the user excluded from the final results, * key-mapped to the configuration provided */ get: function () { var res = this.$data.filter(function (v) { return v.deleted; }) .map(function (v) { return v.data; }); return this.blobOnly(res, 'deletedData'); }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "allData", { /** * All data from the original file upload including deleted rows, * key-mapped to the configuration provided */ get: function () { return this.blobOnly(this.$data.map(function (v) { return v.data; }), 'allData'); }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "batchId", { /** * The uuid of the batch assigned by Flatfile (use this in internal * references for support purposes) */ get: function () { return this.$meta.batchID; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "stats", { /** * Stats and counts about this file upload */ get: function () { return new stats_1.default(this.$meta); }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "customer", { /** * The customer provided in setCustomer */ get: function () { if (this.$meta.endUser) { return new user_1.default(this.$meta.endUser); } return null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "originalFile", { /** * A File object of the originally uploaded file stored as an AWS url */ get: function () { if (this.$meta.originalFile) { return new upload_file_1.default(this.$meta.originalFile); } return null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "csvFile", { /** * Same as originalFile unless it was uploaded in xls format, in which case this is the converted csv file stored as an AWS url */ get: function () { if (this.$meta.originalFile) { if (this.$meta.originalFile.filetype === 'csv') { return new upload_file_1.default(this.$meta.originalFile); } else { if (this.$meta.csvFile) { return new upload_file_1.default(this.$meta.csvFile); } } } return null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "fileName", { /** * The filename of the originally uploaded file */ get: function () { return this.$meta.filename || null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "managed", { /** * If the final upload is managed by a private endpoint or not */ get: function () { return this.$meta.managed || false; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "manual", { /** * If the data was entered manually instead of via file upload or not */ get: function () { return this.$meta.manual; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "config", { /** * The parsed and bootstrapped config object used by this importer instance */ get: function () { return this.$meta.config; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "parsingConfig", { /** * The configuration used by the csv parser PapaParse: https://www.papaparse.com/docs#config */ get: function () { return this.$meta.parsing_config; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "skippedRows", { /** * The invalid rows that were skipped on submission */ get: function () { return this.$meta.skipped_rows || null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "headersRaw", { /** * The headers before they were matched as given in the original file */ get: function () { return this.$meta.headers_raw || null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "headersMatched", { /** * The headers after they are matched */ get: function () { return this.$meta.headers_matched || null; }, enumerable: true, configurable: true }); /** * Get the next chunk of records */ FlatfileResults.prototype.nextChunk = function () { var _this = this; return new Promise(function (resolve, reject) { if (!_this.$meta.inChunks) { return reject("\"nextChunk()\" is only accessible when using \"inChunks\". Please see docs for \"requestDataFromUser\"."); } _this.$importer.$ready.then(function (child) { console.log('child.nextChunk()'); child.nextChunk().then(function (data) { console.log('nextChunk()', data); resolve(data.results.length ? new streamed_results_1.default(data.results, data.meta) : null); }, function (err) { console.log('nextChunk(err)', err); }); }); }); }; Object.defineProperty(FlatfileResults.prototype, "customColumns", { /** * An array of any columns that were created during import */ get: function () { return this.$meta.custom_columns; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "failureReason", { /** * The reason for the failure if there was a failure */ get: function () { return this.$meta.failure_reason || null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "submittedAt", { /** * The time that the data was submitted */ get: function () { return this.$meta.submitted_at || null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "failedAt", { /** * The time that the import failed if it failed */ get: function () { return this.$meta.failed_at || null; }, enumerable: true, configurable: true }); Object.defineProperty(FlatfileResults.prototype, "createdAt", { /** * The time the data began the import, whether via file upload or manual data entry */ get: function () { return this.$meta.created_at; }, enumerable: true, configurable: true }); FlatfileResults.prototype.blobOnly = function (v, method, alt) { if (alt === void 0) { alt = 'nextChunk()'; } if (this.$meta.inChunks) { throw new Error("\"" + method + "\" is not accessible when using \"inChunks\". Please see docs for \"" + alt + "\" instead."); } return v; }; return FlatfileResults; }()); exports.default = FlatfileResults; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXN1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaUNBQTJCO0FBRzNCLCtCQUF5QjtBQUN6Qiw2Q0FBc0M7QUFDdEMsdURBQWdEO0FBRWhEO0lBZ0JFLHlCQUFhLElBQXlCLEVBQUUsSUFBVSxFQUFFLFFBQWtCO1FBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO0lBQzNCLENBQUM7SUFNRCxzQkFBSSxzQ0FBUztRQUpiOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDL0MsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSxpQ0FBSTtRQUpSOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDOUMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxzQ0FBUztRQUhiOztXQUVHO2FBQ0g7WUFDRSxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDO2lCQUNwQixNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQVYsQ0FBVSxDQUFDO2lCQUN2QixHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDeEMsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSx3Q0FBVztRQUpmOzs7V0FHRzthQUNIO1lBQ0UsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsT0FBTyxFQUFULENBQVMsQ0FBQztpQkFDdEIsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBTixDQUFNLENBQUMsQ0FBQTtZQUN2QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBQzFDLENBQUM7OztPQUFBO0lBTUQsc0JBQUksb0NBQU87UUFKWDs7O1dBR0c7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEVBQU4sQ0FBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDOUQsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSxvQ0FBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUMzQixDQUFDOzs7T0FBQTtJQUtELHNCQUFJLGtDQUFLO1FBSFQ7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxlQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzlCLENBQUM7OztPQUFBO0lBS0Qsc0JBQUkscUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0UsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDdEIsT0FBTyxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO2FBQ3BDO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDOzs7T0FBQTtJQUtELHNCQUFJLHlDQUFZO1FBSGhCOztXQUVHO2FBQ0g7WUFDRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUMzQixPQUFPLElBQUkscUJBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO2FBQy9DO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDOzs7T0FBQTtJQUtELHNCQUFJLG9DQUFPO1FBSFg7O1dBRUc7YUFDSDtZQUNFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtvQkFDOUMsT0FBTyxJQUFJLHFCQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtpQkFDL0M7cUJBQU07b0JBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTt3QkFDdEIsT0FBTyxJQUFJLHFCQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtxQkFDMUM7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxxQ0FBUTtRQUhaOztXQUVHO2FBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQTtRQUNwQyxDQUFDOzs7T0FBQTtJQUtELHNCQUFJLG9DQUFPO1FBSFg7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFBO1FBQ3BDLENBQUM7OztPQUFBO0lBS0Qsc0JBQUksbUNBQU07UUFIVjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQTtRQUMxQixDQUFDOzs7T0FBQTtJQUtELHNCQUFJLG1DQUFNO1FBSFY7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDMUIsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSwwQ0FBYTtRQUhqQjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQTtRQUNsQyxDQUFDOzs7T0FBQTtJQUtELHNCQUFJLHdDQUFXO1FBSGY7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFBO1FBQ3hDLENBQUM7OztPQUFBO0lBS0Qsc0JBQUksdUNBQVU7UUFIZDs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUE7UUFDdkMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSwyQ0FBYztRQUhsQjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUE7UUFDM0MsQ0FBQzs7O09BQUE7SUFFRDs7T0FFRztJQUNILG1DQUFTLEdBQVQ7UUFBQSxpQkFlQztRQWRDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtZQUNqQyxJQUFJLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ3hCLE9BQU8sTUFBTSxDQUFDLDBHQUFvRyxDQUFDLENBQUE7YUFDcEg7WUFDRCxLQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxLQUFLO2dCQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUE7Z0JBQ2hDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBQyxJQUFJO29CQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQTtvQkFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLDBCQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNwRixDQUFDLEVBQUUsVUFBQyxHQUFHO29CQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFLRCxzQkFBSSwwQ0FBYTtRQUhqQjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQTtRQUNsQyxDQUFDOzs7T0FBQTtJQUtELHNCQUFJLDBDQUFhO1FBSGpCOztXQUVHO2FBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQTtRQUMxQyxDQUFDOzs7T0FBQTtJQUtELHNCQUFJLHdDQUFXO1FBSGY7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFBO1FBQ3hDLENBQUM7OztPQUFBO0lBS0Qsc0JBQUkscUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUE7UUFDckMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxzQ0FBUztRQUhiOztXQUVHO2FBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzlCLENBQUM7OztPQUFBO0lBRU8sa0NBQVEsR0FBaEIsVUFBc0IsQ0FBSSxFQUFFLE1BQU0sRUFBRSxHQUFtQjtRQUFuQixvQkFBQSxFQUFBLG1CQUFtQjtRQUNyRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBSSxNQUFNLDRFQUFtRSxHQUFHLGdCQUFZLENBQUMsQ0FBQTtTQUM5RztRQUNELE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNILHNCQUFDO0FBQUQsQ0FBQyxBQTFPRCxJQTBPQyJ9