diff --git a/streamjs/streamjs-tests.ts b/streamjs/streamjs-tests.ts
index e5d933851..55bad2bd5 100644
--- a/streamjs/streamjs-tests.ts
+++ b/streamjs/streamjs-tests.ts
@@ -1,6 +1,7 @@
//
-var numStream = Stream.make(10, 20);
+var numStream: Stream;
+// numStream = Stream.make(10, 20);
numStream = Stream.make([10, 20]);
numStream = Stream.range(1, 5);
numStream = Stream.rangeClosed(1, 5);
@@ -9,3 +10,36 @@ Stream.generate(function() {
return 1;
});
Stream.generate(() => 1);
+
+var comparator = (s1, s2) => 0;
+
+numStream = numStream.filter(n => n % 2 == 0);
+var strStream = numStream
+ .dropWhile((n) => n % 2 == 0)
+ .map(n => "number " + n)
+ .dropWhile(/^$/)
+ .limit(100)
+ .sorted()
+ .sort()
+ .sorted(comparator)
+ .sort(comparator)
+ .shuffle()
+ .reverse()
+ .distinct()
+ .skip(5)
+ .peek(s => console.log(s))
+ .takeWhile(s => s.length < 5)
+ .takeWhile(/^aa.*$/)
+ .slice(5, 2)
+ ;
+
+var strArray = strStream.toArray();
+
+class MyList {
+ elems: any[];
+}
+
+var elems: any[];
+elems = Stream.make([new MyList, new MyList])
+ .flatMap(list => list.elems)
+ .toArray();
diff --git a/streamjs/streamjs.d.ts b/streamjs/streamjs.d.ts
index e1fe42536..1ac6c534c 100644
--- a/streamjs/streamjs.d.ts
+++ b/streamjs/streamjs.d.ts
@@ -4,9 +4,29 @@
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare class Stream {
- static make (...elems: T[]): Stream;
- static make(elems: T[]): Stream;
- static range(startInclusive: number, endExclusive: number): Stream;
- static rangeClosed(startInclusive: number, endInclusive: number): Stream;
- static generate(supplier: () => T): Stream;
+ // static make (...elems: T[]): Stream;
+ static make (elems: T[]): Stream;
+ static range (startInclusive: number, endExclusive: number): Stream;
+ static rangeClosed (startInclusive: number, endInclusive: number): Stream;
+ static generate (supplier: () => T): Stream;
+
+ distinct(): Stream;
+ dropWhile(predicate: (elem: T) => boolean): Stream;
+ dropWhile(regexp: RegExp): Stream;
+ filter(predicate: (T) => boolean): Stream;
+ map (mapper: (T) => U): Stream;
+ flatMap (mapper: (T) => U[]): Stream;
+ limit(limit: number): Stream;
+ peek(consumer: (elem: T) => void ): Stream;
+ reverse(): Stream;
+ sorted(): Stream;
+ sorted(comparator: (e1: T, e2: T) => number): Stream;
+ sort(): Stream;
+ sort(comparator: (e1: T, e2: T) => number): Stream;
+ shuffle(): Stream;
+ skip(n: number): Stream;
+ slice(begin, end): Stream;
+ takeWhile(predicate: (elem: T) => boolean): Stream;
+ takeWhile(regexp: RegExp): Stream;
+ toArray(): T[];
}