From c2ef69bcb1d89abb375f92355a42c015de311961 Mon Sep 17 00:00:00 2001 From: Ilya Mochalov Date: Thu, 19 Feb 2015 21:43:05 +0500 Subject: [PATCH] Fix sort, sortBy and without methods of Lazy.js definitions --- lazy.js/lazy.js-tests.ts | 11 +++++++++++ lazy.js/lazy.js.d.ts | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lazy.js/lazy.js-tests.ts b/lazy.js/lazy.js-tests.ts index cab0787c31..5e45ccf135 100644 --- a/lazy.js/lazy.js-tests.ts +++ b/lazy.js/lazy.js-tests.ts @@ -74,6 +74,10 @@ function fnMemoCallback(memo: Bar, value: Foo): Bar { return bar; } +function fnCompareCallback(x: any, y: any): number { + return num; +} + function fnGeneratorCallback(index: number): Foo { return foo; } @@ -140,7 +144,13 @@ fooSequence = fooSequence.reverse(); fooSequence = fooSequence.shuffle(); bool = fooSequence.some(); bool = fooSequence.some(fnTestCallback); +fooSequence = fooSequence.sort(); +fooSequence = fooSequence.sort(fnCompareCallback); +fooSequence = fooSequence.sort(fnCompareCallback, bool); +fooSequence = fooSequence.sortBy(str); +fooSequence = fooSequence.sortBy(str, bool); fooSequence = fooSequence.sortBy(fnNumberCallback); +fooSequence = fooSequence.sortBy(fnNumberCallback, bool); fooSequence = fooSequence.sortedIndex(foo); fooSequence = fooSequence.sum(); fooSequence = fooSequence.sum(fnNumberCallback); @@ -148,6 +158,7 @@ fooSequence = fooSequence.takeWhile(fnTestCallback); fooSequence = fooSequence.union(fooArr); fooSequence = fooSequence.uniq(); fooSequence = fooSequence.where(obj); +fooSequence = fooSequence.without(foo, foo); fooSequence = fooSequence.without(fooArr); fooSequence = fooSequence.zip(arr); diff --git a/lazy.js/lazy.js.d.ts b/lazy.js/lazy.js.d.ts index d388ba6f71..02cf1833b5 100644 --- a/lazy.js/lazy.js.d.ts +++ b/lazy.js/lazy.js.d.ts @@ -73,6 +73,10 @@ declare module LazyJS { (index: number): T; } + interface CompareCallback { + (x: any, y: any): number; + } + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - interface Iterator { @@ -153,7 +157,9 @@ declare module LazyJS { rest(count?: number): Sequence; shuffle(): Sequence; some(predicateFn?: TestCallback): boolean; - sortBy(sortFn: NumberCallback): Sequence; + sort(sortFn?: CompareCallback, descending?: boolean): Sequence; + sortBy(sortFn: string, descending?: boolean): Sequence; + sortBy(sortFn: NumberCallback, descending?: boolean): Sequence; sortedIndex(value: T): Sequence; size(): number; sum(valueFn?: NumberCallback): Sequence; @@ -161,6 +167,7 @@ declare module LazyJS { union(var_args: T[]): Sequence; uniq(): Sequence; where(properties: Object): Sequence; + without(...var_args: T[]): Sequence; without(var_args: T[]): Sequence; zip(var_args: T[]): Sequence;