@jointly/cache-candidate-plugin-dependency-keys
Version:
This is a cache-candidate plugin providing a dependency-keys mechanism.
2 lines (1 loc) • 2.7 kB
JavaScript
;var u=Object.create;var n=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var c=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports),m=(t,r)=>{for(var o in r)n(t,o,{get:r[o],enumerable:!0})},D=(t,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of O(r))!R.call(t,e)&&e!==o&&n(t,e,{get:()=>r[e],enumerable:!(a=P(r,e))||a.enumerable});return t};var p=(t,r,o)=>(o=t!=null?u(g(t)):{},D(r||!t||!t.__esModule?n(o,"default",{value:t,enumerable:!0}):o,t)),H=t=>D(n({},"__esModule",{value:!0}),t);var l=c((U,_)=>{"use strict";var E=Object.defineProperty,S=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,h=Object.prototype.hasOwnProperty,y=(t,r)=>{for(var o in r)E(t,o,{get:r[o],enumerable:!0})},v=(t,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of b(r))!h.call(t,e)&&e!==o&&E(t,e,{get:()=>r[e],enumerable:!(a=S(r,e))||a.enumerable});return t},I=t=>v(E({},"__esModule",{value:!0}),t),s={};y(s,{Hooks:()=>A});_.exports=I(s);var A=(t=>(t.SETUP="SETUP",t.INIT="INIT",t.EXECUTION_PRE="EXECUTION_PRE",t.EXECUTION_POST="EXECUTION_POST",t.DATACACHE_RECORD_ADD_PRE="DATACACHE_RECORD_ADD_PRE",t.DATACACHE_RECORD_ADD_POST="DATACACHE_RECORD_ADD_POST",t.DATACACHE_RECORD_DELETE_PRE="DATACACHE_RECORD_DELETE_PRE",t.DATACACHE_RECORD_DELETE_POST="DATACACHE_RECORD_DELETE_POST",t.CACHE_HIT="CACHE_HIT",t))(A||{})});var x={};m(x,{PluginDependencyKeys:()=>w,cacheCandidateDependencyManager:()=>i});module.exports=H(x);var k=()=>{let t=new Map;return{register:(r,o)=>{var a;for(let e of o)if(!t.has(e))t.set(e,[r]);else{let C=!1;for(let T of t.get(e)??[])T.key===r.key&&(C=!0);C||(a=t.get(e))==null||a.push(r)}},invalidate:async r=>{var o;if(typeof r=="number"&&(r=r.toString()),!!t.has(r))for(let a of t.get(r)??[])await((o=a.internals)==null?void 0:o.deleteDataCacheRecord({options:a.options,key:a.key,HookPayload:a}))},deleteKey:r=>{for(let[o,a]of t.entries())a.some(e=>e.key===r)&&(a.length===1?t.delete(o):t.set(o,a.filter(e=>e.key!==r)))},instances:t}},i=k();var f=p(l());var w={name:"dependencyKeys",hooks:[{hook:f.Hooks.DATACACHE_RECORD_DELETE_POST,action:async({key:t})=>{i.deleteKey(t)}},{hook:f.Hooks.DATACACHE_RECORD_ADD_POST,action:async(t,r)=>{if(!r.dependencyKeys)return;let o=r.dependencyKeys;o=await N(o,t.result),i.register(t,o)}}]};async function N(t,r){return typeof t=="function"&&(t=t(r),t instanceof Promise&&(t=await t)),Array.isArray(t)&&(t=t.map(o=>typeof o=="number"?o.toString():o)),typeof t=="number"&&(t=[t.toString()]),typeof t=="string"&&(t=[t]),t}0&&(module.exports={PluginDependencyKeys,cacheCandidateDependencyManager});