lakutata
Version:
An IoC-based universal application framework.
31 lines (24 loc) • 834 B
JavaScript
import { As as e } from "../../helpers/As.mjs";
const t = Symbol("OWR");
const a = Symbol("OFR");
function n(e) {
if (!Reflect.hasOwnMetadata(a, e)) Reflect.defineMetadata(a, new FinalizationRegistry((a => {
const n = Reflect.getOwnMetadata(t, e) || new Set;
n.delete(a);
Reflect.defineMetadata(t, n, e);
})), e);
if (!Reflect.hasOwnMetadata(t, e)) Reflect.defineMetadata(t, new Set, e);
return Reflect.getOwnMetadata(t, e);
}
function f(f, c) {
const d = n(f);
const l = new WeakRef(c);
e(Reflect.getOwnMetadata(a, f)).register(c, l);
d.add(l);
Reflect.defineMetadata(t, d, f);
}
function c(e) {
if (!Reflect.hasOwnMetadata(t, e)) return;
Reflect.deleteMetadata(t, e);
}
export { f as AppendObjectWeakRefs, c as ClearObjectWeakRefs, n as GetObjectWeakRefs };