type Request = { method: string; url: string; headers: Record; body?: string; }; type Response = { status: number; statusText: string; headers: Record; body?: string; }; type AddRequestOptios = { request: Request; response: Response; id?: string; } type ContextOptions = { input?: Record; env?: Record; requests?: Record; responses?: Record; }; class Context { input: Record = {}; env: Record = {}; files: Set = new Set(); requests: Record = {}; responses: Record = {}; request?: Request; response?: Response; constructor(options: ContextOptions = {}) { this.input = options.input || {}; this.env = options.env || {}; this.requests = options.requests || {}; this.responses = options.responses || {}; } public addRequest(options: AddRequestOptios) { const { request, response, id } = options; if (id) { this.requests[id] = request; this.responses[id] = response; } this.request = request; this.response = response; } } export { Context };