JavaScript SDK for working with files at 8base


0.0.833 years ago4 years agoMinified + gzip package size for @8base/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

Publish to NPM

(only user with access to master can release new updates) 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 run upload

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.