TypeScript SDK
Official SDKs for building with the Exabase API in TypeScript.
Installation
npm install @exabase/sdk
Usage
import { Exabase } from "@exabase/sdk";
const api = new Exabase({
apiKey: process.env.EXABASE_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 { Exabase, ResponseError } from '@exabase/sdk';
const api = new Exabase({
apiKey: process.env.EXABASE_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 { Exabase, ResponseError, Middleware } from '@exabase/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 Exabase({
apiKey: process.env.EXABASE_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 Exabase.
import { Exabase, ResponseError } from '@exabase/sdk';
const api = new Exabase({
apiKey: process.env.EXABASE_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;
}