From 9d4850b2a9b69650d7b095ef71bd7e22de1c09e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Mon, 20 May 2019 14:18:25 +0100 Subject: [PATCH 1/2] add a flow definition file --- src/index.js.flow | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/index.js.flow diff --git a/src/index.js.flow b/src/index.js.flow new file mode 100644 index 0000000..c159ce8 --- /dev/null +++ b/src/index.js.flow @@ -0,0 +1,25 @@ +/* flow strict */ + +declare module '@github/remote-form' { + declare type Kicker = { + text: () => Promise, + json: () => Promise, + html: () => Promise + } + + declare export type SimpleResponse = { + url: string, + status: number, + statusText: ?string, + headers: Headers, + text: string, + json: {[string]: any}, + html: DocumentFragment + } + declare export type CallbackFormat = (form: HTMLFormElement, kicker: Kicker, req: SimpleRequest) => void | Promise; + + declare export function afterRemote(fn: (form: HTMLFormElement) => mixed): void; + declare export function beforeRemote(fn: (form: HTMLFormElement) => mixed): void; + declare export function remoteForm(selector: string, fn: CallbackFormat): void; + declare export function remoteUninstall(selector: string, fn: CallbackFormat): void; +} From a1f6c62d8fcf8cb20215ceb0fe9b70f410a4b600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Mon, 20 May 2019 16:36:19 +0100 Subject: [PATCH 2/2] s/CallbackFormat/RemoteFormhandler/ --- src/index.js | 8 ++++---- src/index.js.flow | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/index.js b/src/index.js index ac00274..6983927 100644 --- a/src/index.js +++ b/src/index.js @@ -64,9 +64,9 @@ type Kicker = { html: () => Promise } -export type CallbackFormat = (form: HTMLFormElement, kicker: Kicker, req: SimpleRequest) => void | Promise +export type RemoteFormHandler = (form: HTMLFormElement, kicker: Kicker, req: SimpleRequest) => void | Promise -let selectorSet: ?SelectorSet +let selectorSet: ?SelectorSet const afterHandlers = [] const beforeHandlers = [] @@ -79,7 +79,7 @@ export function beforeRemote(fn: (form: HTMLFormElement) => mixed) { beforeHandlers.push(fn) } -export function remoteForm(selector: string, fn: CallbackFormat) { +export function remoteForm(selector: string, fn: RemoteFormHandler) { if (!selectorSet) { selectorSet = new SelectorSet() document.addEventListener('submit', handleSubmit) @@ -87,7 +87,7 @@ export function remoteForm(selector: string, fn: CallbackFormat) { selectorSet.add(selector, fn) } -export function remoteUninstall(selector: string, fn: CallbackFormat) { +export function remoteUninstall(selector: string, fn: RemoteFormHandler) { if (selectorSet) { selectorSet.remove(selector, fn) } diff --git a/src/index.js.flow b/src/index.js.flow index c159ce8..b939048 100644 --- a/src/index.js.flow +++ b/src/index.js.flow @@ -16,10 +16,10 @@ declare module '@github/remote-form' { json: {[string]: any}, html: DocumentFragment } - declare export type CallbackFormat = (form: HTMLFormElement, kicker: Kicker, req: SimpleRequest) => void | Promise; + declare export type RemoteFormHandler = (form: HTMLFormElement, kicker: Kicker, req: SimpleRequest) => void | Promise; declare export function afterRemote(fn: (form: HTMLFormElement) => mixed): void; declare export function beforeRemote(fn: (form: HTMLFormElement) => mixed): void; - declare export function remoteForm(selector: string, fn: CallbackFormat): void; - declare export function remoteUninstall(selector: string, fn: CallbackFormat): void; + declare export function remoteForm(selector: string, fn: RemoteFormHandler): void; + declare export function remoteUninstall(selector: string, fn: RemoteFormHandler): void; }