mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 06:20:02 -04:00
21 lines
954 B
TypeScript
21 lines
954 B
TypeScript
const cssProperties = ["background", "background-image", "mask", "mask-image", "list-style", "list-style-image", "border-image", "border-image-source", "cursor"];
|
|
const jsProperties = ["background", "backgroundImage", "mask", "maskImage", "listStyle", "listStyleImage", "borderImage", "borderImageSource", "cursor"];
|
|
|
|
|
|
CSSStyleDeclaration.prototype.setProperty = new Proxy(CSSStyleDeclaration.prototype.setProperty, {
|
|
apply(target, thisArg, argArray) {
|
|
if (cssProperties.includes(argArray[0])) argArray[1] = self.__scramjet$bundle.rewriters.rewriteCss(argArray[1]);
|
|
|
|
return Reflect.apply(target, thisArg, argArray);
|
|
},
|
|
});
|
|
|
|
jsProperties.forEach((prop) => {
|
|
const propDescriptor = Object.getOwnPropertyDescriptor(CSSStyleDeclaration.prototype, prop);
|
|
|
|
Object.defineProperty(CSSStyleDeclaration.prototype, prop, {
|
|
set(v) {
|
|
propDescriptor.set.call(this, self.__scramjet$bundle.rewriters.rewriteCss(v));
|
|
},
|
|
})
|
|
});
|