diff --git a/typescript/middy.d.ts b/index.d.ts similarity index 100% rename from typescript/middy.d.ts rename to index.d.ts diff --git a/middlewares.d.ts b/middlewares.d.ts new file mode 100644 index 000000000..38299ea37 --- /dev/null +++ b/middlewares.d.ts @@ -0,0 +1,74 @@ +import { SSM } from 'aws-sdk' +import { Options as AjvOptions } from 'ajv' +import middy from './middy' + +interface ICorsOptions { + origin: string; +} + +interface ICacheOptions { + calculateCacheId?: (event: any) => Promise; + getValue?: (key: string) => Promise; + setValue?: (key: string) => Promise; +} + +interface IDoNotWaitForEmtpyEventLoopOptions { + runOnBefore?: boolean; + runOnAfter?: boolean; + runOnError?: boolean; +} + +interface IHTTPContentNegotiationOptions { + parseCharsets?: boolean; + availableCharsets?: string[]; + parseEncodings?: boolean; + availableEncodings?: string[]; + parseLanguages?: boolean; + availableLanguages?: string[]; + parseMediaTypes?: boolean; + availableMediaTypes?: string[]; + failOnMismatch?: boolean; +} + +interface IHTTPHeaderNormalizerOptions { + normalizeHeaderKey?: (key: string) => string; +} + +interface ISSMOptions { + cache?: boolean; + params: { [key: string]: string; }; + awsSdkOptions?: Partial; + setToContext?: boolean; +} + +interface IValidatorOptions { + inputSchema?: any; + outputSchema?: any; + ajvOptions?: Partial; +} + +interface IURLEncodeBodyParserOptions { + extended?: false; +} + +interface IWarmupOptions { + isWarmingUp?: (event: any) => boolean; + onWarmup?: (event: any) => void; +} + +declare function cache(opts?: ICacheOptions): middy.IMiddyMiddlewareObject; +declare function cors(opts?: ICorsOptions): middy.IMiddyMiddlewareObject; +declare function doNotWaitForEmptyEventLoop(opts?: IDoNotWaitForEmtpyEventLoopOptions): middy.IMiddyMiddlewareObject; +declare function httpContentNegotiation(opts?: IHTTPContentNegotiationOptions): middy.IMiddyMiddlewareObject; +declare function httpErrorHandler(): middy.IMiddyMiddlewareObject; +declare function httpEventNormalizer(): middy.IMiddyMiddlewareObject; +declare function httpHeaderNormalizer(opts: IHTTPHeaderNormalizerOptions): middy.IMiddyMiddlewareObject; +declare function httpPartialResponse(): middy.IMiddyMiddlewareObject; +declare function jsonBodyParser(): middy.IMiddyMiddlewareObject; +declare function s3KeyNormalizer(): middy.IMiddyMiddlewareObject; +declare function ssm(opts?: ISSMOptions): middy.IMiddyMiddlewareObject; +declare function validator(opts?: IValidatorOptions): middy.IMiddyMiddlewareObject; +declare function urlEncodeBodyParser(opts?: IURLEncodeBodyParserOptions): middy.IMiddyMiddlewareObject; +declare function warmup(opts?: IWarmupOptions): middy.IMiddyMiddlewareObject; + +export as namespace middlewares; diff --git a/package-lock.json b/package-lock.json index 14b00e39d..95ccda1b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "middy", - "version": "0.9.2", + "version": "0.9.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 26e2f550b..3e7a00c71 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "middy", - "version": "0.9.2", + "version": "0.9.3", "description": "🛵 The stylish Node.js middleware engine for AWS Lambda", - "main": "src/index.js", + "main": "./index.js", "files": [ "src", "typescript", @@ -10,7 +10,7 @@ "middlewares.js", "!__tests__" ], - "types": "./typescript/middy.d.ts", + "types": "./index.d.ts", "scripts": { "test:lint": "eslint --ignore-pattern='node_modules/' --ignore-pattern='coverage/' --ignore-pattern='docs/' .", "test:unit": "jest --verbose --coverage",