UNPKG

fp-ts-bracket

Version:
21 lines (20 loc) 883 B
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-call */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-return */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unnecessary-type-parameters */ /* eslint-disable @typescript-eslint/unified-signatures */ /* eslint-disable prefer-rest-params */ // NOTE! Bellow code comes from fp-ts internals /** @internal */ export const dual = (arity, body) => { const isDataFirst = typeof arity === "number" ? (args) => args.length >= arity : arity; return function () { const args = Array.from(arguments); if (isDataFirst(arguments)) { return body.apply(this, args); } return (self) => body(self, ...args); }; };