Logos DX
    Preparing search index...

    Interface FetchPlugin<H, P, S>

    Plugin contract for extending FetchEngine with hook-based behavior.

    Plugins wrap existing functionality (cache, dedupe, rate-limit) or add new capabilities by registering hooks on the engine. Each plugin returns an unsubscribe function from install() for cleanup.

    function authPlugin(getToken: () => Promise<string>) {
    return {
    name: 'auth',
    install(engine) {
    return engine.hooks.add('beforeRequest', async (url, opts, ctx) => {
    const token = await getToken();
    ctx.args(url, { ...opts, headers: { ...opts.headers, Authorization: `Bearer ${token}` } });
    });
    }
    } satisfies FetchPlugin;
    }
    interface FetchPlugin<H = unknown, P = unknown, S = unknown> {
        hooks?: HookEngine<any, [string]>;
        name: string;
        install(engine: FetchEnginePublic<H, P, S>): () => void;
    }

    Type Parameters

    • H = unknown

      Headers type

    • P = unknown

      Params type

    • S = unknown

      State type

    Hierarchy (View Summary)

    Index

    Properties

    Methods

    Properties

    hooks?: HookEngine<any, [string]>
    name: string

    Methods