@convex-dev/action-retrier
Version:
Convex component for retrying idempotent actions.
38 lines (35 loc) • 892 B
text/typescript
import { LogLevel } from "./schema.js";
type Logger = {
debug: (...args: unknown[]) => void;
info: (...args: unknown[]) => void;
warn: (...args: unknown[]) => void;
error: (...args: unknown[]) => void;
};
export function createLogger(level: LogLevel): Logger {
const levelIndex = ["DEBUG", "INFO", "WARN", "ERROR"].indexOf(level);
if (levelIndex === -1) {
throw new Error(`Invalid log level: ${level}`);
}
return {
debug: (...args: unknown[]) => {
if (levelIndex <= 0) {
console.debug(...args);
}
},
info: (...args: unknown[]) => {
if (levelIndex <= 1) {
console.info(...args);
}
},
warn: (...args: unknown[]) => {
if (levelIndex <= 2) {
console.warn(...args);
}
},
error: (...args: unknown[]) => {
if (levelIndex <= 3) {
console.error(...args);
}
},
};
}