@sandstack/neuron
Version:
Neuron is a lightweight framework agnostic global state manager for Javascript apps, with React support
1 lines • 2.34 kB
Source Map (JSON)
{"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"}