@spike-forms/sdk
v0.2.2
Published
TypeScript SDK for the Spike Forms API
Maintainers
Readme
@spike-forms/sdk
TypeScript SDK for the Spike Forms API.
Installation
npm install @spike-forms/sdk
# or
pnpm add @spike-forms/sdk
# or
yarn add @spike-forms/sdkQuick Start
import { SpikeClient } from '@spike-forms/sdk';
// Initialize the client with your API key
const client = new SpikeClient({
apiKey: 'sk_your_api_key_here',
});
// List all forms
const forms = await client.forms.list();
// Create a new form
const form = await client.forms.create({
name: 'Contact Form',
});
// Get form submissions
const submissions = await client.submissions.list(form.id);Configuration
const client = new SpikeClient({
apiKey: 'sk_your_api_key_here',
baseUrl: 'https://spike.ac', // Optional, defaults to https://spike.ac
timeout: 30000, // Optional, defaults to 30000ms
});Resources
The SDK provides access to the following resources:
client.forms- Manage formsclient.submissions- Manage form submissionsclient.rules- Manage form rulesclient.projects- Manage projectsclient.teams- Manage teams and membersclient.user- Manage user profile and settingsclient.billing- Manage billing and subscriptionsclient.files- Manage uploaded files
Error Handling
The SDK throws specific error types for different error conditions:
import {
SpikeError,
AuthenticationError,
NotFoundError,
RateLimitError,
ValidationError,
NetworkError,
} from '@spike-forms/sdk';
try {
await client.forms.get('non-existent-id');
} catch (error) {
if (error instanceof NotFoundError) {
console.log('Form not found');
} else if (error instanceof AuthenticationError) {
console.log('Invalid API key');
} else if (error instanceof RateLimitError) {
console.log(`Rate limited. Retry after ${error.retryAfter} seconds`);
}
}License
MIT
