refactor: simplify plugin sdk compatibility aliases

This commit is contained in:
Peter Steinberger
2026-03-08 17:08:33 +00:00
parent dd7470730d
commit 25d0aa7296
4 changed files with 64 additions and 180 deletions

View File

@@ -108,92 +108,26 @@ const fastExports = {
resolveControlCommandGate,
};
const rootProxy = new Proxy(fastExports, {
get(target, prop, receiver) {
if (prop === "__esModule") {
return true;
}
if (prop === "default") {
return rootProxy;
}
if (Reflect.has(target, prop)) {
return Reflect.get(target, prop, receiver);
}
return loadMonolithicSdk()[prop];
},
has(target, prop) {
if (prop === "__esModule" || prop === "default") {
return true;
}
if (Reflect.has(target, prop)) {
return true;
}
const monolithic = tryLoadMonolithicSdk();
return monolithic ? prop in monolithic : false;
},
ownKeys(target) {
const keys = new Set([...Reflect.ownKeys(target), "default", "__esModule"]);
// Keep Object.keys/property reflection fast and deterministic.
// Only expose monolithic keys if it was already loaded by direct access.
if (monolithicSdk) {
for (const key of Reflect.ownKeys(monolithicSdk)) {
keys.add(key);
const monolithic = tryLoadMonolithicSdk();
const rootExports =
monolithic && typeof monolithic === "object"
? {
...monolithic,
...fastExports,
}
}
return [...keys];
},
getOwnPropertyDescriptor(target, prop) {
if (prop === "__esModule") {
return {
configurable: true,
enumerable: false,
writable: false,
value: true,
};
}
if (prop === "default") {
return {
configurable: true,
enumerable: false,
writable: false,
value: rootProxy,
};
}
const own = Object.getOwnPropertyDescriptor(target, prop);
if (own) {
return own;
}
const monolithic = tryLoadMonolithicSdk();
if (!monolithic) {
return undefined;
}
const descriptor = Object.getOwnPropertyDescriptor(monolithic, prop);
if (!descriptor) {
return undefined;
}
if (descriptor.get || descriptor.set) {
return {
configurable: true,
enumerable: descriptor.enumerable ?? true,
get: descriptor.get
? function getLegacyValue() {
return descriptor.get.call(monolithic);
}
: undefined,
set: descriptor.set
? function setLegacyValue(value) {
return descriptor.set.call(monolithic, value);
}
: undefined,
};
}
return {
configurable: true,
enumerable: descriptor.enumerable ?? true,
value: descriptor.value,
writable: descriptor.writable,
};
},
: { ...fastExports };
Object.defineProperty(rootExports, "__esModule", {
configurable: true,
enumerable: false,
writable: false,
value: true,
});
Object.defineProperty(rootExports, "default", {
configurable: true,
enumerable: false,
writable: false,
value: rootExports,
});
module.exports = rootProxy;
module.exports = rootExports;