babel-plugin-transform-proxy-compat
This babel plugin enables Proxy usage in IE 11. In order to make this work, we have to rewrite property lookups, assignments, property deletions, function invocations, in statements and for in loops to use functions in order to execute the correct proxy handlers.
Options
resolveProxyCompat
Object
, default to { module: 'proxy-compat' }
Accepts either:
module
property with a string
value when the proxy APIs should be retrieved from an external module.
{
module: 'my-proxy-compat';
}
import ProxyCompat from 'my-proxy-compat';
const callKey = ProxyCompat.callKey;
callKey(console, 'log', 'I am Compat');
global
property with a string
value when the proxy APIs should be retrieved from a global variable.
{
global: 'MyProxyCompat';
}
const callKey = MyProxyCompat.callKey;
callKey(console, 'log', 'I am Compat');
independent
property with a string
value when the proxy APIs should be retrieved from independent modules.
{
independent: 'my-proxy-compat';
}
import callKey from 'my-proxy-compat/callKey';
callKey(console, 'log', 'I am Compat');
It's possible to disable the proxy compat transform for a specific file using the /* proxy-compat-disable */
comment at the top of the file. This is an escape hatch for code that is performance sensitive and doesn't manipulate any Proxy. Make sure to use it extremely wisely.
function palindrome(str) {
return (
str ===
str
.split('')
.reverse()
.join('')
);
}