Merge pull request #30837 from runebaas/open-apifactory

add typings for openapi-factory
This commit is contained in:
Andrew Casey
2018-12-07 16:36:34 -08:00
committed by GitHub
4 changed files with 114 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
// Type definitions for openapi-factory 4.2
// Project: https://github.com/wparad/openapi-factory.js
// Definitions by: Daan Boerlage <https://github.com/runebaas>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
declare namespace OpenApi {
interface ApiOptions {
requestMiddleware?: () => any;
responseMiddleware?: () => any;
errorMiddleware?: () => any;
}
interface HttpMethodOptions {
rawBody?: boolean;
}
interface HttpResponse {
statusCode?: number;
headers?: object;
body?: (object | string);
}
}
declare class OpenApi {
constructor(options: OpenApi.ApiOptions, overrideLogger?: () => void);
setAuthorizer(authorizerFunc: (req?: any) => Promise<any>): void;
onEvent(onEventFunc: (req?: any) => Promise<any>): void;
onSchedule(onScheduleFunc: (req?: any) => Promise<any>): void;
head(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
head(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: any) => any): void;
get(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
get(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
post(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
post(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
put(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
put(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
patch(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
patch(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
delete(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
delete(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
options(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
options(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
any(route: string, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
any(route: string, options: OpenApi.HttpMethodOptions, handler: (req?: object) => (OpenApi.HttpResponse | Promise<OpenApi.HttpResponse>)): void;
handler(event: object, context: object): Promise<any>;
}
export = OpenApi;
@@ -0,0 +1,29 @@
import OpenApiFactory = require('openapi-factory');
const api = new OpenApiFactory({});
api.setAuthorizer((req: any) => req);
api.onEvent((req: any) => req);
api.onSchedule((req: any) => req);
const testReponse = {
statusCode: 200
};
api.head('/v1/test', () => testReponse);
api.get('/v1/test', () => testReponse);
api.post('/v1/test', () => testReponse);
api.put('/v1/test', () => testReponse);
api.patch('/v1/test', () => testReponse);
api.delete('/v1/test', () => testReponse);
api.options('/v1/test', () => testReponse);
api.any('/v1/test2', () => testReponse);
api.head('/v2/test', { rawBody: true }, () => testReponse);
api.get('/v2/test', { rawBody: true }, () => testReponse);
api.post('/v2/test', { rawBody: true }, () => testReponse);
api.put('/v2/test', { rawBody: true }, () => testReponse);
api.patch('/v2/test', { rawBody: true }, () => testReponse);
api.delete('/v2/test', { rawBody: true }, () => testReponse);
api.options('/v2/test', { rawBody: true }, () => testReponse);
api.any('/v2/test2', { rawBody: true }, () => testReponse);
+23
View File
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"openapi-factory-tests.ts"
]
}
+3
View File
@@ -0,0 +1,3 @@
{
"extends": "dtslint/dt.json"
}