diff --git a/koa-compose/koa-compose-2.3.1-tests.ts b/koa-compose/koa-compose-2.3.1-tests.ts new file mode 100644 index 000000000..72a4e08bc --- /dev/null +++ b/koa-compose/koa-compose-2.3.1-tests.ts @@ -0,0 +1,15 @@ +/// + +import compose = require('koa-compose'); + +var fn1: compose.Middleware = function *(next: void) { + console.log('in fn1'); + yield next; +} + +var fn2: compose.Middleware = function *(next: void) { + console.log('in fn2'); + yield next; +} + +var fn = compose([fn1, fn2]); \ No newline at end of file diff --git a/koa-compose/koa-compose-2.3.1.d.ts b/koa-compose/koa-compose-2.3.1.d.ts new file mode 100644 index 000000000..f8130bf0a --- /dev/null +++ b/koa-compose/koa-compose-2.3.1.d.ts @@ -0,0 +1,20 @@ +// Type definitions for koa v2.3.1 +// Project: https://github.com/koajs/compose +// Definitions by: jKey Lu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare module "koa-compose" { + function compose(middleware: compose.Middleware[]): compose.ComposedMiddleware; + + module compose { + interface Middleware { + (next?: void): IterableIterator; + } + + interface ComposedMiddleware { + (): IterableIterator; + } + } + + export = compose; +} \ No newline at end of file diff --git a/koa-compose/koa-compose-tests.ts b/koa-compose/koa-compose-tests.ts new file mode 100644 index 000000000..122817929 --- /dev/null +++ b/koa-compose/koa-compose-tests.ts @@ -0,0 +1,18 @@ +/// + +import compose = require('koa-compose'); + +var fn1: compose.Middleware = function(context: any, next: () => Promise): Promise { + return Promise + .resolve(console.log('in fn1')) + .then(() => next()); +}; + +var fn2: compose.Middleware = function(context: any, next: () => Promise): Promise { + return Promise + .resolve(console.log('in fn2')) + .then(() => next()); +}; + + +var fn = compose([fn1, fn2]); \ No newline at end of file diff --git a/koa-compose/koa-compose.d.ts b/koa-compose/koa-compose.d.ts new file mode 100644 index 000000000..0521124b4 --- /dev/null +++ b/koa-compose/koa-compose.d.ts @@ -0,0 +1,20 @@ +// Type definitions for koa v3.0.0 +// Project: https://github.com/koajs/compose +// Definitions by: jKey Lu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare module "koa-compose" { + function compose(middleware: compose.Middleware[]): compose.ComposedMiddleware; + + module compose { + interface Middleware { + (context: any, next?: () => Promise): Promise; + } + + interface ComposedMiddleware { + (context: any): Promise; + } + } + + export = compose; +} \ No newline at end of file