Flatfile.io CSV Importer Adapter
A simple adapter for elegantly importing CSV files via flatfile.io (Typescript, ES6, Browser)
Read the developer docs → https://developers.flatfile.io/docs/install
License Key
In order to setup, you need to create or sign in to your flatfile.io account and obtain a license key.
Using NPM
If you don't like external dependencies, or you have a nice build system like Webpack in place. You can install and use Flatfile as an npm package.
npm install flatfile-csv-importer --save
Using CDN
The latest version of the package is available via CDN so you can just drop it into your website and start using it.
https://unpkg.com/flatfile-csv-importer/build/dist/index.min.js
Quickstart
Add the following code before the ending </body>
tag in your html.
<script src="https://unpkg.com/flatfile-csv-importer/build/dist/index.min.js"></script>
<script>
var LICENSE_KEY = 'PASTE YOUR KEY HERE'
var importer = new FlatfileImporter('demo-account', {
fields: [{
label: 'Robot Name',
key: 'name'
}, {
label: 'Shield Color',
key: 'shieldColor',
validator: /^[a-zA-Z]+$/
}, {
label: 'Robot Helmet Style',
key: 'helmetStyle',
}, {
label: 'Call Sign',
key: 'sign',
alternates: ['nickname', 'wave'],
validator: /^\w{4}$/
}],
type: 'Robot'
})
importer.requestDataFromUser().then(function(results) {
importer.displayLoader()
doSomethingWithYourData(results.data).then(function() {
robotImporter.displaySuccess()
})
})
function doSomethingWithYourData (data) {
}
</script>
ES6 / Babel
import FlatfileImporter from 'flatfile-csv-importer'
import $ from 'jquery'
const options = {}
const LICENSE_KEY = 'PASTE YOUR KEY HERE'
const importer = new FlatfileImporter(FLATFILE_LICENSE_KEY, options)
const buttonClickHandler = async () => {
try {
const response = await importer.requestDataFromUser()
await uploadYourData(response.data)
} catch(e) {
}
}
const uploadYourData = (data) => {
}
$("#upload-button").click(buttonClickHandler)
Promise Overrides
Flatfile includes a basic native compatible Promise shim for IE support. You can override this with your preferred library by using the following global setting:
FlatfileImporter.Promise = Bluebird.Promise