This file might be slightly outdate. Current proposal as of 2015-11-23 is reflected in classes.es6
transloadit
accepts options
and exposes methods like .use
for adding plugins and .set
for setting options.use
with given options
as an argument.prepareMedia
for some final processingupload
which uploads everything to Transloadit servers, using tus
.Plugins should be registered like this:
transloadit.use(dragndrop, {
selector: '.drop'
});
dragndrop
here is function that we pass as an argument.
For reference, see Markdown-It.
javascript
transloadit
.set({ wait: true })
.use(transloaditModal, {some: 'config'})
.use(dragdrop, {target: transloaditModal})
.use(instagram, {some: 'config'})
.on('progress', handleProgress)
.on('error', handleError);
In transloadit-js
everything is a plugin: a Modal
dialog, Drag & Drop
, Instagram
. We borrow general approach from the new Babel and PostCSS — almost barebones by default, each chunk of functionality exists as separate plugin — easier to pick and choose exactly what you need to get a lightweight solution for production, while also easier to develop and avoid merge conflicts.
Presets should exist with basic plugins like Modal
& Drag & Drop
. This should let people who just want to get it working as quickly as possible get started in seconds:
transloadit
.set({ wait: true })
.use(transloaditBasic, {some: 'config'})
See es2015-preset
for Babel and PreCSS
for PostCSS.
or just make it a code sample for easy copy/pasting and future customizations (no need to change the main function call, just add/remove lines to modify behaviour):
transloadit
.set({ wait: true })
.use(transloaditModal, {some: 'config'})
.use(dragdrop, {target: transloaditModal})
Users should be able to set themes and style settings in config: .use(myTheme)
.
Would be cool if you could use whatever drag & drop library you wanted (DropZone) with our wrapper.
import transloadit from 'transloadit';
import dragndrop from 'transloadit-dragndrop';
import instagram from 'transloadit-instagram';
import modal from 'transloadit-modal';
// import Transloadit from 'transloadit-client'
// import { dropbox, instagram, dragdrop, webcam } from 'transloadit-client/plugins'
// or to import all of them
// import { * as plugins } from 'transloadit/plugins'
transloadit
.set({ wait: true })
.use(modal, {some: 'config'})
.use(dragdrop, {target: transloaditModal})
.use(instagram, {some: 'config'})
.on('progress', handleProgress)
.on('error', handleError)
.on('done', handleResult);