Skip to content

Commit

Permalink
fs: export realpathCacheKey from internal/fs
Browse files Browse the repository at this point in the history
Move the internally defined symbol `fs.realpathCacheKey` to
the internal fs module, where it’s more appropriate.

The symbol was recently added in c084287, but since
`internal/fs` is only available in the v7.x branch, this
needs to be a separate follow-up change.

PR-URL: #8862
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
addaleax committed Nov 16, 2016
1 parent 2e28875 commit 5dea1e2
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 9 deletions.
6 changes: 1 addition & 5 deletions lib/fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -1463,10 +1463,6 @@ function encodeRealpathResult(result, options, err) {
}
}

// This is removed from the fs exports in lib/module.js in order to make
// sure that this stays internal.
const realpathCacheKey = fs.realpathCacheKey = Symbol('realpathCacheKey');

fs.realpathSync = function realpathSync(p, options) {
options = getOptions(options, {});
nullCheck(p);
Expand All @@ -1476,7 +1472,7 @@ fs.realpathSync = function realpathSync(p, options) {

const seenLinks = {};
const knownHard = {};
const cache = options[realpathCacheKey];
const cache = options[internalFS.realpathCacheKey];
const original = p;

const maybeCachedResult = cache && cache.get(p);
Expand Down
2 changes: 2 additions & 0 deletions lib/internal/fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,5 @@ SyncWriteStream.prototype.destroy = function() {
};

exports.SyncWriteStream = SyncWriteStream;

exports.realpathCacheKey = Symbol('realpathCacheKey');
6 changes: 2 additions & 4 deletions lib/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const internalModule = require('internal/module');
const vm = require('vm');
const assert = require('assert').ok;
const fs = require('fs');
const internalFS = require('internal/fs');
const path = require('path');
const internalModuleReadFile = process.binding('fs').internalModuleReadFile;
const internalModuleStat = process.binding('fs').internalModuleStat;
Expand Down Expand Up @@ -113,9 +114,6 @@ function tryPackage(requestPath, exts, isMain) {
// Set to an empty Map to reset.
const realpathCache = new Map();

const realpathCacheKey = fs.realpathCacheKey;
delete fs.realpathCacheKey;

// check if the file exists and is not a directory
// if using --preserve-symlinks and isMain is false,
// keep symlinks intact, otherwise resolve to the
Expand All @@ -130,7 +128,7 @@ function tryFile(requestPath, isMain) {

function toRealPath(requestPath) {
return fs.realpathSync(requestPath, {
[realpathCacheKey]: realpathCache
[internalFS.realpathCacheKey]: realpathCache
});
}

Expand Down

0 comments on commit 5dea1e2

Please sign in to comment.