filepicker-js

Filepicker client javascript library

Usage no npm install needed!

<script type="module">
  import filepickerJs from 'https://cdn.skypack.dev/filepicker-js';
</script>

README

filepicker-js

Filepicker javascript client library.

Usage

In order to use filepicker javascript library in your project, you need to include the following script in your HTML:

<script type="text/javascript" src="//api.filepicker.io/v2/filepicker.js"></script>

If you want to load the javascript in a non-blocking fashion, you can use this instead:

<script type="text/javascript">
(function(a){if(window.filepicker){return}var b=a.createElement("script");b.type="text/javascript";b.async=!0;b.src=("https:"===a.location.protocol?"https:":"http:")+"//api.filepicker.io/v2/filepicker.js";var c=a.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c);var d={};d._queue=[];var e="pick,pickMultiple,pickAndStore,read,write,writeUrl,export,convert,store,storeUrl,remove,stat,setKey,constructWidget,makeDropPane".split(",");var f=function(a,b){return function(){b.push([a,arguments])}};for(var g=0;g<e.length;g++){d[e[g]]=f(e[g],d._queue)}window.filepicker=d})(document);
</script>

Script above use latest library release. Assets are compressed (gzipped) and served via CDN. You can also link to specific version.

https://api.filepicker.io/v2/filepicker-2.1.3.js https://api.filepicker.io/v2/filepicker-2.1.3.min.js

See Changelog

Filepicker library is avaliable via bower Bower friendly repositorium

$ bower install filepicker-js --save

And via npm + browserify

$ npm install filepicker-js --save

To use it with browseify place in your code:

var filepickerLibrary = require('filepicker-js');

Library provide window.filepicker with methods: setKey, pick, pickFolder, pickMultiple, pickAndStore, read, write, writeUrl, export, processImage, store, storeUrl, stat, metadata, remove, convert, constructWidget, makeDropPane. See detailed docs.

Next thing to do is setting apikey. If you dont have one - register free account here. Setting key is possible in 2 ways:

  • use filepicker.setKey('yourApiKey') method.
  • as widget attribute data-fp-apikey="yourApiKey"

Contributing

Contributing welcomed. First install npm dependencies.

npm install

To watch changes and build script run:

npm run watch

With jshint:

npm run watch-linter

Releasing

  1. When updating version be sure to update it in all files:
./VERSION
./package.json
./src/library/lib.js
  1. Set git tag with current version.

  2. Be sure to update npm package version :

npm publish
  1. And Bower-friendly version of filepicker-js

Deployment

Filepicker

Use ansible script to deploy current version for filepicker.

source ../vagrant/aws/new && ansible-playbook -i env/production/inventory filepicker_api/deploy_js_library_v2.yml
  • optionally to deploy from branch othter than master
-e emergency_deploy="yes"
  • optionally not to overwrite edge version
-e edge_version="no"

It overwrites filepicker.js with current version. It creates versioned files, eg for v2.4.0:

Filestack

source ~/.filepicker/aws_new && ansible-playbook -i env/production filestack_api/build_js.yml

Its working basically the same. The only diffrents is domain and file name it creates. https://api.filestackapi.com/filestack.js