2019-07-29 15:44:43 +03:00
|
|
|
type Kicker = {
|
|
|
|
text: () => Promise<SimpleResponse>,
|
|
|
|
json: () => Promise<SimpleResponse>,
|
|
|
|
html: () => Promise<SimpleResponse>
|
|
|
|
}
|
|
|
|
|
|
|
|
type SimpleRequest = {
|
|
|
|
method: string,
|
|
|
|
url: string,
|
2019-07-30 18:45:13 +03:00
|
|
|
body: FormData | undefined | null,
|
2019-07-29 15:44:43 +03:00
|
|
|
headers: Headers
|
|
|
|
}
|
|
|
|
|
|
|
|
export type SimpleResponse = {
|
|
|
|
url: string,
|
|
|
|
status: number,
|
|
|
|
statusText?: string,
|
|
|
|
headers: Headers,
|
|
|
|
text: string,
|
|
|
|
json: {[key: string]: any},
|
|
|
|
html: DocumentFragment
|
|
|
|
}
|
|
|
|
|
|
|
|
export type RemoteFormHandler = (form: HTMLFormElement, kicker: Kicker, req: SimpleRequest) => void | Promise<void>;
|
|
|
|
export function afterRemote(fn: (form: HTMLFormElement) => void): void;
|
|
|
|
export function beforeRemote(fn: (form: HTMLFormElement) => void): void;
|
|
|
|
export function remoteForm(selector: string, fn: RemoteFormHandler): void;
|
|
|
|
export function remoteUninstall(selector: string, fn: RemoteFormHandler): void;
|