0.0.1 • Published 2 years ago

@analytickit/plugin-contrib v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

AnalyticKit Plugin Contrib

npm package MIT License

This project contains shared code that AnalyticKit plugin authors can use.

Code imported from this package runs outside the plugin virtual machine, and can thus use timeouts and other NodeJS features.

Included in this package

Batch processing

import { createBuffer } from '@analytickit/plugin-contrib'
import fetch from 'node-fetch'

export function setupPlugin({ global }) {
    global.buffer = createBuffer({
        limit: 10 * 1024 * 1024, // 10 MB
        timeoutSeconds: 10 * 60, // 10 minutes
        onFlush: async (batch) => {
            const resp = await fetch('https://httpbin.org/post', {
                method: 'post',
                body: JSON.stringify(batch),
                headers: { 'Content-Type': 'application/json' },
            })
            const json = await resp.json()
            if (!json.success) {
                // retry somehow?
            }
        },
    })
}

export function teardownPlugin({ global }) {
    global.buffer.flush()
}

export function processEvent(event, { config, global }) {
    global.buffer.add(event, JSON.stringify(event).length) // add(object, points)
    return event
}

Releasing a new version

It's magic! Just bump up version in package.json on the main branch and the new version will be published automatically, on GitHub and on npm. Courtesy of GitHub Actions.

Questions?

Join our Slack community.