updeep-remeda/src/wrap.ts

18 lines
366 B
TypeScript

import freeze from "./freeze.js";
import { purry } from "remeda";
const wrap =
(fn) =>
(...args) => {
const diff = fn.length - args.length;
if (diff === 0) {
return freeze(fn(...args));
}
if (diff === 1) {
return (data) => freeze(fn(data, ...args));
}
throw new Error("Wrong number of arguments");
};
export default wrap;