import {Readable, Writable} from "svelte/store" export const getter = (store: Readable) => { let value: T store.subscribe((newValue: T) => { value = newValue }) return () => value } export type WritableWithGetter = Writable & {get: () => T} export type ReadableWithGetter = Readable & {get: () => T} export function withGetter(store: Writable): WritableWithGetter export function withGetter(store: Readable): ReadableWithGetter export function withGetter(store: Readable | Writable) { return {...store, get: getter(store)} }