Merge pull request #21713 from ALyman/loadware

Add type definitions for the loadware package
This commit is contained in:
Bowden Kelly
2017-12-06 16:00:23 -08:00
committed by GitHub
4 changed files with 62 additions and 0 deletions

16
types/loadware/index.d.ts vendored Normal file
View File

@@ -0,0 +1,16 @@
// Type definitions for loadware 2.0
// Project: https://github.com/franciscop/loadware
// Definitions by: A.J.J. Lyman <https://github.com/ALyman>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// tslint:disable-next-line:ban-types
type AnyFunction = Function;
declare function loadware<F extends AnyFunction>(...loadable: Array<loadware.Loadable<F>>): ReadonlyArray<F>;
declare namespace loadware {
type Loadable<F extends AnyFunction> = string | F | RecursiveLoadable<F>;
interface RecursiveLoadable<F extends AnyFunction> extends Array<F | Loadable<F>> { }
}
export = loadware;

View File

@@ -0,0 +1,20 @@
import loadware = require("loadware");
interface Context { __ContextMarker: never; }
interface Response { __ResponseMarker: never; }
type Middleware = (ctx: Context) => void;
loadware<Middleware>(
(_: Context) => {},
[
(_: Context) => {},
'loadware/requires-strings'
],
[
[
[
(_: Context) => {}
]
]
]
);

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",
"loadware-tests.ts"
]
}

View File

@@ -0,0 +1,3 @@
{
"extends": "dtslint/dt.json"
}