mirror of
https://github.com/chenasraf/DefinitelyTyped.git
synced 2026-05-18 01:49:01 +00:00
Bindings for the Akamai EdgeWorker API. This allows you to write your EdgeWorkers in TypeScript.
Types are available for the Request and Response objects, as well as the
built-in modules.
User Guide
EdgeWorkers are written in ECMAScript6, so you need to set your
tsconfig.json to use es6 as the compilation target and module
code generator:
{
"compilerOptions": {
"module": "es6",
"target": "es6",
//...
}
}
Using the Request and Response Objects
The predefined EdgeWorker callbacks take Request and Response objects as
arguments. After you have installed this package, you can create a main.ts
with the following stubs:
/// <reference types="akamai-edgeworkers"/>
export function onClientRequest(request: EW.IngressClientRequest) {}
export function onOriginRequest(request: EW.IngressOriginRequest) {}
export function responseProvider(request: EW.ResponseProviderRequest) {}
export function onOriginResponse(request: EW.EgressOriginRequest, response: EW.EgressOriginResponse) {}
export function onClientResponse(request: EW.EgressClientRequest, response: EW.EgressClientResponse) {}
The triple-slashed first line references this package and pulls EW into your
namespace.
Using Built-In Modules
TypeScript Bindings are available for built-in modules, including:
cookies- Parsing and manipulation of cookie-related headerscreate-response- Helper for thereponseProvider()callbackhttp-request- Fetch remote resources via HTTP and HTTPSlog- Console-style loggingstreams- Compatibility with the WHATWG Streams standardtext-encode-transform- Compatibility with the WHATWG Encoding standardurl-search-params- Parsing query parameters
Once you've added the triple-slash reference to akamai-edgeworkers
you can import them normally:
/// <reference types="akamai-edgeworkers"/>
import { Cookies } from 'cookies';
function onClientRequest(request: EW.IngressClientRequest) {
const cookie = new Cookies(request.getHeader('cookies') || undefined);
//...
}