OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-store / store / lib / detect-same-value-different-reference.middleware.js

19 lines · javascript ref:
import e from "lodash.isequal"
export function createDetectSameValueDifferentReferenceMiddleware(t = (e) => e) {
  let r, a
  return (n) => (o) => (f) => {
    ;((r = t ? t(n.getState()) : n.getState()), (a = r))
    const u = o(f),
      c = t ? t(n.getState()) : n.getState()
    return (
      void 0 !== r &&
        e(r, c) &&
        a !== c &&
        console.error(
          `[Redux Error] Same value but different reference returned after action:${f.type}`,
        ),
      u
    )
  }
}