fetch-json-cache 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/update.js +19 -3
- package/dist/cjs/update.js.map +1 -1
- package/dist/esm/update.mjs +17 -3
- package/dist/esm/update.mjs.map +1 -1
- package/package.json +5 -4
package/dist/cjs/update.js
CHANGED
|
@@ -8,10 +8,13 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return update;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
11
12
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
13
|
var _getremote = /*#__PURE__*/ _interop_require_default(require("get-remote"));
|
|
13
14
|
var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
|
|
14
|
-
var
|
|
15
|
+
var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
16
|
+
var _rimraf2 = /*#__PURE__*/ _interop_require_default(require("rimraf2"));
|
|
17
|
+
var _tempsuffix = /*#__PURE__*/ _interop_require_default(require("temp-suffix"));
|
|
15
18
|
function _interop_require_default(obj) {
|
|
16
19
|
return obj && obj.__esModule ? obj : {
|
|
17
20
|
default: obj
|
|
@@ -27,8 +30,21 @@ function update(endpoint, callback) {
|
|
|
27
30
|
headers: res.headers,
|
|
28
31
|
body: res.body
|
|
29
32
|
};
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
var tempFile = "".concat(fullPath, "-").concat((0, _tempsuffix.default)());
|
|
34
|
+
var queue = new _queuecb.default(1);
|
|
35
|
+
queue.defer(_fs.default.writeFile.bind(null, tempFile, JSON.stringify(record), 'utf8'));
|
|
36
|
+
queue.defer(function(cb) {
|
|
37
|
+
return (0, _rimraf2.default)(fullPath, {
|
|
38
|
+
disableGlob: true
|
|
39
|
+
}, cb.bind(null, null));
|
|
40
|
+
});
|
|
41
|
+
queue.defer(_fs.default.rename.bind(null, tempFile, fullPath));
|
|
42
|
+
queue.await(function(err) {
|
|
43
|
+
if (!err) return callback(null, record.body);
|
|
44
|
+
// cleanup the temp file if the operation failed
|
|
45
|
+
(0, _rimraf2.default)(tempFile, {
|
|
46
|
+
disableGlob: true
|
|
47
|
+
}, callback.bind(err));
|
|
32
48
|
});
|
|
33
49
|
});
|
|
34
50
|
});
|
package/dist/cjs/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["update.ts"],"sourcesContent":["import path from 'path';\nimport get from 'get-remote';\nimport mkdirp from 'mkdirp-classic';\nimport
|
|
1
|
+
{"version":3,"sources":["update.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport get from 'get-remote';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\n\nexport default function update(endpoint, callback) {\n const fullPath = path.join(this.cacheDirectory, `${this.options.hash(endpoint)}.json`);\n\n mkdirp(this.cacheDirectory, (err) => {\n if (err && err.code !== 'EEXIST') return callback(err);\n\n get(endpoint).json((err, res) => {\n if (err) return callback(err);\n const record = { headers: res.headers, body: res.body };\n const tempFile = `${fullPath}-${tempSuffix()}`;\n\n const queue = new Queue(1);\n queue.defer(fs.writeFile.bind(null, tempFile, JSON.stringify(record), 'utf8'));\n queue.defer((cb) => rimraf2(fullPath, { disableGlob: true }, cb.bind(null, null)));\n queue.defer(fs.rename.bind(null, tempFile, fullPath));\n queue.await((err) => {\n if (!err) return callback(null, record.body);\n // cleanup the temp file if the operation failed\n rimraf2(tempFile, { disableGlob: true }, callback.bind(err));\n });\n });\n });\n}\n"],"names":["update","endpoint","callback","fullPath","path","join","cacheDirectory","options","hash","mkdirp","err","code","get","json","res","record","headers","body","tempFile","tempSuffix","queue","Queue","defer","fs","writeFile","bind","JSON","stringify","cb","rimraf2","disableGlob","rename","await"],"mappings":";;;;+BAQA;;;eAAwBA;;;yDART;2DACE;gEACD;oEACG;8DACD;8DACE;iEACG;;;;;;AAER,SAASA,OAAOC,QAAQ,EAAEC,QAAQ;IAC/C,IAAMC,WAAWC,aAAI,CAACC,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE,AAAC,GAA8B,OAA5B,IAAI,CAACC,OAAO,CAACC,IAAI,CAACP,WAAU;IAE/EQ,IAAAA,sBAAM,EAAC,IAAI,CAACH,cAAc,EAAE,SAACI;QAC3B,IAAIA,OAAOA,IAAIC,IAAI,KAAK,UAAU,OAAOT,SAASQ;QAElDE,IAAAA,kBAAG,EAACX,UAAUY,IAAI,CAAC,SAACH,KAAKI;YACvB,IAAIJ,KAAK,OAAOR,SAASQ;YACzB,IAAMK,SAAS;gBAAEC,SAASF,IAAIE,OAAO;gBAAEC,MAAMH,IAAIG,IAAI;YAAC;YACtD,IAAMC,WAAW,AAAC,GAAcC,OAAZhB,UAAS,KAAgB,OAAbgB,IAAAA,mBAAU;YAE1C,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;YACxBD,MAAME,KAAK,CAACC,WAAE,CAACC,SAAS,CAACC,IAAI,CAAC,MAAMP,UAAUQ,KAAKC,SAAS,CAACZ,SAAS;YACtEK,MAAME,KAAK,CAAC,SAACM;uBAAOC,IAAAA,gBAAO,EAAC1B,UAAU;oBAAE2B,aAAa;gBAAK,GAAGF,GAAGH,IAAI,CAAC,MAAM;;YAC3EL,MAAME,KAAK,CAACC,WAAE,CAACQ,MAAM,CAACN,IAAI,CAAC,MAAMP,UAAUf;YAC3CiB,MAAMY,KAAK,CAAC,SAACtB;gBACX,IAAI,CAACA,KAAK,OAAOR,SAAS,MAAMa,OAAOE,IAAI;gBAC3C,gDAAgD;gBAChDY,IAAAA,gBAAO,EAACX,UAAU;oBAAEY,aAAa;gBAAK,GAAG5B,SAASuB,IAAI,CAACf;YACzD;QACF;IACF;AACF"}
|
package/dist/esm/update.mjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
1
2
|
import path from 'path';
|
|
2
3
|
import get from 'get-remote';
|
|
3
4
|
import mkdirp from 'mkdirp-classic';
|
|
4
|
-
import
|
|
5
|
+
import Queue from 'queue-cb';
|
|
6
|
+
import rimraf2 from 'rimraf2';
|
|
7
|
+
import tempSuffix from 'temp-suffix';
|
|
5
8
|
export default function update(endpoint, callback) {
|
|
6
9
|
const fullPath = path.join(this.cacheDirectory, `${this.options.hash(endpoint)}.json`);
|
|
7
10
|
mkdirp(this.cacheDirectory, (err)=>{
|
|
@@ -12,8 +15,19 @@ export default function update(endpoint, callback) {
|
|
|
12
15
|
headers: res.headers,
|
|
13
16
|
body: res.body
|
|
14
17
|
};
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
const tempFile = `${fullPath}-${tempSuffix()}`;
|
|
19
|
+
const queue = new Queue(1);
|
|
20
|
+
queue.defer(fs.writeFile.bind(null, tempFile, JSON.stringify(record), 'utf8'));
|
|
21
|
+
queue.defer((cb)=>rimraf2(fullPath, {
|
|
22
|
+
disableGlob: true
|
|
23
|
+
}, cb.bind(null, null)));
|
|
24
|
+
queue.defer(fs.rename.bind(null, tempFile, fullPath));
|
|
25
|
+
queue.await((err)=>{
|
|
26
|
+
if (!err) return callback(null, record.body);
|
|
27
|
+
// cleanup the temp file if the operation failed
|
|
28
|
+
rimraf2(tempFile, {
|
|
29
|
+
disableGlob: true
|
|
30
|
+
}, callback.bind(err));
|
|
17
31
|
});
|
|
18
32
|
});
|
|
19
33
|
});
|
package/dist/esm/update.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["update.ts"],"sourcesContent":["import path from 'path';\nimport get from 'get-remote';\nimport mkdirp from 'mkdirp-classic';\nimport
|
|
1
|
+
{"version":3,"sources":["update.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport get from 'get-remote';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\n\nexport default function update(endpoint, callback) {\n const fullPath = path.join(this.cacheDirectory, `${this.options.hash(endpoint)}.json`);\n\n mkdirp(this.cacheDirectory, (err) => {\n if (err && err.code !== 'EEXIST') return callback(err);\n\n get(endpoint).json((err, res) => {\n if (err) return callback(err);\n const record = { headers: res.headers, body: res.body };\n const tempFile = `${fullPath}-${tempSuffix()}`;\n\n const queue = new Queue(1);\n queue.defer(fs.writeFile.bind(null, tempFile, JSON.stringify(record), 'utf8'));\n queue.defer((cb) => rimraf2(fullPath, { disableGlob: true }, cb.bind(null, null)));\n queue.defer(fs.rename.bind(null, tempFile, fullPath));\n queue.await((err) => {\n if (!err) return callback(null, record.body);\n // cleanup the temp file if the operation failed\n rimraf2(tempFile, { disableGlob: true }, callback.bind(err));\n });\n });\n });\n}\n"],"names":["fs","path","get","mkdirp","Queue","rimraf2","tempSuffix","update","endpoint","callback","fullPath","join","cacheDirectory","options","hash","err","code","json","res","record","headers","body","tempFile","queue","defer","writeFile","bind","JSON","stringify","cb","disableGlob","rename","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,aAAa;AAC7B,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,gBAAgB,cAAc;AAErC,eAAe,SAASC,OAAOC,QAAQ,EAAEC,QAAQ;IAC/C,MAAMC,WAAWT,KAAKU,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE,GAAG,IAAI,CAACC,OAAO,CAACC,IAAI,CAACN,UAAU,KAAK,CAAC;IAErFL,OAAO,IAAI,CAACS,cAAc,EAAE,CAACG;QAC3B,IAAIA,OAAOA,IAAIC,IAAI,KAAK,UAAU,OAAOP,SAASM;QAElDb,IAAIM,UAAUS,IAAI,CAAC,CAACF,KAAKG;YACvB,IAAIH,KAAK,OAAON,SAASM;YACzB,MAAMI,SAAS;gBAAEC,SAASF,IAAIE,OAAO;gBAAEC,MAAMH,IAAIG,IAAI;YAAC;YACtD,MAAMC,WAAW,GAAGZ,SAAS,CAAC,EAAEJ,cAAc;YAE9C,MAAMiB,QAAQ,IAAInB,MAAM;YACxBmB,MAAMC,KAAK,CAACxB,GAAGyB,SAAS,CAACC,IAAI,CAAC,MAAMJ,UAAUK,KAAKC,SAAS,CAACT,SAAS;YACtEI,MAAMC,KAAK,CAAC,CAACK,KAAOxB,QAAQK,UAAU;oBAAEoB,aAAa;gBAAK,GAAGD,GAAGH,IAAI,CAAC,MAAM;YAC3EH,MAAMC,KAAK,CAACxB,GAAG+B,MAAM,CAACL,IAAI,CAAC,MAAMJ,UAAUZ;YAC3Ca,MAAMS,KAAK,CAAC,CAACjB;gBACX,IAAI,CAACA,KAAK,OAAON,SAAS,MAAMU,OAAOE,IAAI;gBAC3C,gDAAgD;gBAChDhB,QAAQiB,UAAU;oBAAEQ,aAAa;gBAAK,GAAGrB,SAASiB,IAAI,CAACX;YACzD;QACF;IACF;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fetch-json-cache",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Caches fetched json. Updates when etag changes and is uses cache regardless if endpoint unreachable. Uses write-file-atomic for safe updates",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"every",
|
|
@@ -39,11 +39,12 @@
|
|
|
39
39
|
"version": "tsds version"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"get-remote": "^1.
|
|
42
|
+
"get-remote": "^1.3.0",
|
|
43
43
|
"mkdirp-classic": "^0.5.3",
|
|
44
44
|
"pinkie-promise": "^2.0.1",
|
|
45
|
+
"queue-cb": "^1.4.4",
|
|
45
46
|
"rimraf2": "^2.8.2",
|
|
46
|
-
"
|
|
47
|
+
"temp-suffix": "^0.1.1"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@biomejs/biome": "^1.9.4",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"@types/node": "^22.10.2",
|
|
52
53
|
"depcheck": "^1.4.7",
|
|
53
54
|
"fs-access-sync-compat": "^1.0.2",
|
|
54
|
-
"ts-dev-stack": "^1.5.
|
|
55
|
+
"ts-dev-stack": "^1.5.4"
|
|
55
56
|
},
|
|
56
57
|
"packageManager": "npm@11.0.0+sha512.11dff29565d2297c74e7c594a9762581bde969f0aa5cbe6f5b3644bf008a16c065ece61094d9ffbb81125be38df8e1ba43eb8244b3d30c61eb797e9a2440e3ec",
|
|
57
58
|
"engines": {
|