Compare commits

..

4 Commits

Author SHA1 Message Date
e6279c00f1 3.0.8 2022-07-27 17:32:54 +02:00
8d59494a75 fix(core): update 2022-07-27 17:32:54 +02:00
d1f3117376 3.0.7 2022-05-29 21:29:43 +02:00
14cca11c55 fix(core): update 2022-05-29 21:29:42 +02:00
6 changed files with 4372 additions and 438 deletions

4749
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/webrequest",
"version": "3.0.6",
"version": "3.0.8",
"private": false,
"description": "securely request from browsers",
"main": "dist_ts/index.js",
@ -14,21 +14,21 @@
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.63",
"@gitzone/tsbundle": "^2.0.4",
"@gitzone/tstest": "^1.0.71",
"@gitzone/tsbundle": "^2.0.6",
"@gitzone/tstest": "^1.0.72",
"@pushrocks/smartexpress": "^4.0.5",
"@pushrocks/tapbundle": "^5.0.3",
"@types/node": "^17.0.36",
"@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^18.6.1",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
},
"dependencies": {
"@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartenv": "^5.0.2",
"@pushrocks/smartjson": "^4.0.6",
"@pushrocks/smartjson": "^5.0.1",
"@pushrocks/smartpromise": "^3.1.7",
"@pushrocks/webstore": "^2.0.3",
"node-fetch": "^3.2.4"
"@pushrocks/webstore": "^2.0.4",
"node-fetch": "^3.2.9"
},
"files": [
"ts/**/*",

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@pushrocks/webrequest',
version: '3.0.6',
version: '3.0.8',
description: 'securely request from browsers'
}

View File

@ -49,7 +49,7 @@ export class WebRequest {
const response: Response = await this.request(urlArg, {
body: plugins.smartjson.stringify(requestBody),
method: 'POST',
useCache: useCacheArg
useCache: useCacheArg,
});
const responseText = await response.text();
const responseResult = plugins.smartjson.parse(responseText);
@ -102,13 +102,13 @@ export class WebRequest {
}
let cachedResponseDeferred = plugins.smartpromise.defer<Response>();
let cacheUsed = false;
if (optionsArg.useCache && this.cacheStore.check(urlArg)) {
const responseBuffer: ArrayBuffer = await this.cacheStore.get(urlArg)
if (optionsArg.useCache && await this.cacheStore.check(urlArg)) {
const responseBuffer: ArrayBuffer = await this.cacheStore.get(urlArg);
cachedResponseDeferred.resolve(new Response(responseBuffer, {}));
} else {
cachedResponseDeferred.resolve(null);
}
const response: Response = await fetch(urlArg, {
let response: Response = await fetch(urlArg, {
signal: controller.signal,
method: optionsArg.method,
headers: {
@ -116,8 +116,8 @@ export class WebRequest {
...(optionsArg.headers || {}),
},
body: optionsArg.body,
}).catch(async err => {
if (optionsArg.useCache && await cachedResponseDeferred.promise) {
}).catch(async (err) => {
if (optionsArg.useCache && (await cachedResponseDeferred.promise)) {
cacheUsed = true;
const cachedResponse = cachedResponseDeferred.promise;
return cachedResponse;
@ -125,6 +125,10 @@ export class WebRequest {
return err;
}
});
if (optionsArg.useCache && (await cachedResponseDeferred.promise) && response.status === 500) {
cacheUsed = true;
response = await cachedResponseDeferred.promise;
}
if (!cacheUsed && optionsArg.useCache && response.status < 300) {
const buffer = await response.clone().arrayBuffer();
await this.cacheStore.set(urlArg, buffer);

10
tsconfig.json Normal file
View File

@ -0,0 +1,10 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "nodenext",
"esModuleInterop": true
}
}

View File

@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}