95 lines
2.4 KiB
JavaScript
95 lines
2.4 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
const {
|
|
HISTORY_BACK,
|
|
HISTORY_FORWARD,
|
|
} = require("resource://devtools/client/webconsole/constants.js");
|
|
|
|
function getHistory(state) {
|
|
return state.history;
|
|
}
|
|
|
|
function getHistoryEntries(state) {
|
|
return state.history.entries;
|
|
}
|
|
|
|
function getHistoryValue(state, direction) {
|
|
if (direction == HISTORY_BACK) {
|
|
return getPreviousHistoryValue(state);
|
|
}
|
|
if (direction == HISTORY_FORWARD) {
|
|
return getNextHistoryValue(state);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getNextHistoryValue(state) {
|
|
if (state.history.position < state.history.entries.length - 1) {
|
|
return state.history.entries[state.history.position + 1];
|
|
}
|
|
|
|
// The user didn't pick up anything from the history and returned
|
|
// back to the previous value (if any) that was in the input box.
|
|
return state.history.originalUserValue;
|
|
}
|
|
|
|
function getPreviousHistoryValue(state) {
|
|
if (state.history.position > 0) {
|
|
return state.history.entries[state.history.position - 1];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getReverseSearchResult(state) {
|
|
const { history } = state;
|
|
const { currentReverseSearchResults, currentReverseSearchResultsPosition } =
|
|
history;
|
|
|
|
if (
|
|
!Array.isArray(currentReverseSearchResults) ||
|
|
currentReverseSearchResults.length === 0 ||
|
|
!Number.isInteger(currentReverseSearchResultsPosition)
|
|
) {
|
|
return null;
|
|
}
|
|
return currentReverseSearchResults[currentReverseSearchResultsPosition];
|
|
}
|
|
|
|
function getReverseSearchResultPosition(state) {
|
|
const { history } = state;
|
|
const { currentReverseSearchResultsPosition } = history;
|
|
if (!Number.isInteger(currentReverseSearchResultsPosition)) {
|
|
return currentReverseSearchResultsPosition;
|
|
}
|
|
|
|
return currentReverseSearchResultsPosition + 1;
|
|
}
|
|
|
|
function getReverseSearchTotalResults(state) {
|
|
const { history } = state;
|
|
const { currentReverseSearchResults } = history;
|
|
if (!currentReverseSearchResults) {
|
|
return null;
|
|
}
|
|
|
|
return currentReverseSearchResults.length;
|
|
}
|
|
|
|
function getTerminalEagerResult(state) {
|
|
const { history } = state;
|
|
return history.terminalEagerResult;
|
|
}
|
|
|
|
module.exports = {
|
|
getHistory,
|
|
getHistoryEntries,
|
|
getHistoryValue,
|
|
getReverseSearchResult,
|
|
getReverseSearchResultPosition,
|
|
getReverseSearchTotalResults,
|
|
getTerminalEagerResult,
|
|
};
|