Skip to content

getlago/lago-javascript-client

Repository files navigation

Lago JavaScript Client

This is a JavaScript wrapper for Lago API. Works in Cloudflare Workers, Deno, and Node.js. Generated from the Lago OpenAPI document.

PyPI version License: MIT

Current Releases

Project Release Badge
Lago Lago Release
Lago JavaScript Client Lago JavaScript Client Release

Installation

For npm users:

npm install lago-javascript-client
// npm
import { Client, getLagoError } from 'lago-javascript-client';

// Deno
import { Client, getLagoError } from 'https://deno.land/x/lago/mod.ts';

const lagoClient = Client('__YOUR_API_KEY__');

try {
    const { data } = await lagoClient.billableMetrics.createBillableMetric(billableMetric);
} catch (error) {
    const lagoError = await getLagoError<typeof lagoClient.billableMetrics.createBillableMetric>(error);
}

Compatibility

This SDK uses the Fetch API and natively supported Node.js version >= 18. For other Node versions:

  1. Ideally, run Node with the --experimental-fetch flag

  2. Otherwise, polyfill the Fetch API by doing both:

    1. Patching globalThis

    2. Pass a Fetch instance to the Lago client

      import { Client } from 'lago-javascript-client';
      import fetch from 'node-fetch';
      
      const lagoClient = Client("api_key", { customFetch: fetch });

Usage

Check the Lago API reference

Error handling

Use the get getLagoError<>() utility function to extract the error object and TypeScript type:

try {
    const { data } = await lagoClient.billableMetrics.createBillableMetric(billableMetric);
} catch (error) {
    const lagoError = await getLagoError<typeof lagoClient.billableMetrics.createBillableMetric>(error);
}

Development

Uses dnt to build and test for Deno and Node.

Release new version

Change the affected fields in scripts/build_npm.ts and commit to GitHub. GitHub Actions will build and deploy to npm.

Dependencies

Requires Deno and Node.js >= 18

Generate client from OpenAPI

deno task generate:openapi

Run tests

deno task test

Build

deno task build

Publish to npm

deno task build
cd npm
npm publish

Documentation

The Lago documentation is available at doc.getlago.com.

Contributing

The contribution documentation is available here

License

Lago JavaScript client is distributed under MIT license.