uppy/website/src/docs/api.md
2017-08-16 00:32:22 +03:00

31 KiB
Raw Blame History

---- type: docs order: 30

title: "Generated API"

Uppy Core & Plugins

Uppy

src/core/Core.js:16-795

Main Uppy core

Parameters

  • opts object general options, like locales, to show modal or not to show

updateAll

src/core/Core.js:116-122

Iterate on all plugins and run update on them. Called each time state changes

Parameters

  • state

setState

src/core/Core.js:129-135

Updates state

Parameters

  • object newState
  • stateUpdate

getState

src/core/Core.js:141-145

Returns current state

getFile

src/core/Core.js:331-333

Get a file object.

Parameters

  • fileID string The ID of the file object to return.

actions

src/core/Core.js:397-535

Registers listeners for all global actions, like: file-add, file-remove, upload-progress, reset

use

src/core/Core.js:560-589

Registers a plugin with Core

Parameters

  • Plugin Class object
  • options Object object that will be passed to Plugin later
  • opts

Returns Object self for chaining

getPlugin

src/core/Core.js:596-606

Find one Plugin by name

Parameters

  • string name description
  • name

iteratePlugins

src/core/Core.js:613-617

Iterate through all used plugins

Parameters

  • function method description
  • method

removePlugin

src/core/Core.js:624-635

Uninstall and remove a plugin.

Parameters

  • instance Plugin The plugin instance to remove.

close

src/core/Core.js:640-650

Uninstall all plugins and close down this Uppy instance.

info

src/core/Core.js:659-686

Set info message in state.info, so that UI plugins like Informer can display the message

Parameters

  • msg string Message to be displayed by the informer
  • type
  • duration

log

src/core/Core.js:703-720

Logs stuff to console, only if debug is set to true. Silent in production.

Parameters

  • msg
  • type

Returns (String | Object) to log

run

src/core/Core.js:734-748

Initializes actions, installs all plugins (by iterating on them and calling install), sets options

Plugin

src/plugins/Plugin.js:15-105

Boilerplate that all Plugins share - and should not be used directly. It also shows which methods final plugins should implement/override, this deciding on structure.

Parameters

  • main object Uppy core object
  • object object with plugin options

Returns (array | string) files or success/fail message

mount

src/plugins/Plugin.js:49-90

Check if supplied target is a DOM element or an object. If its an object — target is a plugin, and we search plugins for a plugin with same name and return its target.

Parameters

Utils

src/plugins/Dashboard/index.js:14-431

Extends Plugin

Modal Dialog & Dashboard

constructor

src/generic-provider-views/index.js:43-74

Parameters

  • instance object of the plugin
  • plugin
  • opts

updateState

src/generic-provider-views/index.js:79-84

Little shorthand to update the state with the plugin's state

Parameters

  • newState

updateState

src/plugins/Webcam/index.js:107-112

Little shorthand to update the state with my new state

Parameters

  • newState

getFolder

src/generic-provider-views/index.js:116-137

Based on folder ID, fetch a new folder and update it to state

Parameters

Returns Promise Folders/files in folder

getNextFolder

src/generic-provider-views/index.js:144-147

Fetches new folder

Parameters

logout

src/generic-provider-views/index.js:180-194

Removes session token on client side.

Utils

src/core/Utils.js:17-19

A collection of small utility functions that help with dom manipulation, adding listeners, promises and other good things.

Parameters

  • arr

constructor

src/generic-provider-views/index.js:43-74

Parameters

  • instance object of the plugin
  • plugin
  • opts

updateState

src/generic-provider-views/index.js:79-84

Little shorthand to update the state with the plugin's state

Parameters

  • newState

updateState

src/plugins/Webcam/index.js:107-112

Little shorthand to update the state with my new state

Parameters

  • newState

getFolder

src/generic-provider-views/index.js:116-137

Based on folder ID, fetch a new folder and update it to state

Parameters

Returns Promise Folders/files in folder

getNextFolder

src/generic-provider-views/index.js:144-147

Fetches new folder

Parameters

logout

src/generic-provider-views/index.js:180-194

Removes session token on client side.

Utils

src/generic-provider-views/index.js:39-419

Class to easily generate generic views for plugins

This class expects the plugin using to have the following attributes

stateId {String} object key of which the plugin state is stored

This class also expects the plugin instance using it to have the following accessor methods. Each method takes the item whose property is to be accessed as a param

isFolder

Returns Boolean for if the item is a folder or not getItemData

Returns Object that is format ready for uppy upload/download getItemIcon

Returns Object html instance of the item's icon getItemSubList

Returns Array sub-items in the item. e.g a folder may contain sub-items getItemName

Returns String display friendly name of the item getMimeType

Returns String mime type of the item getItemId

Returns String unique id of the item getItemRequestPath

Returns String unique request path of the item when making calls to uppy server getItemModifiedDate

Returns object or {String} date of when last the item was modified getItemThumbnailUrl

Returns String

constructor

src/generic-provider-views/index.js:43-74

Parameters

  • instance object of the plugin
  • plugin
  • opts

updateState

src/generic-provider-views/index.js:79-84

Little shorthand to update the state with the plugin's state

Parameters

  • newState

updateState

src/plugins/Webcam/index.js:107-112

Little shorthand to update the state with my new state

Parameters

  • newState

getFolder

src/generic-provider-views/index.js:116-137

Based on folder ID, fetch a new folder and update it to state

Parameters

Returns Promise Folders/files in folder

getNextFolder

src/generic-provider-views/index.js:144-147

Fetches new folder

Parameters

logout

src/generic-provider-views/index.js:180-194

Removes session token on client side.

Utils

src/plugins/Webcam/index.js:14-311

Extends Plugin

Webcam

constructor

src/generic-provider-views/index.js:43-74

Parameters

  • instance object of the plugin
  • plugin
  • opts

updateState

src/generic-provider-views/index.js:79-84

Little shorthand to update the state with the plugin's state

Parameters

  • newState

updateState

src/plugins/Webcam/index.js:107-112

Little shorthand to update the state with my new state

Parameters

  • newState

getFolder

src/generic-provider-views/index.js:116-137

Based on folder ID, fetch a new folder and update it to state

Parameters

Returns Promise Folders/files in folder

getNextFolder

src/generic-provider-views/index.js:144-147

Fetches new folder

Parameters

logout

src/generic-provider-views/index.js:180-194

Removes session token on client side.

index

src/plugins/StatusBar/index.js:11-141

Extends Plugin

A status bar.

checkDragDropSupport

src/plugins/DragDrop/index.js:68-84

Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).

Returns Boolean true if supported, false otherwise

index

src/plugins/DragDrop/index.js:11-162

Extends Plugin

Drag & Drop plugin

checkDragDropSupport

src/plugins/DragDrop/index.js:68-84

Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).

Returns Boolean true if supported, false otherwise

index

src/plugins/Transloadit/index.js:8-374

Extends Plugin

Upload files to Transloadit using Tus.

checkDragDropSupport

src/plugins/DragDrop/index.js:68-84

Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).

Returns Boolean true if supported, false otherwise

Dummy

src/plugins/Dummy.js:9-67

Extends Plugin

Dummy A test plugin, does nothing useful

flatten

src/core/Utils.js:17-19

Shallow flatten nested arrays.

Parameters

  • arr

groupBy

src/core/Utils.js:76-84

Partition array by a grouping function.

Parameters

  • array [type] Input array
  • groupingFn [type] Grouping function

Returns [type] Array of arrays

every

src/core/Utils.js:92-100

Tests if every array element passes predicate

Parameters

Returns bool Every element pass

toArray

src/core/Utils.js:105-107

Converts list into array

Parameters

  • list

generateFileID

src/core/Utils.js:116-121

Takes a fileName and turns it into fileID, by converting to lowercase, removing extra characters and adding unix timestamp

Parameters

runPromiseSequence

src/core/Utils.js:130-136

Runs an array of promise-returning functions in sequence.

Parameters

  • functions
  • args ...Any

isPreviewSupported

src/core/Utils.js:152-158

Takes function or class, returns its name. Because IE doesnt support constructor.name. https://gist.github.com/dfkaye/6384439, http://stackoverflow.com/a/15714445

Parameters

  • fn Object — function
  • fileTypeSpecific

copyToClipboard

src/core/Utils.js:300-340

Copies text to clipboard by creating an almost invisible textarea, adding text there, then running execCommand('copy'). Falls back to prompt() when the easy way fails (hello, Safari!) From http://stackoverflow.com/a/30810322

Parameters

Returns Promise

isDOMElement

src/core/Utils.js:384-386

Check if an object is a DOM element. Duck-typing based on nodeType.

Parameters

  • obj Any

findDOMElement

src/core/Utils.js:394-402

Find a DOM element.

Parameters

Returns (Node | null)

Translator

src/core/Translator.js:14-86

Translates strings with interpolation & pluralization support. Extensible with custom dictionaries and pluralization functions.

Borrows heavily from and inspired by Polyglot https://github.com/airbnb/polyglot.js, basically a stripped-down version of it. Differences: pluralization functions are not hardcoded and can be easily added among with dictionaries, nested objects are used for pluralization as opposed to |||| delimeter

Usage example: translator.translate('files_chosen', {smart_count: 3})

Parameters

interpolate

src/core/Translator.js:48-69

Takes a string with placeholder variables like %{smart_count} file selected and replaces it with values from options {smart_count: 5}

Parameters

  • phrase string that needs interpolation, with placeholders
  • options object with values that will be used to replace placeholders

Returns string interpolated

Meta

translate

src/core/Translator.js:78-85

Public translate method

Parameters

  • key string
  • options object with values that will be used later to replace placeholders in string

Returns string translated (and interpolated)

Webcam

src/uppy-base/src/plugins/Webcam.js:8-336

Webcam Plugin

init

src/uppy-base/src/plugins/Webcam.js:61-78

Checks for getUserMedia support

detectFlash

src/uppy-base/src/plugins/Webcam.js:138-162

Detects if browser supports flash Code snippet borrowed from: https://github.com/swfobject/swfobject

Returns bool flash supported

stop

src/uppy-base/src/plugins/Webcam.js:247-264

Stops the webcam capture and video playback.

getImage

src/uppy-base/src/plugins/Webcam.js:300-317

Takes a snapshot and displays it in a canvas.

Parameters

  • video
  • opts

ProgressBar

src/plugins/ProgressBar.js:8-45

Extends Plugin

Progress bar

Informer

src/plugins/Informer.js:11-64

Extends Plugin

Informer Shows rad message bubbles used like this: core.emit('informer', 'hello world', 'info', 5000) or for errors: core.emit('informer', 'Error uploading img.jpg', 'error', 5000)

MetaData

src/plugins/MetaData.js:8-51

Extends Plugin

Meta Data Adds metadata fields to Uppy

Tus10

src/plugins/Tus10.js:29-363

Extends Plugin

Tus resumable file uploader

upload

src/plugins/Tus10.js:115-189

Create a new Tus upload

Parameters

  • file object for use with upload
  • current integer file in a queue
  • total integer number of files in a queue

Returns Promise

Client

src/plugins/Transloadit/Client.js:4-59

A Barebones HTTP API client for Transloadit.

createAssembly

src/plugins/Transloadit/Client.js:15-48

Create a new assembly.

Parameters

  • options object
  • $0 Object
    • $0.templateId
    • $0.params
    • $0.fields
    • $0.signature
    • $0.expectedFiles

getAssemblyStatus

src/plugins/Transloadit/Client.js:55-58

Get the current status for an assembly.

Parameters

  • url string The status endpoint of the assembly.

Socket

src/plugins/Transloadit/Socket.js:8-60

WebSocket status API client for Transloadit.