@posthog/plugin-contrib
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.5 • Public • Published

    PostHog Plugin Contrib

    npm package MIT License

    This project contains shared code that PostHog 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 '@posthog/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.

    Keywords

    none

    Install

    npm i @posthog/plugin-contrib

    DownloadsWeekly Downloads

    579

    Version

    0.0.5

    License

    MIT

    Unpacked Size

    9.5 kB

    Total Files

    11

    Last publish

    Collaborators

    • xavier-posthog
    • ben-posthog
    • alexkim205
    • twixes
    • fuziontech
    • mariusandra
    • yakkomajuri
    • macobo
    • timgl