Comparing version 1.3.0 to 1.3.1
@@ -6,2 +6,3 @@ export declare class AjaonPromise<Res = any, Error = string> extends Promise<Res> { | ||
abort: (msg?: string) => void; | ||
private res; | ||
constructor(f: (res: (res: Res) => void, fail: (err: Error) => void) => (() => void)); | ||
@@ -21,4 +22,4 @@ fail(f: (err: Error) => void): void; | ||
post: <Res = GenericObject>(url: string | string[], body?: string | object, headers?: HeadersInit, ensureDelivery?: boolean, verbose?: boolean) => AjaonPromise<Res, string>; | ||
get: <Res_1>(url: string | string[], ensureDelivery?: boolean, verbose?: boolean) => Promise<Res_1>; | ||
get: <Res_1>(url: string | string[], ensureDelivery?: boolean, verbose?: boolean) => AjaonPromise<Res_1, string>; | ||
}; | ||
export {}; |
@@ -5,9 +5,8 @@ import clone from "tiny-clone"; | ||
constructor(f) { | ||
let res; | ||
super((r) => { | ||
res = r; | ||
this.res = r; | ||
}); | ||
this.failCbs = []; | ||
this.hasFailed = false; | ||
this.abort = f(res, (msg) => { | ||
this.abort = f(this.res, (msg) => { | ||
this.hasFailed = true; | ||
@@ -176,13 +175,7 @@ this.failiourMsg = msg; | ||
if (ensureDelivery) { | ||
ret.fail(() => { | ||
if (!navigator.onLine) { | ||
window.addEventListener("online", () => { | ||
post(url, body, headers, false, verbose); | ||
}, { once: true }); | ||
} | ||
}); | ||
recall(ret, post, arguments); | ||
} | ||
return ret; | ||
} | ||
async function get(url, ensureDelivery = defualtEnsureDelivery, verbose = defaultVervose) { | ||
function get(url, ensureDelivery = defualtEnsureDelivery, verbose = defaultVervose) { | ||
let ret = new AjaonPromise((res, fail) => { | ||
@@ -208,12 +201,17 @@ let controller = new AbortController(); | ||
if (ensureDelivery) { | ||
ret.fail(() => { | ||
if (!navigator.onLine) { | ||
window.addEventListener("online", () => { | ||
get(url, false, verbose); | ||
}, { once: true }); | ||
} | ||
}); | ||
recall(ret, get, arguments); | ||
} | ||
return ret; | ||
} | ||
function recall(ret, func, args) { | ||
ret.fail(() => { | ||
if (!navigator.onLine) { | ||
window.addEventListener("online", () => { | ||
let req = func(...args); | ||
if (ret.failCbs.empty) | ||
req.then(ret.res); | ||
}, { once: true }); | ||
} | ||
}); | ||
} | ||
function assembleUrl(url) { | ||
@@ -220,0 +218,0 @@ url = (url instanceof Array) ? url : [url]; |
@@ -14,6 +14,7 @@ import clone from "tiny-clone" | ||
private res: (res: Res) => void | ||
constructor(f: (res: (res: Res) => void, fail: (err: Error) => void) => (() => void)) { | ||
let res: (res: Res) => void | ||
super((r) => { | ||
res = r | ||
this.res = r | ||
}) | ||
@@ -23,3 +24,3 @@ this.failCbs = [] | ||
this.abort = f(res, (msg: Error) => { | ||
this.abort = f(this.res, (msg: Error) => { | ||
this.hasFailed = true | ||
@@ -206,9 +207,3 @@ this.failiourMsg = msg | ||
if (ensureDelivery) { | ||
ret.fail(() => { | ||
if (!navigator.onLine) { | ||
window.addEventListener("online", () => { | ||
post(url, body, headers, false, verbose) | ||
}, {once: true}) | ||
} | ||
}) | ||
recall(ret, post, arguments) | ||
} | ||
@@ -222,3 +217,3 @@ | ||
async function get<Res>(url: string | string[], ensureDelivery: boolean = defualtEnsureDelivery, verbose: boolean = defaultVervose) { | ||
function get<Res>(url: string | string[], ensureDelivery: boolean = defualtEnsureDelivery, verbose: boolean = defaultVervose): AjaonPromise<Res, string> { | ||
let ret = new AjaonPromise<Res, string>((res, fail) => { | ||
@@ -247,9 +242,3 @@ let controller = new AbortController(); | ||
if (ensureDelivery) { | ||
ret.fail(() => { | ||
if (!navigator.onLine) { | ||
window.addEventListener("online", () => { | ||
get(url, false, verbose) | ||
}, {once: true}) | ||
} | ||
}) | ||
recall(ret, get, arguments) | ||
} | ||
@@ -260,2 +249,13 @@ | ||
function recall(ret: AjaonPromise, func: (...a: any[]) => AjaonPromise, args: IArguments) { | ||
ret.fail(() => { | ||
if (!navigator.onLine) { | ||
window.addEventListener("online", () => { | ||
let req = func(...args) | ||
if ((ret as any).failCbs.empty) req.then((ret as any).res) | ||
}, {once: true}) | ||
} | ||
}) | ||
} | ||
function assembleUrl(url: string[] | string) { | ||
@@ -262,0 +262,0 @@ url = (url instanceof Array) ? url : [url]; |
{ | ||
"name": "ajaon", | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"description": "Asynchron js and json. A tiny, fetch based http client for the web.", | ||
@@ -5,0 +5,0 @@ "main": "app/dist/ajaon.js", |
63291
940