@lacspace/analytics
v2.0.6
Published
Event tracking for Lacspace platforms — batching and an offline queue.
Maintainers
Readme
@lacspace/analytics
Event tracking for Lacspace platforms — fire instantly, or queue and flush in one batch.
Track one event at a time, or batch many into a single request — great for offline-first apps and cutting network chatter.
- 📊
track·queueEvent·flush·batch - ⚡ Zero dependencies · 🌍 isomorphic · 📦 ESM + CJS · fully typed
Install
npm install @lacspace/analytics # or pnpm add / yarn add / bun addQuick start
import { LacspaceAnalytics } from "@lacspace/analytics";
const analytics = new LacspaceAnalytics({ baseURL: "https://api.lacspace.com/api" });
await analytics.track("product_viewed", { id: "p_123", price: 499 });Recipes
Batch cheaply, send once
analytics.queueEvent("page_view", { path: "/tea" });
analytics.queueEvent("scroll", { depth: 0.5 });
analytics.queueEvent("add_to_cart", { id: "p_123" });
analytics.pending; // 3
await analytics.flush(); // one request, queue clearedFlush on a timer and before the page unloads
setInterval(() => analytics.flush(), 10_000);
window.addEventListener("beforeunload", () => analytics.flush());Send an explicit batch
await analytics.batch([
{ name: "signup", data: { plan: "free" } },
{ name: "invite_sent", data: { count: 3 } },
]);Tie events to the signed-in user — reuse an authenticated client
import { LacspaceApi } from "@lacspace/api";
const api = new LacspaceApi({ baseURL, apiKey: userToken });
const analytics = new LacspaceAnalytics({ api });With
@lacspace/sdkthis issdk.analytics, already wired to your session.
API
track(name, data?) · queueEvent(name, data?) (chainable) · flush() · batch(events) · pending · analytics.api. Every event is stamped with a ts (epoch ms). Custom routes via endpoints: { track, batch }.
The Lacspace family
| Package | For |
| --- | --- |
| @lacspace/sdk | Everything in one client |
| @lacspace/api | The core HTTP client |
| @lacspace/auth | Login, register, tokens |
| @lacspace/analytics | Event tracking (this package) |
| @lacspace/react | React hooks |
| @lacspace/nepali-date | Bikram Sambat dates |
| @lacspace/nepali-utils | Nepal helpers |
Licensing
This package is free under the Lacspace Free Licence — permissive freedoms. Use it in personal and commercial projects at no cost; just keep the notice.
Not every Lacspace package is free. We also offer Commercial (paid), Client-specific, and Private (proprietary) packages under separate terms. See the full Lacspace Licence Centre.
The Lacspace Developer Platform
@lacspace/analytics is part of 63 zero-dependency, isomorphic TypeScript packages — one standard library for the modern web. Explore the ecosystem:
- 📦 This package, documented — https://developer.lacspace.com/packages/analytics
- 🗂️ All 63 packages — https://developer.lacspace.com/packages
- 🧭 Developer handbook — guides & runnable recipes — https://developer.lacspace.com/handbook
- 🧪 Live playground — run any package in your browser — https://developer.lacspace.com/playground
- 🖥️ Finished app templates — https://templates.lacspace.com
- 🚀 Scaffold a full app —
npm create lacspace-app@latest
Free under the Lacspace Free Licence — a permissive, free-to-use licence.
