Automate assigning props in patcher

pull/2/head
1Lighty 4 years ago
parent 7cc0288b7f
commit 95994349ea

@ -25,13 +25,18 @@ const injector = {
const id = randomBytes(16).toString('hex');
mod.__vizalityInjectionId = Object.assign((mod.__vizalityInjectionId || {}), { [funcName]: id });
mod[`__vizalityOriginal_${funcName}`] = mod[funcName]; // To allow easier debugging
mod[funcName] = (_oldMethod => function (...args) {
const _oldMethod = mod[funcName];
mod[funcName] = function (...args) {
const finalArgs = injector._runPreInjections(id, args, this);
if (finalArgs !== false && Array.isArray(finalArgs)) {
const returned = _oldMethod ? _oldMethod.call(this, ...finalArgs) : void 0;
return injector._runInjections(id, finalArgs, returned, this);
}
})(mod[funcName]);
};
// Reassign displayName, defaultProps etc etc, not to mess with other plugins
Object.assign(mod[funcName], _oldMethod);
// Allow code search even after patching
mod[funcName].toString = (...args) => _oldMethod.toString(...args);
injector.injections[id] = [];
}

Loading…
Cancel
Save