Improve evaldata-prune scriptlet

This commit is contained in:
Raymond Hill 2025-02-20 09:47:36 -05:00
parent c778f339cd
commit 9bb1a2baaf
No known key found for this signature in database
GPG key ID: 25E1490B761470C2

View file

@ -1472,21 +1472,19 @@ builtinScriptlets.push({
fn: evaldataPrune,
dependencies: [
'object-prune.fn',
'proxy-apply.fn',
],
});
function evaldataPrune(
rawPrunePaths = '',
rawNeedlePaths = ''
) {
self.eval = new Proxy(self.eval, {
apply(target, thisArg, args) {
const before = Reflect.apply(target, thisArg, args);
if ( typeof before === 'object' ) {
const after = objectPruneFn(before, rawPrunePaths, rawNeedlePaths);
return after || before;
}
return before;
}
proxyApplyFn('eval', function(context) {
const before = context.reflect();
if ( typeof before !== 'object' ) { return before; }
if ( before === null ) { return null; }
const after = objectPruneFn(before, rawPrunePaths, rawNeedlePaths);
return after || before;
});
}