diff --git a/types/feather-route-matcher/feather-route-matcher-tests.ts b/types/feather-route-matcher/feather-route-matcher-tests.ts new file mode 100644 index 0000000000..0288082dc7 --- /dev/null +++ b/types/feather-route-matcher/feather-route-matcher-tests.ts @@ -0,0 +1,15 @@ +import createMatcher from 'feather-route-matcher'; + +const matcher = createMatcher({ + '/': 33, + '/number-13': 13, + '/number/:num': 199, +}); + +const numberOfPage: number = matcher('/').page; +const matchedURL: string = matcher('/').url; +const params: {} | null = matcher('/number/34').params; + +const knownParams = matcher('/number/24').params as { num: string }; + +const extractedNum: string = knownParams.num; diff --git a/types/feather-route-matcher/index.d.ts b/types/feather-route-matcher/index.d.ts new file mode 100644 index 0000000000..54ffb85812 --- /dev/null +++ b/types/feather-route-matcher/index.d.ts @@ -0,0 +1,22 @@ +// Type definitions for feather-route-matcher 3.1 +// Project: https://github.com/henrikjoreteg/feather-route-matcher +// Definitions by: Eugeny Schibrikov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +interface RouteConfig { + [path: string]: T; +} + +interface Match { + page: T; + url: string; + params: { [key: string]: string } | null; +} + +interface Matcher { + (path: string): Match; +} + +declare function createMatcher(config: RouteConfig): Matcher; + +export { createMatcher as default }; diff --git a/types/feather-route-matcher/tsconfig.json b/types/feather-route-matcher/tsconfig.json new file mode 100644 index 0000000000..a50c9d410d --- /dev/null +++ b/types/feather-route-matcher/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "feather-route-matcher-tests.ts" + ] +} diff --git a/types/feather-route-matcher/tslint.json b/types/feather-route-matcher/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/feather-route-matcher/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }