UNPKG

inversify-devtools

Version:
50 lines (49 loc) 1.87 kB
"use strict"; var Immutable = require("immutable"); var action_types_1 = require("../constants/action_types"); var defaultWindowState = Immutable.fromJS({ entries: [], filter: "ALL" }); function addLogEntry(previousState, action) { var entries = previousState.get("entries"); if (entries.size === action.logSize) { var indexToRemove = 0; var numberToRemove = 1; entries = entries.splice(indexToRemove, numberToRemove); } var updatedEntries = entries.push(action.entry); return previousState.set("entries", updatedEntries); } function selectLogEntry(previousState, action) { var entries = previousState.get("entries"); var updatedEntries = entries.map(function (entry) { entry.selected = (entry.details.guid === action.entry.details.guid); return entry; }); return previousState.set("entries", updatedEntries); } function filterEntries(previousState, action) { return previousState.set("filter", action.filterBy); } function clearEntries(previousState) { var emptyLog = Immutable.fromJS([]); return previousState.set("entries", emptyLog); } var logReducer = function (previousState, action) { if (previousState === void 0) { previousState = defaultWindowState; } switch (action.type) { case action_types_1.default.ADD_LOG_ENTRY: return addLogEntry(previousState, action); case action_types_1.default.SELECT_LOG_ENTRY: return selectLogEntry(previousState, action); case action_types_1.default.CLEAR_LOG: return clearEntries(previousState); case action_types_1.default.FILTER_LOG_ENTRIES: return filterEntries(previousState, action); default: return previousState; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = logReducer;