mirror of
https://github.com/Mintplex-Labs/bree.git
synced 2026-07-18 18:44:30 -04:00
114 lines
3.2 KiB
TypeScript
114 lines
3.2 KiB
TypeScript
// Definitions by: Taylor Schley <https://github.com/shadowgate15>
|
|
|
|
import { EventEmitter } from 'node:events';
|
|
import { WorkerOptions, Worker } from 'node:worker_threads';
|
|
import { Timeout, Interval } from 'safe-timers';
|
|
|
|
export = Bree;
|
|
|
|
declare class Bree extends EventEmitter {
|
|
config: Bree.BreeConfigs;
|
|
|
|
closeWorkerAfterMs: Record<string, unknown>;
|
|
workers: Record<string, Worker>;
|
|
timeouts: Record<string, Timeout>;
|
|
intervals: Record<string, Interval>;
|
|
|
|
isSchedule: (value: any) => boolean;
|
|
getWorkerMetadata: (
|
|
name: string,
|
|
meta?: Record<string, unknown>
|
|
) => Record<string, unknown>;
|
|
|
|
run: (name?: string) => void;
|
|
|
|
start: (name?: string) => void;
|
|
stop: (name?: string) => Promise<void>;
|
|
add: (
|
|
jobs:
|
|
| string
|
|
| (() => void)
|
|
| Bree.JobOptions
|
|
| Array<string | (() => void) | Bree.JobOptions>
|
|
) => void;
|
|
|
|
remove: (name: string) => Promise<void>;
|
|
|
|
removeSafeTimer: (type: string, name: string) => void;
|
|
|
|
validateJob: (
|
|
job: string | (() => void) | Bree.JobOptions,
|
|
i: number,
|
|
names: string[],
|
|
config: Bree.BreeOptions
|
|
) => void;
|
|
|
|
getName: (job: string | Record<string, unknown> | (() => void)) => string;
|
|
|
|
getHumanToMs: (_value: string) => number;
|
|
parseValue: (
|
|
value: boolean | string | number | Record<string, unknown>
|
|
) => number | boolean | Record<string, unknown>;
|
|
|
|
createWorker: (filename: string, options: Partial<WorkerOptions>) => Worker;
|
|
|
|
constructor(config?: Bree.BreeOptions);
|
|
}
|
|
|
|
declare namespace Bree {
|
|
interface JobOptions {
|
|
name?: string;
|
|
path?: string | (() => void);
|
|
timeout?: number | string | boolean;
|
|
interval?: number | string;
|
|
date?: Date;
|
|
cron?: string;
|
|
hasSeconds?: boolean;
|
|
cronValidate?: Record<string, unknown>;
|
|
closeWorkerAfterMs?: number;
|
|
worker?: Partial<WorkerOptions>;
|
|
outputWorkerMetadate?: boolean;
|
|
timezone?: string;
|
|
}
|
|
|
|
interface BreeConfigs {
|
|
logger: Record<string, unknown>;
|
|
root: string | boolean;
|
|
timeout: number | boolean;
|
|
interval: number;
|
|
timezone: string;
|
|
jobs: Array<string | (() => void) | JobOptions>;
|
|
hasSeconds: boolean;
|
|
cronValidate: Record<string, unknown>;
|
|
closeWorkerAfterMs: number;
|
|
defaultExtension: string;
|
|
acceptedExtensions: string[];
|
|
worker: WorkerOptions;
|
|
errorHandler?: (error: any, workerMetadata: any) => void;
|
|
workerMessageHandler?: (message: any, workerMetadata: any) => void;
|
|
outputWorkerMetadate: boolean;
|
|
}
|
|
|
|
interface BreeOptions {
|
|
logger?: Record<string, unknown>;
|
|
root?: string | boolean;
|
|
timeout?: number | boolean;
|
|
interval?: number;
|
|
timezone?: string;
|
|
jobs?: Array<string | (() => void) | JobOptions>;
|
|
hasSeconds?: boolean;
|
|
cronValidate?: Record<string, unknown>;
|
|
closeWorkerAfterMs?: number;
|
|
defaultExtension?: string;
|
|
acceptedExtensions?: string[];
|
|
worker?: WorkerOptions;
|
|
errorHandler?: (error: any, workerMetadata: any) => void;
|
|
workerMessageHandler?: (message: any, workerMetadata: any) => void;
|
|
outputWorkerMetadate?: boolean;
|
|
}
|
|
|
|
type PluginFunc<T = unknown> = (options: T, c: typeof Bree) => void;
|
|
|
|
function extend<T = unknown>(plugin: PluginFunc<T>, options?: T): Bree;
|
|
}
|