UNPKG

flatfile-csv-importer

Version:

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

297 lines 16 kB
import Stats from './stats'; import User from './user'; import UploadFile from './upload-file'; import StreamedResults from './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(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(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 UploadFile(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 UploadFile(this.$meta.originalFile); } else { if (this.$meta.csvFile) { return new UploadFile(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 StreamedResults(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; }()); export default FlatfileResults; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXN1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQTtBQUczQixPQUFPLElBQUksTUFBTSxRQUFRLENBQUE7QUFDekIsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3RDLE9BQU8sZUFBZSxNQUFNLG9CQUFvQixDQUFBO0FBRWhEO0lBZ0JFLHlCQUFhLElBQXlCLEVBQUUsSUFBVSxFQUFFLFFBQWtCO1FBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO0lBQzNCLENBQUM7SUFNRCxzQkFBSSxzQ0FBUztRQUpiOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDL0MsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSxpQ0FBSTtRQUpSOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDOUMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxzQ0FBUztRQUhiOztXQUVHO2FBQ0g7WUFDRSxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDO2lCQUNwQixNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQVYsQ0FBVSxDQUFDO2lCQUN2QixHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FB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