MCPcopy Index your code
hub / github.com/codeceptjs/CodeceptJS / makeLiveProxy

Function makeLiveProxy

lib/plugin/expose.js:123–159  ·  view source on GitHub ↗
(helperName, property)

Source from the content-addressed store, hash-verified

121}
122
123function makeLiveProxy(helperName, property) {
124 const resolve = () => Container.helpers(helperName)?.[property]
125 return new Proxy(function () {}, {
126 get(_, prop) {
127 const target = resolve()
128 if (target == null) return undefined
129 const value = target[prop]
130 if (typeof value === 'function') return value.bind(target)
131 return value
132 },
133 has(_, prop) {
134 const target = resolve()
135 return target != null && prop in target
136 },
137 apply(_, thisArg, args) {
138 const target = resolve()
139 return target?.apply(thisArg, args)
140 },
141 set(_, prop, value) {
142 const target = resolve()
143 if (target != null) target[prop] = value
144 return true
145 },
146 getPrototypeOf() {
147 const target = resolve()
148 return target != null ? Object.getPrototypeOf(target) : null
149 },
150 ownKeys() {
151 const target = resolve()
152 return target != null ? Reflect.ownKeys(target) : []
153 },
154 getOwnPropertyDescriptor(_, prop) {
155 const target = resolve()
156 return target != null ? Object.getOwnPropertyDescriptor(target, prop) : undefined
157 },
158 })
159}

Callers 1

expose.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected