UNPKG

@ngrx/effects

Version:

Side effect model for @ngrx/store

28 lines 4.32 kB
export function reportInvalidActions(output, reporter) { if (output.notification.kind === 'N') { const action = output.notification.value; const isInvalidAction = !isAction(action); if (isInvalidAction) { reporter.handleError(new Error(`Effect ${getEffectName(output)} dispatched an invalid action: ${stringify(action)}`)); } } } function isAction(action) { return (typeof action !== 'function' && action && action.type && typeof action.type === 'string'); } function getEffectName({ propertyName, sourceInstance, sourceName, }) { const isMethod = typeof sourceInstance[propertyName] === 'function'; return `"${sourceName}.${String(propertyName)}${isMethod ? '()' : ''}"`; } function stringify(action) { try { return JSON.stringify(action); } catch { return action; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0X25vdGlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZWZmZWN0cy9zcmMvZWZmZWN0X25vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQTBCLEVBQzFCLFFBQXNCO0lBRXRCLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLElBQUksZUFBZSxFQUFFO1lBQ25CLFFBQVEsQ0FBQyxXQUFXLENBQ2xCLElBQUksS0FBSyxDQUNQLFVBQVUsYUFBYSxDQUNyQixNQUFNLENBQ1Asa0NBQWtDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUN2RCxDQUNGLENBQUM7U0FDSDtLQUNGO0FBQ0gsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLE1BQVc7SUFDM0IsT0FBTyxDQUNMLE9BQU8sTUFBTSxLQUFLLFVBQVU7UUFDNUIsTUFBTTtRQUNOLE1BQU0sQ0FBQyxJQUFJO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxFQUNyQixZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsR0FDUztJQUNuQixNQUFNLFFBQVEsR0FBRyxPQUFPLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxVQUFVLENBQUM7SUFFcEUsT0FBTyxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO0FBQzFFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFpQztJQUNsRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQy9CO0lBQUMsTUFBTTtRQUNOLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlTm90aWZpY2F0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZmZWN0Tm90aWZpY2F0aW9uIHtcbiAgZWZmZWN0OiBPYnNlcnZhYmxlPGFueT4gfCAoKCkgPT4gT2JzZXJ2YWJsZTxhbnk+KTtcbiAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eUtleTtcbiAgc291cmNlTmFtZTogc3RyaW5nO1xuICBzb3VyY2VJbnN0YW5jZTogYW55O1xuICBub3RpZmljYXRpb246IE9ic2VydmFibGVOb3RpZmljYXRpb248QWN0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnRJbnZhbGlkQWN0aW9ucyhcbiAgb3V0cHV0OiBFZmZlY3ROb3RpZmljYXRpb24sXG4gIHJlcG9ydGVyOiBFcnJvckhhbmRsZXJcbikge1xuICBpZiAob3V0cHV0Lm5vdGlmaWNhdGlvbi5raW5kID09PSAnTicpIHtcbiAgICBjb25zdCBhY3Rpb24gPSBvdXRwdXQubm90aWZpY2F0aW9uLnZhbHVlO1xuICAgIGNvbnN0IGlzSW52YWxpZEFjdGlvbiA9ICFpc0FjdGlvbihhY3Rpb24pO1xuXG4gICAgaWYgKGlzSW52YWxpZEFjdGlvbikge1xuICAgICAgcmVwb3J0ZXIuaGFuZGxlRXJyb3IoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgRWZmZWN0ICR7Z2V0RWZmZWN0TmFtZShcbiAgICAgICAgICAgIG91dHB1dFxuICAgICAgICAgICl9IGRpc3BhdGNoZWQgYW4gaW52YWxpZCBhY3Rpb246ICR7c3RyaW5naWZ5KGFjdGlvbil9YFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc0FjdGlvbihhY3Rpb246IGFueSk6IGFjdGlvbiBpcyBBY3Rpb24ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBhY3Rpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICBhY3Rpb24gJiZcbiAgICBhY3Rpb24udHlwZSAmJlxuICAgIHR5cGVvZiBhY3Rpb24udHlwZSA9PT0gJ3N0cmluZydcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0RWZmZWN0TmFtZSh7XG4gIHByb3BlcnR5TmFtZSxcbiAgc291cmNlSW5zdGFuY2UsXG4gIHNvdXJjZU5hbWUsXG59OiBFZmZlY3ROb3RpZmljYXRpb24pIHtcbiAgY29uc3QgaXNNZXRob2QgPSB0eXBlb2Ygc291cmNlSW5zdGFuY2VbcHJvcGVydHlOYW1lXSA9PT0gJ2Z1bmN0aW9uJztcblxuICByZXR1cm4gYFwiJHtzb3VyY2VOYW1lfS4ke1N0cmluZyhwcm9wZXJ0eU5hbWUpfSR7aXNNZXRob2QgPyAnKCknIDogJyd9XCJgO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnkoYWN0aW9uOiBBY3Rpb24gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGFjdGlvbik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBhY3Rpb247XG4gIH1cbn1cbiJdfQ==