From df00f78b09f81a87ed45204df6e53aa9dbe6d073 Mon Sep 17 00:00:00 2001 From: Chris Wrench Date: Wed, 26 Aug 2015 14:19:08 +0100 Subject: [PATCH 1/3] Add Offline definitions Fixes #5556. --- offline-js/offline-js-tests.ts | 40 ++++++++++++++++++++++ offline-js/offline-js.d.ts | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 offline-js/offline-js-tests.ts create mode 100644 offline-js/offline-js.d.ts diff --git a/offline-js/offline-js-tests.ts b/offline-js/offline-js-tests.ts new file mode 100644 index 000000000..82af46683 --- /dev/null +++ b/offline-js/offline-js-tests.ts @@ -0,0 +1,40 @@ +// Test file for offline-js. +/// + +Offline.options = { + checkOnLoad: false, + interceptRequests: true, + checks: { + xhr: { url: '/connection-test' }, + image: { url: 'my-image.gif' }, + active: 'image' + }, + reconnect: { + initialDelay: 3, + delay: 60 + }, + requests: true, + game: false +}; + +Offline.check(); + +Offline.state; + +var handler = () => {}, + context = {}; + +Offline.on("up", handler, context); +Offline.on("down", handler, context); +Offline.on("confirmed-up", handler, context); +Offline.on("confirmed-down", handler, context); +Offline.on("checking", handler, context); +Offline.on("reconnect:started", handler, context); +Offline.on("reconnect:stopped", handler, context); +Offline.on("reconnect:tick", handler, context); +Offline.on("reconnect:connecting", handler, context); +Offline.on("reconnect:failure", handler, context); +Offline.on("requests:flush", handler, context); +Offline.on("requests:hold", handler, context); + +Offline.off("up", handler); \ No newline at end of file diff --git a/offline-js/offline-js.d.ts b/offline-js/offline-js.d.ts new file mode 100644 index 000000000..1f8dd63d7 --- /dev/null +++ b/offline-js/offline-js.d.ts @@ -0,0 +1,62 @@ +// Type definitions for Offline 0.7.14 +// Project: https://github.com/HubSpot/offline +// Definitions by: Chris Wrench +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare var Offline: { + options: OfflineOptions; + check: () => void; + state: string; + on(event: string, handler: (e: Event) => any, context?: any): void; + on(event: "up", handler: (e: Event) => any, context?: any): void; + on(event: "down", handler: (e: Event) => any, context?: any): void; + on(event: "confirmed-up", handler: (e: Event) => any, context?: any): void; + on(event: "confirmed-down", handler: (e: Event) => any, context?: any): void; + on(event: "checking", handler: (e: Event) => any, context?: any): void; + on(event: "reconnect:started", handler: (e: Event) => any, context?: any): void; + on(event: "reconnect:stopped", handler: (e: Event) => any, context?: any): void; + on(event: "reconnect:tick", handler: (e: Event) => any, context?: any): void; + on(event: "reconnect:connecting", handler: (e: Event) => any, context?: any): void; + on(event: "reconnect:failure", handler: (e: Event) => any, context?: any): void; + on(event: "requests:flush", handler: (e: Event) => any, context?: any): void; + on(event: "requests:hold", handler: (e: Event) => any, context?: any): void; + off(event: string, handler?: (e: Event) => any): void; + off(event: "up", handler?: (e: Event) => any): void; + off(event: "down", handler?: (e: Event) => any): void; + off(event: "confirmed-up", handler?: (e: Event) => any): void; + off(event: "confirmed-down", handler?: (e: Event) => any): void; + off(event: "checking", handler?: (e: Event) => any): void; + off(event: "reconnect:started", handler?: (e: Event) => any): void; + off(event: "reconnect:stopped", handler?: (e: Event) => any): void; + off(event: "reconnect:tick", handler?: (e: Event) => any): void; + off(event: "reconnect:connecting", handler?: (e: Event) => any): void; + off(event: "reconnect:failure", handler?: (e: Event) => any): void; + off(event: "requests:flush", handler?: (e: Event) => any): void; + off(event: "requests:hold", handler?: (e: Event) => any): void; +}; + +interface OfflineOptions { + // TODO Should these types be `boolean|Function`? + // The project documentation is not clear here. + checkOnLoad?: boolean; + interceptRequests?: boolean; + requests?: boolean; + game?: boolean; + checks?: OfflineChecks; + reconnect: { + initialDelay: number; + delay: number; + }; +} + +interface OfflineChecks { + // TODO "xhr" and "image" probably have different options. + // However, this is not stated in the project documentation. + xhr?: OfflineCheck; + image?: OfflineCheck; + active?: string; +} + +interface OfflineCheck { + url: string; +} From 3159d3f697522e0d95f50a1b88d77600a4f5559b Mon Sep 17 00:00:00 2001 From: Chris Wrench Date: Wed, 26 Aug 2015 20:53:19 +0100 Subject: [PATCH 2/3] Fix offline-js formatting --- offline-js/offline-js.d.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/offline-js/offline-js.d.ts b/offline-js/offline-js.d.ts index 1f8dd63d7..f52b47e0c 100644 --- a/offline-js/offline-js.d.ts +++ b/offline-js/offline-js.d.ts @@ -6,8 +6,8 @@ declare var Offline: { options: OfflineOptions; check: () => void; - state: string; - on(event: string, handler: (e: Event) => any, context?: any): void; + state: string; + on(event: "up", handler: (e: Event) => any, context?: any): void; on(event: "down", handler: (e: Event) => any, context?: any): void; on(event: "confirmed-up", handler: (e: Event) => any, context?: any): void; @@ -20,7 +20,8 @@ declare var Offline: { on(event: "reconnect:failure", handler: (e: Event) => any, context?: any): void; on(event: "requests:flush", handler: (e: Event) => any, context?: any): void; on(event: "requests:hold", handler: (e: Event) => any, context?: any): void; - off(event: string, handler?: (e: Event) => any): void; + on(event: string, handler: (e: Event) => any, context?: any): void; + off(event: "up", handler?: (e: Event) => any): void; off(event: "down", handler?: (e: Event) => any): void; off(event: "confirmed-up", handler?: (e: Event) => any): void; @@ -32,11 +33,12 @@ declare var Offline: { off(event: "reconnect:connecting", handler?: (e: Event) => any): void; off(event: "reconnect:failure", handler?: (e: Event) => any): void; off(event: "requests:flush", handler?: (e: Event) => any): void; - off(event: "requests:hold", handler?: (e: Event) => any): void; + off(event: "requests:hold", handler?: (e: Event) => any): void; + off(event: string, handler?: (e: Event) => any): void; }; interface OfflineOptions { - // TODO Should these types be `boolean|Function`? + // TODO Should these types be `boolean|Function`? // The project documentation is not clear here. checkOnLoad?: boolean; interceptRequests?: boolean; @@ -50,8 +52,8 @@ interface OfflineOptions { } interface OfflineChecks { - // TODO "xhr" and "image" probably have different options. - // However, this is not stated in the project documentation. + // TODO "xhr" and "image" probably have different options. + // However, this is not stated in the project documentation. xhr?: OfflineCheck; image?: OfflineCheck; active?: string; From 4b0e61182b3f39c80d68ea65a35599bdd56c014a Mon Sep 17 00:00:00 2001 From: vvakame Date: Tue, 1 Sep 2015 02:25:16 +0900 Subject: [PATCH 3/3] apply tsfmt --- offline-js/offline-js-tests.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/offline-js/offline-js-tests.ts b/offline-js/offline-js-tests.ts index 82af46683..d43f091fa 100644 --- a/offline-js/offline-js-tests.ts +++ b/offline-js/offline-js-tests.ts @@ -4,11 +4,11 @@ Offline.options = { checkOnLoad: false, interceptRequests: true, - checks: { - xhr: { url: '/connection-test' }, - image: { url: 'my-image.gif' }, - active: 'image' - }, + checks: { + xhr: { url: '/connection-test' }, + image: { url: 'my-image.gif' }, + active: 'image' + }, reconnect: { initialDelay: 3, delay: 60 @@ -21,7 +21,7 @@ Offline.check(); Offline.state; -var handler = () => {}, +var handler = () => { }, context = {}; Offline.on("up", handler, context); @@ -37,4 +37,4 @@ Offline.on("reconnect:failure", handler, context); Offline.on("requests:flush", handler, context); Offline.on("requests:hold", handler, context); -Offline.off("up", handler); \ No newline at end of file +Offline.off("up", handler);