@trpc/client
Version:
69 lines • 2.29 kB
text/typescript
import { a as OperationResultEnvelope, d as TRPCClientError, n as Operation, u as TRPCLink } from "./types-BrCJd1zp.cjs";
import { AnyRouter, InferrableClientTypes } from "@trpc/server/unstable-core-do-not-import";
//#region src/links/loggerLink.d.ts
type ConsoleEsque = {
log: (...args: any[]) => void;
error: (...args: any[]) => void;
};
type EnableFnOptions<TRouter extends InferrableClientTypes> = {
direction: 'down';
result: OperationResultEnvelope<unknown, TRPCClientError<TRouter>> | TRPCClientError<TRouter>;
} | (Operation & {
direction: 'up';
});
type EnabledFn<TRouter extends AnyRouter> = (opts: EnableFnOptions<TRouter>) => boolean;
type LoggerLinkFnOptions<TRouter extends AnyRouter> = Operation & ({
/**
* Request result
*/
direction: 'down';
result: OperationResultEnvelope<unknown, TRPCClientError<TRouter>> | TRPCClientError<TRouter>;
elapsedMs: number;
} | {
/**
* Request was just initialized
*/
direction: 'up';
});
type LoggerLinkFn<TRouter extends AnyRouter> = (opts: LoggerLinkFnOptions<TRouter>) => void;
type ColorMode = 'ansi' | 'css' | 'none';
/**
* Options for {@link loggerLink}.
*
* @see https://trpc.io/docs/client/links/loggerLink#loggerlink-options
*/
interface LoggerLinkOptions<TRouter extends AnyRouter> {
/**
* Replaces the built-in logger. Called when a call starts and for each
* result or error, so a subscription calls it for every event.
*/
logger?: LoggerLinkFn<TRouter>;
/**
* Decides whether to log a call.
* @default () => true
*/
enabled?: EnabledFn<TRouter>;
/**
* The console the built-in logger writes to.
*/
console?: ConsoleEsque;
/**
* Color mode
* @default typeof window === 'undefined' ? 'ansi' : 'css'
*/
colorMode?: ColorMode;
/**
* Include context in the log - defaults to false unless `colorMode` is 'css'
*/
withContext?: boolean;
}
/**
* Logs each call when it starts, and each result or error it gets with the
* time since the start.
*
* @see https://trpc.io/docs/client/links/loggerLink
*/
declare function loggerLink<TRouter extends AnyRouter = AnyRouter>(opts?: LoggerLinkOptions<TRouter>): TRPCLink<TRouter>;
//#endregion
export { loggerLink as n, LoggerLinkOptions as t };
//# sourceMappingURL=loggerLink-BEMtA7V5.d.cts.map