Skip to content

devfolioco/tryouts-arnab-fullstack-2-sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vij-sdk

Lightweight JavaScript SDK to capture exceptions and messages from browser or Node.js and send them to a VIJ Admin endpoint.

Install

npm install vij-sdk

Usage

import { init, captureException, captureMessage, flush } from "vij-sdk";

init({
  endpoint: "https://your-vij-admin.example.com/api/logs",
  appId: "demo-app",
  environment: "development", // or "production"
  batch: true,
  flushIntervalMs: 3000,
  maxBatchSize: 20,
  // Optional: error-storm protection knobs (defaults shown)
  maxErrorsPerMinute: 10,
  dedupWindowMs: 30000,
  maxRecentErrors: 1000,
  initialBackoffMs: 1000,
  maxBackoffMs: 30000
});

try {
  throw new Error("Simulated crash in signup flow");
} catch (err) {
  captureException(err, { feature: "signup" });
}

captureMessage("User clicked retry", { feature: "signup" }, "info");

// Optionally wait for queued logs to be sent
await flush();

Payload

{
  "appId": "string",
  "message": "string",
  "stack": "string",
  "timestamp": "ISODate",
  "metadata": { "optional": "object" },
  "severity": "error | warning | info",
  "environment": "production | development",
  "userAgent": "string?"
}

Error‑storm protection

The SDK includes several safeguards to avoid becoming part of a failure storm:

  • Rate limit: drops events client‑side after maxErrorsPerMinute within a 60s window.
  • Deduplication: identical (message|stack) events within dedupWindowMs are suppressed.
  • Queue cap: oldest events are dropped when maxQueueSize is exceeded.
  • Exponential backoff: network failures or 429/5xx responses trigger backoff with doubling delays up to maxBackoffMs.
  • Server‑driven backoff: honors x-vij-backoff or Retry-After headers (seconds or HTTP date).
  • Batching: when enabled, events are sent in batches and retried later if backoff is active.

These features ensure runaway recursion or tight error loops don't overwhelm the network or server, while still preserving representative samples.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.1%
  • JavaScript 2.9%