diff options
author | Rebecca Turner <me@re-becca.org> | 2016-05-06 01:33:45 +0300 |
---|---|---|
committer | Rebecca Turner <me@re-becca.org> | 2016-05-06 02:57:13 +0300 |
commit | e568caabb8390a924ce1cfa51fc914ee6c1637a2 (patch) | |
tree | 169fa3321ce5846d557cc9f805222dc4ffa9df92 /node_modules/graceful-fs | |
parent | 111ae3ec366ece7ebcf5988f5bc2a7cd70737dfe (diff) |
graceful-fs@4.1.4
Travis changes & readme updates.
Credit: @isaacs
Diffstat (limited to 'node_modules/graceful-fs')
-rw-r--r-- | node_modules/graceful-fs/README.md | 84 | ||||
-rw-r--r-- | node_modules/graceful-fs/package.json | 65 |
2 files changed, 115 insertions, 34 deletions
diff --git a/node_modules/graceful-fs/README.md b/node_modules/graceful-fs/README.md index d920aaac9..d0dcd4925 100644 --- a/node_modules/graceful-fs/README.md +++ b/node_modules/graceful-fs/README.md @@ -9,8 +9,6 @@ resilient to errors. ## Improvements over [fs module](http://api.nodejs.org/fs.html) -graceful-fs: - * Queues up `open` and `readdir` calls, and retries them once something closes if there is an EMFILE error from too many file descriptors. @@ -51,3 +49,85 @@ This should only ever be done at the top-level application layer, in order to delay on EMFILE errors from any fs-using dependencies. You should **not** do this in a library, because it can cause unexpected delays in other parts of the program. + +## Changes + +This module is fairly stable at this point, and used by a lot of +things. That being said, because it implements a subtle behavior +change in a core part of the node API, even modest changes can be +extremely breaking, and the versioning is thus biased towards +bumping the major when in doubt. + +The main change between major versions has been switching between +providing a fully-patched `fs` module vs monkey-patching the node core +builtin, and the approach by which a non-monkey-patched `fs` was +created. + +The goal is to trade `EMFILE` errors for slower fs operations. So, if +you try to open a zillion files, rather than crashing, `open` +operations will be queued up and wait for something else to `close`. + +There are advantages to each approach. Monkey-patching the fs means +that no `EMFILE` errors can possibly occur anywhere in your +application, because everything is using the same core `fs` module, +which is patched. However, it can also obviously cause undesirable +side-effects, especially if the module is loaded multiple times. + +Implementing a separate-but-identical patched `fs` module is more +surgical (and doesn't run the risk of patching multiple times), but +also imposes the challenge of keeping in sync with the core module. + +The current approach loads the `fs` module, and then creates a +lookalike object that has all the same methods, except a few that are +patched. It is safe to use in all versions of Node from 0.8 through +7.0. + +### v4 + +* Do not monkey-patch the fs module. This module may now be used as a + drop-in dep, and users can opt into monkey-patching the fs builtin + if their app requires it. + +### v3 + +* Monkey-patch fs, because the eval approach no longer works on recent + node. +* fixed possible type-error throw if rename fails on windows +* verify that we *never* get EMFILE errors +* Ignore ENOSYS from chmod/chown +* clarify that graceful-fs must be used as a drop-in + +### v2.1.0 + +* Use eval rather than monkey-patching fs. +* readdir: Always sort the results +* win32: requeue a file if error has an OK status + +### v2.0 + +* A return to monkey patching +* wrap process.cwd + +### v1.1 + +* wrap readFile +* Wrap fs.writeFile. +* readdir protection +* Don't clobber the fs builtin +* Handle fs.read EAGAIN errors by trying again +* Expose the curOpen counter +* No-op lchown/lchmod if not implemented +* fs.rename patch only for win32 +* Patch fs.rename to handle AV software on Windows +* Close #4 Chown should not fail on einval or eperm if non-root +* Fix isaacs/fstream#1 Only wrap fs one time +* Fix #3 Start at 1024 max files, then back off on EMFILE +* lutimes that doens't blow up on Linux +* A full on-rewrite using a queue instead of just swallowing the EMFILE error +* Wrap Read/Write streams as well + +### 1.0 + +* Update engines for node 0.6 +* Be lstat-graceful on Windows +* first diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json index f8fc8a0eb..cca5d89f6 100644 --- a/node_modules/graceful-fs/package.json +++ b/node_modules/graceful-fs/package.json @@ -1,36 +1,37 @@ { "_args": [ [ - "graceful-fs@~4.1.2", + "graceful-fs@~4.1.3", "/Users/rebecca/code/npm" ] ], - "_from": "graceful-fs@>=4.1.2 <4.2.0", - "_id": "graceful-fs@4.1.3", + "_from": "graceful-fs@>=4.1.3 <4.2.0", + "_id": "graceful-fs@4.1.4", "_inCache": true, "_installable": true, "_location": "/graceful-fs", - "_nodeVersion": "4.0.0", + "_nodeVersion": "5.6.0", "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/graceful-fs-4.1.3.tgz_1454449326495_0.943017533281818" + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/graceful-fs-4.1.4.tgz_1462474854900_0.9423982477746904" }, "_npmUser": { "email": "i@izs.me", "name": "isaacs" }, - "_npmVersion": "3.7.0", + "_npmVersion": "3.8.9", "_phantomChildren": {}, "_requested": { "name": "graceful-fs", - "raw": "graceful-fs@~4.1.2", - "rawSpec": "~4.1.2", + "raw": "graceful-fs@~4.1.3", + "rawSpec": "~4.1.3", "scope": null, - "spec": ">=4.1.2 <4.2.0", + "spec": ">=4.1.3 <4.2.0", "type": "range" }, "_requiredBy": [ "/", + "/cmd-shim", "/fs-vacuum", "/fs-write-stream-atomic", "/fstream", @@ -41,17 +42,17 @@ "/read-package-json", "/readdir-scoped-modules", "/sha", - "/standard/standard-engine/eslint/file-entry-cache/flat-cache", - "/standard/standard-engine/eslint/file-entry-cache/flat-cache/read-json-sync", - "/standard/standard-format/esformatter-jsx/babel-core/regenerator/commoner", + "/standard/eslint/file-entry-cache/flat-cache", + "/standard/eslint/file-entry-cache/flat-cache/read-json-sync", + "/tacks", "/tap/nyc/read-pkg/load-json-file", "/tap/nyc/read-pkg/path-type", "/write-file-atomic" ], - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz", - "_shasum": "92033ce11113c41e2628d61fdfa40bc10dc0155c", + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz", + "_shasum": "ef089d2880f033b011823ce5c8fae798da775dbd", "_shrinkwrap": null, - "_spec": "graceful-fs@~4.1.2", + "_spec": "graceful-fs@~4.1.3", "_where": "/Users/rebecca/code/npm", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" @@ -67,8 +68,8 @@ "test": "test" }, "dist": { - "shasum": "92033ce11113c41e2628d61fdfa40bc10dc0155c", - "tarball": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" + "shasum": "ef089d2880f033b011823ce5c8fae798da775dbd", + "tarball": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" }, "engines": { "node": ">=0.4.0" @@ -79,30 +80,30 @@ "legacy-streams.js", "polyfills.js" ], - "gitHead": "694c56f3aed4aee62d6df169be123d3984f61b85", + "gitHead": "fe8f05ccc2779d1dfa6db6173f3ed64f1e9aa72c", "homepage": "https://github.com/isaacs/node-graceful-fs#readme", "keywords": [ - "EACCESS", - "EAGAIN", - "EINVAL", - "EMFILE", - "EPERM", - "error", - "errors", "fs", - "handling", "module", - "queue", "reading", + "retry", "retries", - "retry" + "queue", + "error", + "errors", + "handling", + "EMFILE", + "EAGAIN", + "EINVAL", + "EPERM", + "EACCESS" ], "license": "ISC", "main": "graceful-fs.js", "maintainers": [ { - "name": "isaacs", - "email": "i@izs.me" + "email": "i@izs.me", + "name": "isaacs" } ], "name": "graceful-fs", @@ -115,5 +116,5 @@ "scripts": { "test": "node test.js | tap -" }, - "version": "4.1.3" + "version": "4.1.4" } |