@jackburton/sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.1-alpha.13 • Public • Published

JackBurton

JackBurton Extension SDK

Installation

Installing our sdk in your existing project is as easy as :

npm install @jackburton/sdk

Configuration

Before using the SDK, you need to initialize it with your JackBurton API credentials, like this :

import { configure } from '@jackburton/sdk';

configure({ apiKey: '<your api key here>' });
// Have fun using the sdk

Usage

Note

Work in progress

We're implementing all the endpoints available in our extension API bits by bits.

If any feature is currently missing in the version of the SDK you're using, you can still access any endpoint using our raw client :

import { configure, useApi } from '@jackburton/sdk';

// remember to configure the sdk
// configure({ apiKey: '<api key>' });

const client = useApi();
client.createCall({ call: { /* ... */ } });

We recommand using this SDK in TypeScript, all the types for the API are available.

Amazon Connect integration

Use the following to integrate Amazon Connect with Jack Burton:

import { configure } from '@jackburton/sdk';
import { configureAWS, handleEvent } from '@jackburton/sdk/integrations/amazon-connect/index.js';

configure({ apiKey: '<your api key>' });
configureAWS({
    accessKeyId: '<secret>', // This is optional if your Lambda has the Connect > Read > DescribeUser permission
    secretAccessKey: '<secret>',
});
export const handler = (evt) => handleEvent(evt);

search:created

To listen to a search event through a webhook, you only have to do the following :

import Fastify from 'fastify';
import { configure, createSearchHandler } from '@jackburton/sdk';
import type { SearchEventData } from '@jackburton/sdk';

// remember to configure the sdk
// configure({ apiKey: process.env.JACKBURTON_APIKEY });

const fastify = Fastify({logger: true});

// Will only listen to search labelled as product
const productSearchHandler = createSearchHandler("product", async (search: SearchEventData)=>{

    //Perform the search on your data
    const ownData = ["one-one", "one-two", "one-three"];
    const filteredData = ownData.filter((s: string) => s.indexOf(search.query) > -1);

    // Turn your data into SearchResults
    return filteredData.map((s: string) => ({ title: s }));
    
});

// Webhook listener
fastify.route({ method: 'POST', url: '/webhook/search',
    handler: async (request: any, reply: any) => {
        productSearchHandler(request.body);
    }
});

fastify.listen();

Examples are shown for a fastify app to listen to the webhook event, but use the tool you're most comfortable with

Adapters

Cloudflare

To deploy a new JackBurton extension on Cloudflare, we provide an easy-to-use adapter.

Here is an example to listen to different search events inside one webhook :

import {createSearchHandler, createCloudflareAdapter} from '@jackburton/sdk';

const productSearchHandler = createSearchHandler('product', ()=>{/* ... */});
const userSearchHandler = createSearchHandler('user', ()=>{/* ... */});

export default createCloudflareAdapter([productSearchHandler, userSearchHandler]);

Readme

Keywords

none

Package Sidebar

Install

npm i @jackburton/sdk

Weekly Downloads

13

Version

0.0.1-alpha.13

License

ISC

Unpacked Size

843 kB

Total Files

557

Last publish

Collaborators

  • paulv_jb