@spartacus/core
Version:
Spartacus - the core framework
19 lines • 3.22 kB
JavaScript
import { loaderReducer } from '../loader/loader.reducer';
export const initialScopedLoaderState = {};
/**
* Higher order reducer designed to add scope support for loader reducer
*
* @param entityType
* @param reducer
*/
export function scopedLoaderReducer(entityType, reducer) {
const loader = loaderReducer(entityType, reducer);
return (state = initialScopedLoaderState, action) => {
var _a;
if (action && action.meta && action.meta.entityType === entityType) {
return Object.assign(Object.assign({}, state), { [(_a = action.meta.scope) !== null && _a !== void 0 ? _a : '']: loader(state[action.meta.scope], action) });
}
return state;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVkLWxvYWRlci5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvc3RhdGUvdXRpbHMvc2NvcGVkLWxvYWRlci9zY29wZWQtbG9hZGVyLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS3pELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUEyQixFQUFFLENBQUM7QUFFbkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFVBQWtCLEVBQ2xCLE9BQXlDO0lBS3pDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBSSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFckQsT0FBTyxDQUNMLFFBQThCLHdCQUF3QixFQUN0RCxNQUFnQyxFQUNWLEVBQUU7O1FBQ3hCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2xFLHVDQUNLLEtBQUssS0FDUixDQUFDLE1BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLG1DQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsSUFDbkU7U0FDSDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvYWRlclJlZHVjZXIgfSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLnJlZHVjZXInO1xuaW1wb3J0IHsgRW50aXR5U2NvcGVkTG9hZGVyQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcHJvZHVjdC9zdG9yZS9hY3Rpb25zL3Byb2R1Y3QuYWN0aW9uJztcbmltcG9ydCB7IFNjb3BlZExvYWRlclN0YXRlIH0gZnJvbSAnLi9zY29wZWQtbG9hZGVyLnN0YXRlJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTY29wZWRMb2FkZXJTdGF0ZTogU2NvcGVkTG9hZGVyU3RhdGU8YW55PiA9IHt9O1xuXG4vKipcbiAqIEhpZ2hlciBvcmRlciByZWR1Y2VyIGRlc2lnbmVkIHRvIGFkZCBzY29wZSBzdXBwb3J0IGZvciBsb2FkZXIgcmVkdWNlclxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlXG4gKiBAcGFyYW0gcmVkdWNlclxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NvcGVkTG9hZGVyUmVkdWNlcjxUPihcbiAgZW50aXR5VHlwZTogc3RyaW5nLFxuICByZWR1Y2VyPzogKHN0YXRlOiBULCBhY3Rpb246IEFjdGlvbikgPT4gVFxuKTogKFxuICBzdGF0ZTogU2NvcGVkTG9hZGVyU3RhdGU8VD4sXG4gIGFjdGlvbjogRW50aXR5U2NvcGVkTG9hZGVyQWN0aW9uXG4pID0+IFNjb3BlZExvYWRlclN0YXRlPFQ+IHtcbiAgY29uc3QgbG9hZGVyID0gbG9hZGVyUmVkdWNlcjxUPihlbnRpdHlUeXBlLCByZWR1Y2VyKTtcblxuICByZXR1cm4gKFxuICAgIHN0YXRlOiBTY29wZWRMb2FkZXJTdGF0ZTxUPiA9IGluaXRpYWxTY29wZWRMb2FkZXJTdGF0ZSxcbiAgICBhY3Rpb246IEVudGl0eVNjb3BlZExvYWRlckFjdGlvblxuICApOiBTY29wZWRMb2FkZXJTdGF0ZTxUPiA9PiB7XG4gICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ubWV0YSAmJiBhY3Rpb24ubWV0YS5lbnRpdHlUeXBlID09PSBlbnRpdHlUeXBlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW2FjdGlvbi5tZXRhLnNjb3BlID8/ICcnXTogbG9hZGVyKHN0YXRlW2FjdGlvbi5tZXRhLnNjb3BlXSwgYWN0aW9uKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfTtcbn1cbiJdfQ==