Skip to main content Skip to navigation

Documentation

Everything you need to build irresistible applications

Custom Integrations

Build your own integrations using our API.

Integration SDK

Install the SDK:

npm install @irresistible/sdk

Basic Usage

import { IrresistibleSDK } from '@irresistible/sdk';

const sdk = new IrresistibleSDK({
  apiKey: 'your-api-key'
});

// Deploy a project
await sdk.projects.deploy('project-id');

// Get deployment status
const status = await sdk.deployments.get('deployment-id');

Building Custom Integrations

1. Authentication

Use API keys or OAuth:

// API Key
const sdk = new IrresistibleSDK({ apiKey: 'key' });

// OAuth
const sdk = new IrresistibleSDK({ 
  clientId: 'id',
  clientSecret: 'secret' 
});

2. Event Handling

Listen for events:

sdk.on('deployment.completed', (event) => {
  console.log('Deployment completed:', event);
});

3. Custom Actions

Create custom workflows:

async function customDeploy(projectId) {
  // Pre-deploy checks
  await runTests();
  
  // Deploy
  const deployment = await sdk.projects.deploy(projectId);
  
  // Post-deploy actions
  await notifyTeam(deployment);
  
  return deployment;
}

Integration Examples

Automated Testing

Run tests before deployment:

sdk.hooks.beforeDeploy(async (context) => {
  const testResults = await runTests();
  
  if (!testResults.passed) {
    throw new Error('Tests failed');
  }
});

Custom Notifications

Send custom notifications:

sdk.on('deployment.completed', async (event) => {
  await sendEmail({
    to: 'team@company.com',
    subject: `Deployment completed: ${event.project.name}`,
    body: `Version ${event.version} is now live!`
  });
});

Monitoring Integration

Track custom metrics:

sdk.on('deployment.completed', async (event) => {
  await metrics.track('deployment', {
    project: event.project.id,
    duration: event.duration,
    status: event.status
  });
});

API Reference

Full API documentation at https://docs.irresistible.dev/api