diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md
index c18c9d58e0b521..c0778aebadbd36 100644
--- a/doc/api/deprecations.md
+++ b/doc/api/deprecations.md
@@ -378,9 +378,10 @@ instead.
### DEP0041: NODE\_REPL\_HISTORY\_FILE environment variable
-Type: Documentation-only
+Type: End-of-life
-The `NODE_REPL_HISTORY_FILE` environment variable has been deprecated.
+The `NODE_REPL_HISTORY_FILE` environment variable was removed. Please use
+`NODE_REPL_HISTORY` instead.
### DEP0042: tls.CryptoStream
diff --git a/doc/api/repl.md b/doc/api/repl.md
index 506f54a4b8a2a8..182c0434c0340a 100644
--- a/doc/api/repl.md
+++ b/doc/api/repl.md
@@ -506,22 +506,6 @@ by saving inputs to a `.node_repl_history` file located in the user's home
directory. This can be disabled by setting the environment variable
`NODE_REPL_HISTORY=""`.
-#### NODE_REPL_HISTORY_FILE
-
-
-> Stability: 0 - Deprecated: Use `NODE_REPL_HISTORY` instead.
-
-Previously in Node.js/io.js v2.x, REPL history was controlled by using a
-`NODE_REPL_HISTORY_FILE` environment variable, and the history was saved in JSON
-format. This variable has now been deprecated, and the old JSON REPL history
-file will be automatically converted to a simplified plain text format. This new
-file will be saved to either the user's home directory, or a directory defined
-by the `NODE_REPL_HISTORY` variable, as documented in the
-[Environment Variable Options](#repl_environment_variable_options).
-
### Using the Node.js REPL with advanced line-editors
For advanced line-editors, start Node.js with the environment variable
diff --git a/lib/internal/repl.js b/lib/internal/repl.js
index 76412c3b118a8c..a852f87bc889bf 100644
--- a/lib/internal/repl.js
+++ b/lib/internal/repl.js
@@ -34,7 +34,7 @@ function createInternalRepl(env, opts, cb) {
if (parseInt(env.NODE_NO_READLINE)) {
opts.terminal = false;
}
- // the "dumb" special terminal, as defined by terminfo, doesn't support
+ // The "dumb" special terminal, as defined by terminfo, doesn't support
// ANSI color control codes.
// see http://invisible-island.net/ncurses/terminfo.ti.html#toc-_Specials
if (parseInt(env.NODE_DISABLE_COLORS) || env.TERM === 'dumb') {
@@ -61,17 +61,15 @@ function createInternalRepl(env, opts, cb) {
const repl = REPL.start(opts);
if (opts.terminal) {
- return setupHistory(repl, env.NODE_REPL_HISTORY,
- env.NODE_REPL_HISTORY_FILE, cb);
+ return setupHistory(repl, env.NODE_REPL_HISTORY, cb);
}
repl._historyPrev = _replHistoryMessage;
cb(null, repl);
}
-function setupHistory(repl, historyPath, oldHistoryPath, ready) {
- // Empty string disables persistent history.
-
+function setupHistory(repl, historyPath, ready) {
+ // Empty string disables persistent history
if (typeof historyPath === 'string')
historyPath = historyPath.trim();
@@ -131,50 +129,8 @@ function setupHistory(repl, historyPath, oldHistoryPath, ready) {
if (data) {
repl.history = data.split(/[\n\r]+/, repl.historySize);
- } else if (oldHistoryPath === historyPath) {
- // If pre-v3.0, the user had set NODE_REPL_HISTORY_FILE to
- // ~/.node_repl_history, warn the user about it and proceed.
- _writeToOutput(
- repl,
- '\nThe old repl history file has the same name and location as ' +
- `the new one i.e., ${historyPath} and is empty.\nUsing it as is.\n`);
-
- } else if (oldHistoryPath) {
- let threw = false;
- try {
- // Pre-v3.0, repl history was stored as JSON.
- // Try and convert it to line separated history.
- const oldReplJSONHistory = fs.readFileSync(oldHistoryPath, 'utf8');
-
- // Only attempt to use the history if there was any.
- if (oldReplJSONHistory) repl.history = JSON.parse(oldReplJSONHistory);
-
- if (Array.isArray(repl.history)) {
- repl.history = repl.history.slice(0, repl.historySize);
- } else {
- threw = true;
- _writeToOutput(
- repl,
- '\nError: The old history file data has to be an Array.\n' +
- 'REPL session history will not be persisted.\n');
- }
- } catch (err) {
- // Cannot open or parse history file.
- // Don't crash, just don't persist history.
- threw = true;
- const type = err instanceof SyntaxError ? 'parse' : 'open';
- _writeToOutput(repl, `\nError: Could not ${type} old history file.\n` +
- 'REPL session history will not be persisted.\n');
- }
- if (!threw) {
- // Grab data from the older pre-v3.0 JSON NODE_REPL_HISTORY_FILE format.
- _writeToOutput(
- repl,
- '\nConverted old JSON repl history to line-separated history.\n' +
- `The new repl history file can be found at ${historyPath}.\n`);
- } else {
- repl.history = [];
- }
+ } else {
+ repl.history = [];
}
fs.open(historyPath, 'r+', onhandle);
@@ -188,7 +144,7 @@ function setupHistory(repl, historyPath, oldHistoryPath, ready) {
repl._historyHandle = hnd;
repl.on('line', online);
- // reading the file data out erases it
+ // Reading the file data out erases it
repl.once('flushHistory', function() {
repl.resume();
ready(null, repl);
diff --git a/test/fixtures/old-repl-history-file.json b/test/fixtures/old-repl-history-file.json
deleted file mode 100644
index 963d93ddf379c0..00000000000000
--- a/test/fixtures/old-repl-history-file.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[
- "'=^.^='",
- "'hello world'"
-]
diff --git a/test/parallel/test-repl-persistent-history.js b/test/parallel/test-repl-persistent-history.js
index 43c868f8326f3f..4d0330272ab3c6 100644
--- a/test/parallel/test-repl-persistent-history.js
+++ b/test/parallel/test-repl-persistent-history.js
@@ -58,11 +58,6 @@ const CLEAR = { ctrl: true, name: 'u' };
const historyFixturePath = fixtures.path('.node_repl_history');
const historyPath = path.join(tmpdir.path, '.fixture_copy_repl_history');
const historyPathFail = fixtures.path('nonexistent_folder', 'filename');
-const oldHistoryPathObj = fixtures.path('old-repl-history-file-obj.json');
-const oldHistoryPathFaulty = fixtures.path('old-repl-history-file-faulty.json');
-const oldHistoryPath = fixtures.path('old-repl-history-file.json');
-const enoentHistoryPath = fixtures.path('enoent-repl-history-file.json');
-const emptyHistoryPath = fixtures.path('.empty-repl-history-file');
const defaultHistoryPath = path.join(tmpdir.path, '.node_repl_history');
const emptyHiddenHistoryPath = fixtures.path('.empty-hidden-repl-history-file');
const devNullHistoryPath = path.join(tmpdir.path,
@@ -72,23 +67,10 @@ const prompt = '> ';
const replDisabled = '\nPersistent history support disabled. Set the ' +
'NODE_REPL_HISTORY environment\nvariable to a valid, ' +
'user-writable path to enable.\n';
-const convertMsg = '\nConverted old JSON repl history to line-separated ' +
- 'history.\nThe new repl history file can be found at ' +
- `${defaultHistoryPath}.\n`;
const homedirErr = '\nError: Could not get the home directory.\n' +
'REPL session history will not be persisted.\n';
const replFailedRead = '\nError: Could not open history file.\n' +
'REPL session history will not be persisted.\n';
-const oldHistoryFailedOpen = '\nError: Could not open old history file.\n' +
- 'REPL session history will not be persisted.\n';
-const oldHistoryFailedParse = '\nError: Could not parse old history file.\n' +
- 'REPL session history will not be persisted.\n';
-const oldHistoryObj = '\nError: The old history file data has to be an Array' +
- '.\nREPL session history will not be persisted.\n';
-const sameHistoryFilePaths = '\nThe old repl history file has the same name ' +
- 'and location as the new one i.e., ' +
- `${defaultHistoryPath}` +
- ' and is empty.\nUsing it as is.\n';
const tests = [
{
@@ -101,71 +83,21 @@ const tests = [
test: [UP],
expected: [prompt, replDisabled, prompt]
},
- {
- env: { NODE_REPL_HISTORY_FILE: enoentHistoryPath },
- test: [UP],
- expected: [prompt, oldHistoryFailedOpen, prompt]
- },
- {
- env: { NODE_REPL_HISTORY_FILE: oldHistoryPathObj },
- test: [UP],
- expected: [prompt, oldHistoryObj, prompt]
- },
- {
- env: { NODE_REPL_HISTORY_FILE: oldHistoryPathFaulty },
- test: [UP],
- expected: [prompt, oldHistoryFailedParse, prompt]
- },
- {
- env: { NODE_REPL_HISTORY: '',
- NODE_REPL_HISTORY_FILE: oldHistoryPath },
- test: [UP],
- expected: [prompt, replDisabled, prompt]
- },
- {
- env: { NODE_REPL_HISTORY_FILE: emptyHistoryPath },
- test: [UP],
- expected: [prompt, convertMsg, prompt]
- },
- {
- env: { NODE_REPL_HISTORY_FILE: defaultHistoryPath },
- test: [UP],
- expected: [prompt, sameHistoryFilePaths, prompt]
- },
{
env: { NODE_REPL_HISTORY: historyPath },
test: [UP, CLEAR],
expected: [prompt, `${prompt}'you look fabulous today'`, prompt]
},
- {
- env: { NODE_REPL_HISTORY: historyPath,
- NODE_REPL_HISTORY_FILE: oldHistoryPath },
- test: [UP, CLEAR],
- expected: [prompt, `${prompt}'you look fabulous today'`, prompt]
- },
- {
- env: { NODE_REPL_HISTORY: historyPath,
- NODE_REPL_HISTORY_FILE: '' },
- test: [UP, CLEAR],
- expected: [prompt, `${prompt}'you look fabulous today'`, prompt]
- },
{
env: {},
- test: [UP],
- expected: [prompt]
- },
- {
- env: { NODE_REPL_HISTORY_FILE: oldHistoryPath },
- test: [UP, CLEAR, '\'42\'', ENTER],
- expected: [prompt, convertMsg, prompt, `${prompt}'=^.^='`, prompt, '\'',
- '4', '2', '\'', '\'42\'\n', prompt, prompt],
+ test: [UP, '\'42\'', ENTER],
+ expected: [prompt, '\'', '4', '2', '\'', '\'42\'\n', prompt, prompt],
clean: false
},
- { // Requires the above testcase
+ { // Requires the above test case
env: {},
test: [UP, UP, ENTER],
- expected: [prompt, `${prompt}'42'`, `${prompt}'=^.^='`, '\'=^.^=\'\n',
- prompt]
+ expected: [prompt, `${prompt}'42'`, '\'42\'\n', prompt]
},
{
env: { NODE_REPL_HISTORY: historyPath,
@@ -173,12 +105,6 @@ const tests = [
test: [UP, UP, CLEAR],
expected: [prompt, `${prompt}'you look fabulous today'`, prompt]
},
- {
- env: { NODE_REPL_HISTORY_FILE: oldHistoryPath,
- NODE_REPL_HISTORY_SIZE: 1 },
- test: [UP, UP, UP, CLEAR],
- expected: [prompt, convertMsg, prompt, `${prompt}'=^.^='`, prompt]
- },
{
env: { NODE_REPL_HISTORY: historyPathFail,
NODE_REPL_HISTORY_SIZE: 1 },