import{ importProxy }from"./importProxy.ts";importtype{Ctx}from"./types/index.ts"; /** * https://docs.evt.land/api/evt/getctx * * Evt.getCtx(obj) an instance of Ctx<void>, always the same for a given object. * No strong reference to the object is created * when the object is no longer referenced it's associated Ctx will be freed from memory. */exportfunctiongetCtxFactory(){ const ctxByObj =newWeakMap<object,Ctx>(); functiongetCtx(obj: object):Ctx{ let ctx = ctxByObj.get(obj); if(ctx ===undefined){ ctx =(newimportProxy.Ctx()); ctxByObj.set(obj, ctx); } return ctx; } return getCtx; }