@tinyweb_dev/tracking-nodejs
v0.1.0
Published
Tiny Tracking error monitoring SDK for Node.js (Express middleware, global handlers, NestJS support)
Readme
@tinyweb_dev/tracking-nodejs
Tiny Tracking error monitoring SDK for Node.js applications.
Installation
npm install @tinyweb_dev/tracking-nodejsUsage
Basic Setup
import TinyTrackingNode from '@tinyweb_dev/tracking-nodejs';
const tracker = new TinyTrackingNode({
apiKey: 'your-api-key',
endpoint: 'https://tracking-api.tinyweb.online',
environment: 'production',
tags: {
service: 'my-api',
},
});Global Error Handlers
Automatically capture uncaught exceptions and unhandled rejections:
import TinyTrackingNode, { setupGlobalErrorHandlers } from '@tinyweb_dev/tracking-nodejs';
const tracker = new TinyTrackingNode({
apiKey: 'your-api-key',
environment: 'production',
});
setupGlobalErrorHandlers(tracker);Express Middleware
Use with Express or Connect-compatible frameworks:
import express from 'express';
import TinyTrackingNode, { createErrorMiddleware } from '@tinyweb_dev/tracking-nodejs';
const app = express();
const tracker = new TinyTrackingNode({
apiKey: 'your-api-key',
});
// Add error middleware (must be after routes)
app.use(createErrorMiddleware(tracker));Manual Error Tracking
try {
// Your code here
} catch (error) {
tracker.captureError(error,
{ operation: 'create-user' },
{ userId: '123' }
);
throw error;
}Capture Error from HTTP Request
import { IncomingMessage } from 'http';
function handleRequest(req: IncomingMessage) {
try {
// Your code here
} catch (error) {
tracker.captureErrorFromRequest(error, req, { operation: 'handle-request' });
}
}
### Setting User Context
```typescript
tracker.setUser({
id: '123',
email: '[email protected]',
name: 'John Doe',
});
### Adding Tags
```typescript
tracker.setTags({
version: '1.0.0',
region: 'us-east-1',
});
## API
### TinyTrackingNode
Main class for error tracking:
- `constructor(options: TinyTrackingOptions)`: Create a new tracker instance
### Methods
- `captureError(error, extraTags?, extraData?)`: Capture an error with optional context
- `captureErrorFromRequest(error, req, extraTags?)`: Capture an error from an HTTP request
- `setUser(user)`: Set user context
- `setTags(tags)`: Add global tags
- `flush()`: Manually flush buffered errors
- `destroy()`: Clean up resources
- `getTracker()`: Get the underlying TinyTracking core instance
### Helper Functions
- `setupGlobalErrorHandlers(tracker)`: Set up global uncaught exception and unhandled rejection handlers
- `createErrorMiddleware(tracker)`: Create Express/Connect-compatible error middleware
## Configuration Options
```typescript
interface TinyTrackingOptions {
apiKey: string; // Required: Your API key
endpoint?: string; // Optional: API endpoint (default: https://tracking-api.tinyweb.online)
maxBuffer?: number; // Optional: Max buffered errors (default: 100)
flushInterval?: number; // Optional: Flush interval in ms (default: 5000)
tags?: Record<string, string>;
user?: { id?: string; email?: string; name?: string };
extra?: Record<string, any>;
environment?: string;
}License
MIT
