From 6f369959fd39964f4a01edb9f032128f2aee65a3 Mon Sep 17 00:00:00 2001 From: Vincenzo Chianese Date: Tue, 31 Mar 2020 17:14:16 -0500 Subject: [PATCH] Add definition for uri-template-lite (#43431) * feat: add definition for uri-template-lite * style: fix * chore: fix --- types/uri-template-lite/index.d.ts | 15 ++++++++++++ types/uri-template-lite/tsconfig.json | 23 +++++++++++++++++++ types/uri-template-lite/tslint.json | 1 + .../uri-template-lite-tests.ts | 10 ++++++++ 4 files changed, 49 insertions(+) create mode 100644 types/uri-template-lite/index.d.ts create mode 100644 types/uri-template-lite/tsconfig.json create mode 100644 types/uri-template-lite/tslint.json create mode 100644 types/uri-template-lite/uri-template-lite-tests.ts diff --git a/types/uri-template-lite/index.d.ts b/types/uri-template-lite/index.d.ts new file mode 100644 index 0000000000..3aa9ea0c5f --- /dev/null +++ b/types/uri-template-lite/index.d.ts @@ -0,0 +1,15 @@ +// Type definitions for uri-template-lite 19.12 +// Project: https://github.com/litejs/uri-template-lite#readme +// Definitions by: Vincenzo Chianese +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// Minimum TypeScript Version: 3.0 + +export namespace URI { + function expand(template: string, data: { [key: string]: unknown }): string; + + class Template { + constructor(template: string); + expand: (data: { [key: string]: unknown }) => string; + match: (template: string) => { [key: string]: string }; + } +} diff --git a/types/uri-template-lite/tsconfig.json b/types/uri-template-lite/tsconfig.json new file mode 100644 index 0000000000..388bf62ab0 --- /dev/null +++ b/types/uri-template-lite/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", + "uri-template-lite-tests.ts" + ] +} diff --git a/types/uri-template-lite/tslint.json b/types/uri-template-lite/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/uri-template-lite/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/uri-template-lite/uri-template-lite-tests.ts b/types/uri-template-lite/uri-template-lite-tests.ts new file mode 100644 index 0000000000..961f4bd34d --- /dev/null +++ b/types/uri-template-lite/uri-template-lite-tests.ts @@ -0,0 +1,10 @@ +import { URI } from 'uri-template-lite'; + +// Call `expand` directly +const dataSet = { domain: "example.com", user: "fred", query: "mycelium" }; +URI.expand("http://{domain}/~{user}/foo{?query,number}", dataSet); + +const template = new URI.Template("http://{domain}/~{user}/foo{?query,number}"); +template.expand(dataSet); +template.match("http://example.com/~fred/foo?query=mycelium&number=3"); +template.match("http://other.com/?query=mycelium");