@8base/file-server-sdk

JavaScript SDK for working with files at 8base

Usage no npm install needed!

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

README

Example

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


client.mutate({
  mutation: gql`
    mutation SomeMutation($fileVariable: ID) {
      someMutation(file:$fileVariable) {
        fields
        ...
      }
    }`,
  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

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)