lakutata
Version:
An IoC-based universal application framework.
41 lines (30 loc) • 937 B
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module"
});
const e = require("../../helpers/As.cjs");
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 c(c, f) {
const s = n(c);
const d = new WeakRef(f);
e.As(Reflect.getOwnMetadata(a, c)).register(f, d);
s.add(d);
Reflect.defineMetadata(t, s, c);
}
function f(e) {
if (!Reflect.hasOwnMetadata(t, e)) return;
Reflect.deleteMetadata(t, e);
}
exports.AppendObjectWeakRefs = c;
exports.ClearObjectWeakRefs = f;
exports.GetObjectWeakRefs = n;