From f24547c4f95fb9ecbe09650322f0640be5ae6ec9 Mon Sep 17 00:00:00 2001 From: inglec-arista <55382882+inglec-arista@users.noreply.github.com> Date: Tue, 22 Oct 2019 22:01:28 +0100 Subject: [PATCH] [simple-query-string]: Add v1 types (#39296) --- types/simple-query-string/index.d.ts | 30 +++++++++++++++++++ .../simple-query-string-tests.ts | 28 +++++++++++++++++ types/simple-query-string/tsconfig.json | 23 ++++++++++++++ types/simple-query-string/tslint.json | 3 ++ 4 files changed, 84 insertions(+) create mode 100644 types/simple-query-string/index.d.ts create mode 100644 types/simple-query-string/simple-query-string-tests.ts create mode 100644 types/simple-query-string/tsconfig.json create mode 100644 types/simple-query-string/tslint.json diff --git a/types/simple-query-string/index.d.ts b/types/simple-query-string/index.d.ts new file mode 100644 index 0000000000..2d7a01cf76 --- /dev/null +++ b/types/simple-query-string/index.d.ts @@ -0,0 +1,30 @@ +// Type definitions for simple-query-string 1.3 +// Project: https://github.com/khalidsalomao/simple-query-string#readme +// Definitions by: CiarĂ¡n Ingle +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 3.6 + +declare const qs: { + version: string; + + parse: ( + str: string, + delimeter?: string, + eq?: string, + ) => { + [key: string]: string | string[] | null; + }; + + stringify: ( + obj: { + /* tslint:disable-next-line ban-types */ + [key: string]: T extends Function + ? never + : T extends string | number | boolean | object | null ? T : never; + }, + delimeter?: string, + eq?: string, + ) => string; +}; + +export = qs; diff --git a/types/simple-query-string/simple-query-string-tests.ts b/types/simple-query-string/simple-query-string-tests.ts new file mode 100644 index 0000000000..217a681963 --- /dev/null +++ b/types/simple-query-string/simple-query-string-tests.ts @@ -0,0 +1,28 @@ +import qs = require('simple-query-string'); + +// Omit optional parameters +qs.parse('http://example.org/test/?key=val¶m=1'); + +// Omit last optional parameter +qs.parse('http://example.org/test/?key=val¶m=1', '&'); + +// Specify all parameters +qs.parse('http://example.org/test/?key=val¶m=1', '&', '='); + +// Omit optional parameters +qs.stringify({}); +qs.stringify({ + param1: 'string', + param2: 123, + param3: true, + param4: ['element1', 'element2'], + param5: { key1: 'value1', key2: 'value2' }, + param6: new RegExp('regex'), + param7: null, +}); + +// Omit last optional parameter +qs.stringify({}, '&'); + +// Specify all parameters +qs.stringify({}, '&', '='); diff --git a/types/simple-query-string/tsconfig.json b/types/simple-query-string/tsconfig.json new file mode 100644 index 0000000000..9dba269bf2 --- /dev/null +++ b/types/simple-query-string/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", + "simple-query-string-tests.ts" + ] +} diff --git a/types/simple-query-string/tslint.json b/types/simple-query-string/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/simple-query-string/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}