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;
}