UNPKG

tc39-weakrefs-shim

Version:
16 lines (15 loc) 898 B
import { Privates } from "../utils/privates.js"; import { WeakRefJobs } from "./WeakRefJobs.js"; import { WeakRefsGetObjectInfo } from "./FinalizationGroup.js"; import { WeakRef } from "../weakrefs.js"; export interface WeakRefsGetTarget<ObjectInfo> { (info: ObjectInfo): object | undefined; } export interface WeakRefsGetObjectInfo<ObjectInfo> { (target: object): ObjectInfo; } export declare class WeakRefSlots<ObjectInfo> { readonly targetInfo: ObjectInfo; constructor(targetInfo: ObjectInfo); } export declare function createWeakRefClassShim<ObjectInfo, Slots extends WeakRefSlots<ObjectInfo> = WeakRefSlots<ObjectInfo>>(jobs: Pick<WeakRefJobs, "keepDuringJob">, getInfo: WeakRefsGetObjectInfo<ObjectInfo>, getTarget: WeakRefsGetTarget<ObjectInfo>, initSlots?: (target: object, self: WeakRef) => Slots): [WeakRef.Constructor, Privates<Slots, import("../weakrefs.js").WeakRef>];