logfire.ai - Typescript types
npm install @logfire-sh/types@logfire-sh/typestypescript
// For example, IlogfireLog
import { IlogfireLog } from '@logfire-sh/types';
`
Types
$3
Config options for the logfire Base class for creating a logfire client instance.
`typescript
export interface IlogfireOptions {
/**
* Endpoint URL for syncing logs with logfire.ai
*/
endpoint: string;
/**
* Maximum number of logs to sync in a single request to logfire.ai
*/
batchSize: number;
/**
* Max interval (in milliseconds) before a batch of logs proceeds to syncing
*/
batchInterval: number;
/**
* Maximum number of sync requests to make concurrently (useful to limit
* network I/O)
*/
syncMax: number;
/**
* Boolean to specify whether thrown errors/failed logs should be ignored
*/
ignoreExceptions: boolean;
}
`
$3
Enum representing a log level between _debug_ -> _error_:
`typescript
enum LogLevel {
Debug = 'debug',
Info = 'info',
Warn = 'warn',
Error = 'error',
}
`
$3
You can add meta information to your logs by adding a string, boolean, Date or number to a string field (or any nested object containing fields of the same.)
We call this 'context' and these are the types:
`typescript
/**
* Context type - a string/number/bool/Date, or a nested object of the same
*/
export type ContextKey = string | number | boolean | Date;
export type Context = { [key: string]: ContextKey | Context };
`
$3
The log object which is implicitly created by calling .log() (or any explicit log level function - e.g. .info()), and is passed down the chain for logfire middleware before syncing with logfire.ai
`typescript
interface IlogfireLog {
dt: Date;
level: LogLevel; // <-- see LogLevel above
message: string;
[key: string]: ContextKey | Context; // <-- see Context above
}
`
$3
A type representing a Middleware function passed to .use() (or .remove())
`typescript
type Middleware = (log: IlogfireLog) => Promise;
`
$3
The type of the function passed to .setSync(), for syncing a log with logfire.ai:
Note: Differs from the Middleware type because it receives - and resolves to a Promise of - an array of batched IlogfireLog.
`typescript
Sync = (logs: IlogfireLog[]) => Promise
``