From 26ed016814acc9b5a8c0b2f95e08b8f89bf3a9c8 Mon Sep 17 00:00:00 2001 From: Savva Surenkov Date: Sat, 1 Jul 2017 17:23:18 +1000 Subject: [PATCH] [jsonp] add jsonp typings --- types/jsonp/index.d.ts | 19 +++++++++++++++++++ types/jsonp/jsonp-tests.ts | 28 ++++++++++++++++++++++++++++ types/jsonp/tsconfig.json | 21 +++++++++++++++++++++ types/jsonp/tslint.json | 6 ++++++ 4 files changed, 74 insertions(+) create mode 100644 types/jsonp/index.d.ts create mode 100644 types/jsonp/jsonp-tests.ts create mode 100644 types/jsonp/tsconfig.json create mode 100644 types/jsonp/tslint.json diff --git a/types/jsonp/index.d.ts b/types/jsonp/index.d.ts new file mode 100644 index 0000000000..3f1df60c87 --- /dev/null +++ b/types/jsonp/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for jsonp 0.2 +// Project: https://github.com/LearnBoost/jsonp +// Definitions by: Savva Surenkov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = jsonp; + +declare function jsonp(url: string, options?: Options, cb?: RequestCallback): CancelFn; +declare function jsonp(url: string, callback?: RequestCallback): CancelFn; + +type CancelFn = () => void; +type RequestCallback = (error: Error | null, data: any) => void; + +interface Options { + param?: string; + prefix?: string; + name?: string; + timeout?: number; +} diff --git a/types/jsonp/jsonp-tests.ts b/types/jsonp/jsonp-tests.ts new file mode 100644 index 0000000000..703e104912 --- /dev/null +++ b/types/jsonp/jsonp-tests.ts @@ -0,0 +1,28 @@ +import jsonp = require('jsonp'); + +/** + * Dummy response callback. + */ +const print = (err: Error | null, data: any) => + console.log(err !== null ? err.message : data); + +/** + * Tests jsonp request with default parameters. + */ +const cancel1 = jsonp('https://jsonplaceholder.typicode.com/posts/1', print); +cancel1(); + +/** + * Tests parametrized jsonp request. + */ +const cancel2 = jsonp( + 'https://jsonplaceholder.typicode.com/posts/1', + { + param: 'cb', + timeout: 40000, + prefix: '_jsonp', + name: 'func', + }, + print, +); +cancel2(); diff --git a/types/jsonp/tsconfig.json b/types/jsonp/tsconfig.json new file mode 100644 index 0000000000..4ba94d9d89 --- /dev/null +++ b/types/jsonp/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "jsonp-tests.ts" + ] +} diff --git a/types/jsonp/tslint.json b/types/jsonp/tslint.json new file mode 100644 index 0000000000..a62d0d4e68 --- /dev/null +++ b/types/jsonp/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "ban-types": false + } +}