Skip to content

@pumpkin-plugins/static-hermes-runtime API / component/resource-proxy-source / resourceProxySource

Variable: resourceProxySource ​

const resourceProxySource: "\nglobalThis.__staticHermesWrapResource = (resource) => {\n let disposed = false;\n const isDisposed = () => disposed || resource.__isValid === false;\n return new Proxy(resource, {\n get(target, key) {\n if (key === "__staticHermesResource") return target;\n if (key === "__staticHermesDisposed") return isDisposed();\n if (key === "__isValid") return !isDisposed();\n if (key === Symbol.dispose) {\n const dispose = Reflect.get(target, key, target);\n const release = typeof dispose === "function" ? dispose : Reflect.get(target, "drop", target);\n return typeof release === "function" ? (...args) => {\n if (isDisposed()) return;\n disposed = true;\n return Reflect.apply(release, target, args);\n } : undefined;\n }\n if (key === "drop") {\n const drop = Reflect.get(target, key, target);\n return typeof drop === "function" ? (...args) => {\n if (isDisposed()) return;\n disposed = true;\n return Reflect.apply(drop, target, args);\n } : drop;\n }\n if (isDisposed()) throw new Error("Cannot use a disposed or transferred resource");\n const member = Reflect.get(target, key, target);\n return typeof member === "function" ? (...args) => {\n if (isDisposed()) throw new Error("Cannot use a disposed or transferred resource");\n return Reflect.apply(member, target, args);\n } : member;\n }\n });\n};\n"

Defined in: component/resource-proxy-source.ts:2

Runtime source that gives generated component resources stable receivers and idempotent disposal.

pumpkin-plugins documentation