npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@jackburton/sdk

v0.0.1-alpha.13

Published

JackBurton

Downloads

59

Readme

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]);