main
1import { type RequestInfo, type RequestInit } from './vendor-core.js';
2import { type Buffer } from 'node:buffer';
3export type LogEntry = {
4 verbose?: boolean;
5} & ({
6 kind: 'cmd';
7 cmd: string;
8 cwd: string;
9 id: string;
10} | {
11 kind: 'stdout';
12 data: Buffer;
13 id: string;
14} | {
15 kind: 'stderr';
16 data: Buffer;
17 id: string;
18} | {
19 kind: 'end';
20 exitCode: number | null;
21 signal: NodeJS.Signals | null;
22 duration: number;
23 error: null | Error;
24 id: string;
25} | {
26 kind: 'cd';
27 dir: string;
28} | {
29 kind: 'fetch';
30 url: RequestInfo;
31 init?: RequestInit;
32} | {
33 kind: 'retry';
34 attempt: number;
35 total: number;
36 delay: number;
37 exception: unknown;
38 error?: string;
39} | {
40 kind: 'custom';
41 data: any;
42} | {
43 kind: 'kill';
44 pid: number | `${number}`;
45 signal: NodeJS.Signals | null;
46});
47type LogFormatters = {
48 [key in LogEntry['kind']]: (entry: Extract<LogEntry, {
49 kind: key;
50 }>) => string | Buffer;
51};
52type Log = {
53 (entry: LogEntry): void;
54 formatters?: Partial<LogFormatters>;
55 output?: NodeJS.WriteStream;
56};
57export declare const log: Log;
58export declare function formatCmd(cmd: string): string;
59export {};