{"mappings":";AAuBA,mCAAmC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,CAEX;AAED,8BAA8B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAYF,kCAAkC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,GACT,aAAa,CAAC,EAAE,sBAAsB,CAAC,CAEzC","sources":["src/src/index.ts","src/index.ts"],"sourcesContent":[null,"import type {\n  Dispatch,\n  Dispatchable,\n  Effect,\n  Subscription,\n  Unsubscribe,\n} from \"hyperapp\";\n\ntype LocalStorageLoaderProps<S> = {\n  key: string;\n  action: Dispatchable<S>;\n};\n\nfunction _stateLoader<S>(\n  dispatch: Dispatch<S>,\n  props: LocalStorageLoaderProps<S>\n) {\n  let data = localStorage.getItem(props.key);\n  if (!data) return;\n  data = JSON.parse(data);\n  dispatch(props.action, data);\n}\n\nexport function LocalStorageLoader<S>(\n  key: string,\n  action: Dispatchable<S>\n): Effect<S> {\n  return [_stateLoader, { key, action }];\n}\n\ntype LocalStorageSaverProps = {\n  key: string;\n  value: any;\n};\n\nfunction _stateSaver<S>(\n  dispatch: Dispatch<S>,\n  props: LocalStorageSaverProps\n): Unsubscribe {\n  requestAnimationFrame((_) =>\n    localStorage.setItem(props.key, JSON.stringify(props.value))\n  );\n  return () => {};\n}\n\nexport function LocalStorageSaver<S>(\n  key: string,\n  value: any\n): Subscription<S, LocalStorageSaverProps> {\n  return [_stateSaver, { key, value }];\n}\n"],"names":[],"version":3,"file":"types.d.ts.map"}