JavaScript SDK for working with files at 8base


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
Minified + gzip package size for @8base/file-server-sdk in KB



import { FileUploadLink } from '@8base/file-server-sdk';

const link = ApolloLink.from([
  new FileUploadLink(),
  new HttpLink({ uri }),

const client = new ApolloClient({
  networkInterface: link,

var file = document.getElementById("InputFile").files[0];
file.metadata = {...};
file.public = true; // if you want file to be publically accessible

  mutation: gql`
    mutation SomeMutation($fileVariable: ID) {
      someMutation(file:$fileVariable) {
  variables: {
    fileVariable: file

file.upload.onprogress = callbackProgress;
file.upload.onload = callbackLoad;

Image operations - add at the end of the file download URL:

 - /100x /x200 - resize

 - /200x100 - fit into rectangle (resize on the larger side)

 - /200x100! - force resize

 - /100x100:400x400 /100x100: /:400x400 - crop

 - /r90 /r-90 - rotate

 - /@2 - scale

 - /100x100:400x400/100x /r180/@2 - combine


Use this when you need to update the library in NPM. The following command will automatically set the version, create a tag for it, build the package and publish it to NPM

git add -A
git commit -m 'version update'
npm version <newversion> # insert your version here (e.g. 0.0.2)

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.