UNPKG

2.76 kBTypeScriptView Raw
1// Type definitions for koa-compose 3.2
2// Project: https://github.com/koajs/compose
3// Definitions by: jKey Lu <https://github.com/jkeylu>
4// Anton Astashov <https://github.com/astashov>
5// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
6// TypeScript Version: 2.3
7
8import * as Koa from "koa";
9
10declare function compose<T1, U1, T2, U2>(
11 middleware: [Koa.Middleware<T1, U1>, Koa.Middleware<T2, U2>],
12): Koa.Middleware<T1 & T2, U1 & U2>;
13
14declare function compose<T1, U1, T2, U2, T3, U3>(
15 middleware: [Koa.Middleware<T1, U1>, Koa.Middleware<T2, U2>, Koa.Middleware<T3, U3>],
16): Koa.Middleware<T1 & T2 & T3, U1 & U2 & U3>;
17
18declare function compose<T1, U1, T2, U2, T3, U3, T4, U4>(
19 middleware: [Koa.Middleware<T1, U1>, Koa.Middleware<T2, U2>, Koa.Middleware<T3, U3>, Koa.Middleware<T4, U4>],
20): Koa.Middleware<T1 & T2 & T3 & T4, U1 & U2 & U3 & U4>;
21
22declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5>(
23 middleware: [
24 Koa.Middleware<T1, U1>,
25 Koa.Middleware<T2, U2>,
26 Koa.Middleware<T3, U3>,
27 Koa.Middleware<T4, U4>,
28 Koa.Middleware<T5, U5>,
29 ],
30): Koa.Middleware<T1 & T2 & T3 & T4 & T5, U1 & U2 & U3 & U4 & U5>;
31
32declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5, T6, U6>(
33 middleware: [
34 Koa.Middleware<T1, U1>,
35 Koa.Middleware<T2, U2>,
36 Koa.Middleware<T3, U3>,
37 Koa.Middleware<T4, U4>,
38 Koa.Middleware<T5, U5>,
39 Koa.Middleware<T6, U6>,
40 ],
41): Koa.Middleware<T1 & T2 & T3 & T4 & T5 & T6, U1 & U2 & U3 & U4 & U5 & U6>;
42
43declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5, T6, U6, T7, U7>(
44 middleware: [
45 Koa.Middleware<T1, U1>,
46 Koa.Middleware<T2, U2>,
47 Koa.Middleware<T3, U3>,
48 Koa.Middleware<T4, U4>,
49 Koa.Middleware<T5, U5>,
50 Koa.Middleware<T6, U6>,
51 Koa.Middleware<T7, U7>,
52 ],
53): Koa.Middleware<T1 & T2 & T3 & T4 & T5 & T6 & T7, U1 & U2 & U3 & U4 & U5 & U6 & U7>;
54
55declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5, T6, U6, T7, U7, T8, U8>(
56 middleware: [
57 Koa.Middleware<T1, U1>,
58 Koa.Middleware<T2, U2>,
59 Koa.Middleware<T3, U3>,
60 Koa.Middleware<T4, U4>,
61 Koa.Middleware<T5, U5>,
62 Koa.Middleware<T6, U6>,
63 Koa.Middleware<T7, U7>,
64 Koa.Middleware<T8, U8>,
65 ],
66): Koa.Middleware<T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8, U1 & U2 & U3 & U4 & U5 & U6 & U7 & U8>;
67
68declare function compose<T>(middleware: Array<compose.Middleware<T>>): compose.ComposedMiddleware<T>;
69
70declare namespace compose {
71 type Middleware<T> = (context: T, next: Koa.Next) => any;
72 type ComposedMiddleware<T> = (context: T, next?: Koa.Next) => Promise<void>;
73}
74
75export = compose;