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" +}