Socket
Socket
Sign inDemoInstall

just-curry-it

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

just-curry-it - npm Package Compare versions

Comparing version 5.0.1 to 5.1.0

CHANGELOG.md

21

index.d.ts
export default curry;
// TODO: get more specific with permssible param types for returned function
declare function curry(
fn: Function,
arity?: number,
) : Function;
type MakeTuple<LEN extends number, T extends any = any, C extends T[] = []> = C['length'] extends LEN ? C : MakeTuple<LEN, T, [T, ...C]>
type CurryOverload<F extends (...args: any[]) => any, N extends unknown[], P extends unknown[]> =
N extends [infer L, ...infer R]
? ((...args: [...P, L]) => CurryInternal<F, R>) & CurryOverload<F, R, [...P, L]>
: () => CurryInternal<F, P>
type CurryInternal<F extends (...args: any[]) => any, N extends unknown[]> =
0 extends N['length'] ? ReturnType<F> : CurryOverload<F, N, []>
type Curry<F extends (...args: any[]) => any, LEN extends number | undefined = undefined, I extends any = any> =
0 extends (LEN extends undefined ? Parameters<F>['length'] : LEN)
? () => ReturnType<F>
: CurryInternal<F, LEN extends undefined ? Parameters<F> : MakeTuple<LEN extends undefined ? 0 : LEN, I>>
declare function curry<F extends (...args: any[]) => any, L extends number>(
fn: F,
arity?: L | undefined,
) : Curry<F, number extends L ? undefined : L, Parameters<F>[number]>;

@@ -15,7 +15,47 @@ import curry from './index'

curry(add, 1)(1);
function many(a: string, b: number, c: boolean, d: bigint, e: number[], f: string | undefined, g: Record<any, any>): boolean {
return true
}
const return1 = curry(many)('')(123)(false)(BigInt(2))([1])(undefined)({})
const return2 = curry(many)('', 123)(false, BigInt(2))([1], '123')({})
const return3 = curry(many)('', 123, false)(BigInt(2), [1], undefined)({})
const return4 = curry(many)('', 123, false, BigInt(2))([1], undefined, {})
const return5 = curry(many)('', 123, false, BigInt(2), [1])(undefined, {})
const return6 = curry(many)('', 123, false, BigInt(2), [1], undefined)({})
const return7 = curry(many)('', 123, false)(BigInt(2), [1])(undefined)({})
const returns: boolean[] = [return1, return2, return3, return4, return5, return6, return7]
function dynamic(...args: string[]): number {
return args.length
}
const dy1 = curry(dynamic, 1)('')
const dy2 = curry(dynamic, 2)('')('')
const dy3 = curry(dynamic, 3)('')('')('')
const dys: number[] = [dy1, dy2, dy3]
// not OK
// @ts-expect-error
curry(add, 1)(1)(2);
// @ts-expect-error
curry(add, 1)(1)(2)(3);
// @ts-expect-error
curry(add, 4)('');
// not OK
// @ts-expect-error
curry(many)(123)
// @ts-expect-error
curry(many)('', 123)(123)
// @ts-expect-error
curry(many)('', 123, true)('')
// @ts-expect-error
curry(many)('', 123, true, BigInt(2))('')
// @ts-expect-error
curry(many)('', 123, true, BigInt(2), [1])(123)
// @ts-expect-error
curry(many)('', 123, true, BigInt(2), [1,1], '')('')
// @ts-expect-error
curry(dynamic)(123)
// @ts-expect-error
curry();

@@ -22,0 +62,0 @@ // @ts-expect-error

{
"name": "just-curry-it",
"version": "5.0.1",
"version": "5.1.0",
"description": "return a curried function",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -0,1 +1,4 @@

<!-- DO NOT EDIT THIS FILE! THIS FILE WAS AUTOGENERATED BY TEMPLATE-MATE -->
<!-- SEE https://github.com/angus-c/just/blob/master/CONTRIBUTING.md#readme-template -->
## just-curry-it

@@ -2,0 +5,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc