{"version":3,"file":"Cache.cjs","sources":["../../../../../packages/theme/cssinjs/Cache.ts"],"sourcesContent":["export type KeyType = string | number;\ntype ValueType = [number, any]; // [times, realValue]\n\nconst SPLIT = '%';\nclass Entity {\n  instanceId: string;\n  constructor(instanceId: string) {\n    this.instanceId = instanceId;\n  }\n\n  /** @private Internal cache map. Do not access this directly */\n  cache = new Map<string, ValueType>();\n\n  get(keys: KeyType[] | string): ValueType | null {\n    return this.cache.get(Array.isArray(keys) ? keys.join(SPLIT) : keys) || null;\n  }\n\n  update(keys: KeyType[] | string, valueFn: (origin: ValueType | null) => ValueType | null) {\n    const path = Array.isArray(keys) ? keys.join(SPLIT) : keys;\n    const prevValue = this.cache.get(path)!;\n    const nextValue = valueFn(prevValue);\n\n    if (nextValue === null)\n      this.cache.delete(path);\n    else\n      this.cache.set(path, nextValue);\n  }\n}\n\nexport default Entity;\n"],"names":[],"mappings":";;;;;;;;;;AAGA,MAAM,KAAQ,GAAA,GAAA,CAAA;AACd,MAAM,MAAO,CAAA;AAAA,EAEX,YAAY,UAAoB,EAAA;AADhC,IAAA,aAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAMA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAA,OAAA,sBAAY,GAAuB,EAAA,CAAA,CAAA;AAJjC,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA,CAAA;AAAA,GACpB;AAAA,EAKA,IAAI,IAA4C,EAAA;AAC9C,IAAA,OAAO,IAAK,CAAA,KAAA,CAAM,GAAI,CAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAI,GAAA,IAAA,CAAK,IAAK,CAAA,KAAK,CAAI,GAAA,IAAI,CAAK,IAAA,IAAA,CAAA;AAAA,GAC1E;AAAA,EAEA,MAAA,CAAO,MAA0B,OAAyD,EAAA;AACxF,IAAM,MAAA,IAAA,GAAO,MAAM,OAAQ,CAAA,IAAI,IAAI,IAAK,CAAA,IAAA,CAAK,KAAK,CAAI,GAAA,IAAA,CAAA;AACtD,IAAA,MAAM,SAAY,GAAA,IAAA,CAAK,KAAM,CAAA,GAAA,CAAI,IAAI,CAAA,CAAA;AACrC,IAAM,MAAA,SAAA,GAAY,QAAQ,SAAS,CAAA,CAAA;AAEnC,IAAA,IAAI,SAAc,KAAA,IAAA;AAChB,MAAK,IAAA,CAAA,KAAA,CAAM,OAAO,IAAI,CAAA,CAAA;AAAA;AAEtB,MAAK,IAAA,CAAA,KAAA,CAAM,GAAI,CAAA,IAAA,EAAM,SAAS,CAAA,CAAA;AAAA,GAClC;AACF;;;;"}