UNPKG

ngrx-run

Version:

Return side-effects as data from your NgRx reducers

33 lines 5.78 kB
const handler = { get() { return proxy; } }; const target = {}; const proxy = new Proxy(target, handler); export function addEffectDescriptions(state, effects) { const effectDescriptions = effects.map((effect) => ({ type: effect.type, params: effect.params, nextAction: hasNextAction(effect) ? effect.next(proxy).type : undefined, errorAction: hasErrorAction(effect) ? effect.error(proxy).type : undefined, completeAction: hasCompleteAction(effect) ? effect.complete().type : undefined, subscribeAction: hasSubscribeAction(effect) ? effect.subscribed(0).type : undefined })); return Object.assign(state, { __effects: effectDescriptions }); } function hasNextAction(effect) { return effect.next !== undefined; } function hasErrorAction(effect) { return effect.error !== undefined; } function hasCompleteAction(effect) { return effect.complete !== undefined; } function hasSubscribeAction(effect) { return effect.subscribed !== undefined; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWRlc2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9saWIvc3JjL2VmZmVjdC1kZXNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLE9BQU8sR0FBRztJQUNkLEdBQUc7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUV6QyxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQWEsRUFDYixPQUFpQztJQUVqQyxNQUFNLGtCQUFrQixHQUF3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDdkUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUUsY0FBYyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7WUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBc0IsQ0FBQyxDQUFDLElBQUk7WUFDaEQsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFDLENBQUMsQ0FBQztJQUNKLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FDcEIsTUFBUztJQUVULE9BQVEsTUFBcUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQ25FLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsTUFBUztJQUVULE9BQVEsTUFBcUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixNQUFTO0lBRVQsT0FBUSxNQUFxQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7QUFDdkUsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQ3pCLE1BQVM7SUFFVCxPQUFRLE1BQXFDLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZUVmZmVjdCwgU3Vic2NyaXB0aW9uVG9rZW4gfSBmcm9tICcuL2VmZmVjdCc7XG5pbXBvcnQgeyBFZmZlY3RDb25maWcgfSBmcm9tICcuL2VmZmVjdC1jb25maWcnO1xuXG5pbnRlcmZhY2UgRWZmZWN0RGVzY3JpcHRpb24ge1xuICB0eXBlPzogc3RyaW5nO1xuICBwYXJhbXM/OiBhbnk7XG4gIG5leHRBY3Rpb24/OiBzdHJpbmc7XG4gIGVycm9yQWN0aW9uPzogc3RyaW5nO1xuICBjb21wbGV0ZUFjdGlvbj86IHN0cmluZztcbiAgc3Vic2NyaWJlQWN0aW9uPzogc3RyaW5nO1xuICB1bnN1YnNjcmliZUFjdGlvbj86IHN0cmluZztcbn1cblxuY29uc3QgaGFuZGxlciA9IHtcbiAgZ2V0KCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHByb3h5O1xuICB9XG59O1xuXG5jb25zdCB0YXJnZXQgPSB7fTtcbmNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFZmZlY3REZXNjcmlwdGlvbnM8VFN0YXRlLCBURWZmZWN0PihcbiAgc3RhdGU6IFRTdGF0ZSxcbiAgZWZmZWN0czogRWZmZWN0Q29uZmlnPGFueSwgYW55PltdXG4pOiBhbnkge1xuICBjb25zdCBlZmZlY3REZXNjcmlwdGlvbnM6IEVmZmVjdERlc2NyaXB0aW9uW10gPSBlZmZlY3RzLm1hcCgoZWZmZWN0KSA9PiAoe1xuICAgIHR5cGU6IGVmZmVjdC50eXBlLFxuICAgIHBhcmFtczogZWZmZWN0LnBhcmFtcyxcbiAgICBuZXh0QWN0aW9uOiBoYXNOZXh0QWN0aW9uKGVmZmVjdCkgPyBlZmZlY3QubmV4dChwcm94eSkudHlwZSA6IHVuZGVmaW5lZCxcbiAgICBlcnJvckFjdGlvbjogaGFzRXJyb3JBY3Rpb24oZWZmZWN0KSA/IGVmZmVjdC5lcnJvcihwcm94eSkudHlwZSA6IHVuZGVmaW5lZCxcbiAgICBjb21wbGV0ZUFjdGlvbjogaGFzQ29tcGxldGVBY3Rpb24oZWZmZWN0KSA/IGVmZmVjdC5jb21wbGV0ZSgpLnR5cGUgOiB1bmRlZmluZWQsXG4gICAgc3Vic2NyaWJlQWN0aW9uOiBoYXNTdWJzY3JpYmVBY3Rpb24oZWZmZWN0KVxuICAgICAgPyBlZmZlY3Quc3Vic2NyaWJlZCgwIGFzIFN1YnNjcmlwdGlvblRva2VuKS50eXBlXG4gICAgICA6IHVuZGVmaW5lZFxuICB9KSk7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHN0YXRlLCB7IF9fZWZmZWN0czogZWZmZWN0RGVzY3JpcHRpb25zIH0pO1xufVxuXG5mdW5jdGlvbiBoYXNOZXh0QWN0aW9uPFQsIEUgZXh0ZW5kcyBFZmZlY3RDb25maWc8YW55LCBhbnk+PihcbiAgZWZmZWN0OiBFXG4pOiBlZmZlY3QgaXMgRSAmIHsgbmV4dDogTm9uTnVsbGFibGU8T2JzZXJ2YWJsZUVmZmVjdDxhbnksIGFueT5bJ25leHQnXT4gfSB7XG4gIHJldHVybiAoZWZmZWN0IGFzIE9ic2VydmFibGVFZmZlY3Q8YW55LCBhbnk+KS5uZXh0ICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc0Vycm9yQWN0aW9uPFQsIEUgZXh0ZW5kcyBFZmZlY3RDb25maWc8YW55LCBhbnk+PihcbiAgZWZmZWN0OiBFXG4pOiBlZmZlY3QgaXMgRSAmIHsgZXJyb3I6IE5vbk51bGxhYmxlPE9ic2VydmFibGVFZmZlY3Q8YW55LCBhbnk+WydlcnJvciddPiB9IHtcbiAgcmV0dXJuIChlZmZlY3QgYXMgT2JzZXJ2YWJsZUVmZmVjdDxhbnksIGFueT4pLmVycm9yICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc0NvbXBsZXRlQWN0aW9uPFQsIEUgZXh0ZW5kcyBFZmZlY3RDb25maWc8YW55LCBhbnk+PihcbiAgZWZmZWN0OiBFXG4pOiBlZmZlY3QgaXMgRSAmIHsgY29tcGxldGU6IE5vbk51bGxhYmxlPE9ic2VydmFibGVFZmZlY3Q8YW55LCBhbnk+Wydjb21wbGV0ZSddPiB9IHtcbiAgcmV0dXJuIChlZmZlY3QgYXMgT2JzZXJ2YWJsZUVmZmVjdDxhbnksIGFueT4pLmNvbXBsZXRlICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc1N1YnNjcmliZUFjdGlvbjxULCBFIGV4dGVuZHMgRWZmZWN0Q29uZmlnPGFueSwgYW55Pj4oXG4gIGVmZmVjdDogRVxuKTogZWZmZWN0IGlzIEUgJiB7IHN1YnNjcmliZWQ6IE5vbk51bGxhYmxlPE9ic2VydmFibGVFZmZlY3Q8YW55LCBhbnk+WydzdWJzY3JpYmVkJ10+IH0ge1xuICByZXR1cm4gKGVmZmVjdCBhcyBPYnNlcnZhYmxlRWZmZWN0PGFueSwgYW55Pikuc3Vic2NyaWJlZCAhPT0gdW5kZWZpbmVkO1xufVxuIl19