flatfile-csv-importer
Version:
A simple adapter for elegantly importing CSV files via flatfile.io (Typescript, ES6, Browser)
299 lines • 16.1 kB
JavaScript
"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXN1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaUNBQTJCO0FBRzNCLCtCQUF5QjtBQUN6Qiw2Q0FBc0M7QUFDdEMsdURBQWdEO0FBRWhEO0lBZ0JFLHlCQUFhLElBQXlCLEVBQUUsSUFBVSxFQUFFLFFBQWtCO1FBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO0lBQzNCLENBQUM7SUFNRCxzQkFBSSxzQ0FBUztRQUpiOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDL0MsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSxpQ0FBSTtRQUpSOzs7V0FHRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDOUMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxzQ0FBUztRQUhiOztXQUVHO2FBQ0g7WUFDRSxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDO2lCQUNwQixNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQVYsQ0FBVSxDQUFDO2lCQUN2QixHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDeEMsQ0FB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