Types
All types are exported from @t-req/core and subpath exports.
Core Types
Section titled “Core Types”From @t-req/core
Section titled “From @t-req/core”import type { // Parsing ParsedRequest, FileReference, FormField,
// Interpolation InterpolateOptions, Interpolator, Resolver,
// Execution ExecuteRequest, ExecuteOptions,
// Client Client, ClientConfig, RunOptions,
// File loading FileLoaderOptions, LoadedFile,
// Form data building BuildFormDataOptions,} from '@t-req/core';Parsing Types
Section titled “Parsing Types”ParsedRequest
Section titled “ParsedRequest”interface ParsedRequest { name?: string; method: string; url: string; headers: Record<string, string>; body?: string; formData?: FormField[]; bodyFile?: FileReference; raw: string; meta: Record<string, string>;}FormField
Section titled “FormField”interface FormField { name: string; value: string; isFile: boolean; path?: string; filename?: string;}FileReference
Section titled “FileReference”interface FileReference { path: string; filename?: string;}Client Types
Section titled “Client Types”Client
Section titled “Client”interface Client { run(path: string, options?: RunOptions): Promise<Response>; runString(content: string, options?: RunOptions): Promise<Response>; setVariable(key: string, value: unknown): void; setVariables(variables: Record<string, unknown>): void; getVariables(): Record<string, unknown>;}ClientConfig
Section titled “ClientConfig”interface ClientConfig { io?: IO; transport?: Transport; variables?: Record<string, unknown>; resolvers?: Record<string, Resolver>; cookieJar?: CookieJar; timeout?: number; defaults?: RequestDefaults;}RunOptions
Section titled “RunOptions”interface RunOptions { variables?: Record<string, unknown>; timeout?: number; signal?: AbortSignal;}RequestDefaults
Section titled “RequestDefaults”interface RequestDefaults { headers?: Record<string, string>; followRedirects?: boolean; validateSSL?: boolean;}Interpolation Types
Section titled “Interpolation Types”Resolver
Section titled “Resolver”type Resolver = (...args: string[]) => string | Promise<string>;Interpolator
Section titled “Interpolator”interface Interpolator { interpolate( template: string, variables: Record<string, unknown> ): Promise<string>;}InterpolateOptions
Section titled “InterpolateOptions”interface InterpolateOptions { resolvers?: Record<string, Resolver>; undefinedBehavior?: 'throw' | 'keep' | 'empty';}Execution Types
Section titled “Execution Types”ExecuteRequest
Section titled “ExecuteRequest”interface ExecuteRequest { method: string; url: string; headers: Record<string, string>; body?: string | Uint8Array | FormData; timeout?: number; signal?: AbortSignal;}Runtime Types
Section titled “Runtime Types”From @t-req/core/runtime
Section titled “From @t-req/core/runtime”import type { IO, Transport } from '@t-req/core/runtime';interface IO { readFile(path: string): Promise<string>; readBinaryFile(path: string): Promise<Uint8Array>; resolvePath(base: string, relative: string): string;}Transport
Section titled “Transport”interface Transport { execute(request: ExecuteRequest): Promise<Response>;}Cookie Types
Section titled “Cookie Types”From @t-req/core/cookies
Section titled “From @t-req/core/cookies”import type { Cookie, CookieJar } from '@t-req/core/cookies';Cookie
Section titled “Cookie”interface Cookie { key: string; value: string; domain: string; path: string; expires?: Date; httpOnly: boolean; secure: boolean; sameSite?: string; creation: Date; lastAccessed: Date;}Config Types
Section titled “Config Types”From @t-req/core/config
Section titled “From @t-req/core/config”import type { TReqConfig, ConfigDefaults, LoadConfigOptions, LoadConfigResult,} from '@t-req/core/config';TReqConfig
Section titled “TReqConfig”interface TReqConfig { variables?: Record<string, unknown>; resolvers?: Record<string, Resolver>; defaults?: ConfigDefaults;}ConfigDefaults
Section titled “ConfigDefaults”interface ConfigDefaults { timeoutMs?: number; headers?: Record<string, string>; followRedirects?: boolean; validateSSL?: boolean;}Engine Types
Section titled “Engine Types”From @t-req/core
Section titled “From @t-req/core”import type { Engine, EngineConfig, EngineEvent,} from '@t-req/core';EngineEvent
Section titled “EngineEvent”type EngineEvent = | RequestStartEvent | RequestCompleteEvent | RequestErrorEvent;
interface RequestStartEvent { type: 'request:start'; request: ExecuteRequest; timestamp: number;}
interface RequestCompleteEvent { type: 'request:complete'; request: ExecuteRequest; response: Response; duration: number; timestamp: number;}
interface RequestErrorEvent { type: 'request:error'; request?: ExecuteRequest; error: Error; timestamp: number;}Type Helpers
Section titled “Type Helpers”Generic Response Data
Section titled “Generic Response Data”async function getJson<T>(response: Response): Promise<T> { if (!response.ok) { throw new Error(`HTTP ${response.status}`); } return response.json() as Promise<T>;}
// Usageinterface User { id: number; name: string;}
const user = await getJson<User>(response);Typed Variables
Section titled “Typed Variables”interface MyVariables { baseUrl: string; token: string; userId: number;}
const client = createClient({ variables: { baseUrl: 'https://api.example.com', token: 'secret', userId: 123, } satisfies MyVariables,});