Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F4430907
test_proxy_object_entries.cjs
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
test_proxy_object_entries.cjs
View Options
const assert = require("node:assert");
let getCalls = 0;
const proxy = new Proxy({}, {
ownKeys() {
return ["kimi-for-coding", "hidden", Symbol("skip")];
},
getOwnPropertyDescriptor(_target, prop) {
if (prop === "kimi-for-coding") {
return { enumerable: true, configurable: true };
}
if (prop === "hidden") {
return { enumerable: false, configurable: true };
}
if (typeof prop === "symbol") {
return { enumerable: true, configurable: true };
}
},
get(_target, prop) {
getCalls++;
if (prop === "kimi-for-coding") {
return { apiKeyEnvVar: "KIMI_API_KEY" };
}
if (prop === "hidden") {
return { apiKeyEnvVar: "HIDDEN_API_KEY" };
}
return { apiKeyEnvVar: "SYMBOL_API_KEY" };
}
});
assert.deepStrictEqual(Object.keys(proxy), ["kimi-for-coding"]);
assert.deepStrictEqual(Object.values(proxy), [{ apiKeyEnvVar: "KIMI_API_KEY" }]);
assert.deepStrictEqual(Object.entries(proxy), [["kimi-for-coding", { apiKeyEnvVar: "KIMI_API_KEY" }]]);
assert.strictEqual(getCalls, 2);
console.log("proxy Object.keys/Object.values/Object.entries respect proxy traps");
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Sat, May 2, 4:23 AM (1 d, 22 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
543670
Default Alt Text
test_proxy_object_entries.cjs (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment