@lesnoypudge/utils
Version:
lesnoypudge's utils
30 lines (29 loc) • 807 B
JavaScript
import "ts-deepmerge";
import "auto-bind";
import isCallable from "is-callable";
import "react-fast-compare";
import { never } from "../never/never.js";
import { noop } from "../noop/noop.js";
const patch = (options) => {
const {
methodName,
objectToPatch,
providedThis,
patchedMethodFactory
} = options;
const originalMethod = objectToPatch[methodName];
if (!isCallable(originalMethod)) return noop;
const patchedMethod = patchedMethodFactory(
originalMethod.bind(providedThis)
);
if (!isCallable(patchedMethod)) never("Factory should return function");
objectToPatch[methodName] = patchedMethod.bind(providedThis);
const restore = () => {
objectToPatch[methodName] = originalMethod;
};
return restore;
};
export {
patch
};
//# sourceMappingURL=patch.js.map