@spaceinvoices/js-sdk
v2.3.2
Published
Official JavaScript/TypeScript SDK for the Space Invoices API
Maintainers
Readme
@spaceinvoices/js-sdk
Official JavaScript/TypeScript SDK for the Space Invoices API.
Installation
npm install @spaceinvoices/js-sdk
# or
bun add @spaceinvoices/js-sdkUsage
Full SDK (Recommended)
import SpaceInvoices from '@spaceinvoices/js-sdk';
const sdk = new SpaceInvoices({ accessToken: 'your-api-key' });
// List invoices
const invoices = await sdk.invoices.list();
// Create an invoice
const invoice = await sdk.invoices.create({
entityId: 'entity_123',
body: {
date: '2024-01-15',
items: [{ name: 'Service', price: 100 }]
}
});Tree-Shakeable Import (Smaller Bundles)
import { initSDK, invoices, customers } from '@spaceinvoices/js-sdk';
// Initialize once at app startup
initSDK({ accessToken: 'your-api-key' });
// Use individual modules anywhere
const result = await invoices.list();Configuration Options
const sdk = new SpaceInvoices({
accessToken: 'your-api-key',
// Optional: custom API base URL
basePath: 'https://eu.spaceinvoices.com',
// Optional: callback for 401 responses
onUnauthorized: (response) => {
console.log('Token expired, refreshing...');
}
});Dynamic Token
const sdk = new SpaceInvoices({
accessToken: async () => {
// Fetch token from your auth system
return await getAccessToken();
}
});Features
- Full TypeScript Support - Complete type definitions for all API methods
- Tree-Shakeable - Import only what you need for smaller bundles
- ESM & CJS - Works in Node.js, browsers, and modern bundlers
- Zod Schemas - Optional Zod schemas for form validation
Zod Schemas
For form validation, import Zod schemas:
import { zod } from '@spaceinvoices/js-sdk';
// Validate invoice creation data
const result = zod.invoices.CreateInvoiceBody.safeParse(formData);
if (!result.success) {
console.log(result.error.issues);
}
// Available schemas follow PascalCase naming:
// - zod.invoices.CreateInvoiceBody
// - zod.customers.CreateCustomerBody
// - zod.items.CreateItemBody
// - etc.Documentation
Development
# Generate SDK (requires API running at localhost:3000)
bun run generate
# Build for distribution
bun run buildLicense
MIT
