import { MemoizeCache } from "../interface"; export default class BaseCache { readonly weak: boolean; cacheMap: MemoizeCache constructor(weak: boolean = false) { this.weak = weak this.cacheMap = this.getMapOrWeakMapByOption() } getMapOrWeakMapByOption(): Map | WeakMap { return this.weak ? new WeakMap() : new Map() } has(key: string | object): boolean { return this.cacheMap.has(key); } }