{"version":3,"file":"index.cjs","sources":["../../package/shallow/shallow.ts","../../package/shallow/index.ts"],"sourcesContent":["import { Module } from \"../core\";\n\nexport interface ShallowFeatures {\n  shallow?: boolean;\n}\n\nexport const shallowEqual = <T>(a: T, b: T) => {\n  if (\n    typeof a !== \"object\" ||\n    a === null ||\n    typeof b !== \"object\" ||\n    b === null\n  ) {\n    return false;\n  }\n\n  if (Array.isArray(a) && Array.isArray(b)) {\n    if (a.length !== b.length) return false;\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  if (!Array.isArray(a) && !Array.isArray(b)) {\n    const keysA = Object.keys(a);\n    const keysB = Object.keys(b);\n\n    if (keysA.length !== keysB.length) return false;\n\n    for (const key of keysA) {\n      if (a[key] !== b[key]) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  return false;\n};\n\nexport const Shallow = () =>\n  new Module({\n    name: \"@sandstack/neuron-shallow\",\n    onDispatch: (payload) => {\n      const dispatchShouldCancel = shallowEqual(\n        payload.prevState,\n        payload.state\n      );\n      if (dispatchShouldCancel) {\n        payload.cancelDispatch();\n      }\n    },\n  });\n","import { Shallow, ShallowFeatures, shallowEqual } from \"./shallow\";\n\nexport type { ShallowFeatures };\nexport { Shallow, shallowEqual };\nglobalThis[\"NeuronShallow\"] = {\n  Shallow,\n  shallowEqual,\n};\n"],"names":["shallowEqual","a","b","i","keysA","keysB","key","Shallow","Module","payload"],"mappings":"2GAMaA,EAAe,CAAIC,EAAMC,IAAS,CAE3C,GAAA,OAAOD,GAAM,UACbA,IAAM,MACN,OAAOC,GAAM,UACbA,IAAM,KAEC,MAAA,GAGT,GAAI,MAAM,QAAQD,CAAC,GAAK,MAAM,QAAQC,CAAC,EAAG,CACpC,GAAAD,EAAE,SAAWC,EAAE,OAAe,MAAA,GAClC,QAASC,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAC5B,GAAIF,EAAEE,CAAC,IAAMD,EAAEC,CAAC,EACP,MAAA,GAGJ,MAAA,EACT,CAEI,GAAA,CAAC,MAAM,QAAQF,CAAC,GAAK,CAAC,MAAM,QAAQC,CAAC,EAAG,CACpC,MAAAE,EAAQ,OAAO,KAAKH,CAAC,EACrBI,EAAQ,OAAO,KAAKH,CAAC,EAEvB,GAAAE,EAAM,SAAWC,EAAM,OAAe,MAAA,GAE1C,UAAWC,KAAOF,EAChB,GAAIH,EAAEK,CAAG,IAAMJ,EAAEI,CAAG,EACX,MAAA,GAGJ,MAAA,EACT,CAEO,MAAA,EACT,EAEaC,EAAU,IACrB,IAAIC,SAAO,CACT,KAAM,4BACN,WAAaC,GAAY,CACMT,EAC3BS,EAAQ,UACRA,EAAQ,KAAA,GAGRA,EAAQ,eAAe,CAE3B,CACF,CAAC,ECnDH,WAAW,cAAmB,CAC5B,QAAAF,EACA,aAAAP,CACF"}