UNPKG

@snipsonian/observable-state

Version:

Observable-state snippets (redux-like)

19 lines (18 loc) 788 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAsyncEntityInitialState = void 0; const isSet_1 = require("@snipsonian/core/cjs/is/isSet"); const types_1 = require("./types"); function createAsyncEntityInitialState({ data, operations = [types_1.AsyncOperation.fetch], } = {}) { const baseEntity = { data: (0, isSet_1.default)(data) ? data : null, }; if (!operations || operations.length === 0) { return baseEntity; } return operations.reduce((accumulator, operation) => (Object.assign(Object.assign({}, accumulator), { [operation]: { status: types_1.AsyncStatus.Initial, error: null, } })), baseEntity); } exports.createAsyncEntityInitialState = createAsyncEntityInitialState;