TypeScript SDK

Official SDKs for building with the Fabric API in TypeScript.

Installation

npm install @fbrc/sdk

Usage

import { Fabric } from "@fbrc/sdk";

const api = new Fabric({
  apiKey: process.env.FABRIC_API_KEY!,
});

const workspace = await api.workspaces.create({
  name: "Project Alpha",
});

See more examples in our Developer Guide.

Error handling

Errors can be caught directly using try/catch, or handled globally using middleware.

Direct error handling

import { Fabric, ResponseError } from '@fbrc/sdk';

const api = new Fabric({
  apiKey: process.env.FABRIC_API_KEY!,
});

try {
  const workspace = await api.workspaces.create({
    name: 'Project Alpha',
  });
} catch (err: any) {
  if (err instanceof ResponseError) {
    console.log('Status code:', err.response?.status);
    console.log('Status text:', err.response?.statusText);
    return;
  }
  throw err;
}

Handling using middleware

import { Fabric, ResponseError, Middleware } from '@fbrc/sdk';

const errorMiddleware: Middleware = {
  onError: async (context: ErrorContext) => {
    const err = context.error;
    if (err instanceof ResponseError) {
      console.log('Status code:', err.response?.status);
      console.log('Status text:', err.response?.statusText);
    } else {
      console.error(err);
    }
  }
}

const api = new Fabric({
  apiKey: process.env.FABRIC_API_KEY!,
  middleware: [errorMiddleware]
});

const workspace = await api.workspaces.create({
  name: 'Project Alpha',
});

Trace Id

Each request contains a header x-trace-id so that you can quickly log failing requests and report them back to Fabric.

import { Fabric, ResponseError } from '@fbrc/sdk';

const api = new Fabric({
  apiKey: process.env.FABRIC_API_KEY!,
});

try {
  const workspace = await api.workspaces.create({
    name: 'Project Alpha',
  });
} catch (err: any) {
  if (err instanceof ResponseError) {
    console.log('Trace id:', err.response?.headers['x-trace-id']);
    return;
  }
  throw err;
}