JavaScript SDK for working with files at 8base

Usage no npm install needed!

<script type="module">
  import 8baseSdk from 'https://cdn.skypack.dev/@8base/sdk';



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