From 29c5f60e681bee350c32da0be05918536e64dbfb Mon Sep 17 00:00:00 2001 From: bgrieder Date: Sun, 12 Nov 2017 10:17:38 +0100 Subject: [PATCH] added dist --- .gitignore | 1 - dist/Collection.d.ts | 47 ++++ dist/Collection.js | 446 +++++++++++++++++++++++++++++++++++ dist/Collection.js.map | 1 + dist/Iter.d.ts | 11 + dist/Iter.js | 3 + dist/Iter.js.map | 1 + dist/Option.d.ts | 31 +++ dist/Option.js | 172 ++++++++++++++ dist/Option.js.map | 1 + dist/Range.d.ts | 7 + dist/Range.js | 71 ++++++ dist/Range.js.map | 1 + dist/Seq.d.ts | 10 + dist/Seq.js | 91 +++++++ dist/Seq.js.map | 1 + dist/Try.d.ts | 29 +++ dist/Try.js | 200 ++++++++++++++++ dist/Try.js.map | 1 + dist/Utils.d.ts | 1 + dist/Utils.js | 11 + dist/Utils.js.map | 1 + dist/index.d.ts | 6 + dist/index.js | 19 ++ dist/index.js.map | 1 + dist/test/Option.test.d.ts | 0 dist/test/Option.test.js | 376 +++++++++++++++++++++++++++++ dist/test/Option.test.js.map | 1 + dist/test/Range.test.d.ts | 0 dist/test/Range.test.js | 21 ++ dist/test/Range.test.js.map | 1 + dist/test/Seq.test.d.ts | 0 dist/test/Seq.test.js | 311 ++++++++++++++++++++++++ dist/test/Seq.test.js.map | 1 + dist/test/TestsSetup.d.ts | 4 + dist/test/TestsSetup.js | 28 +++ dist/test/TestsSetup.js.map | 1 + dist/test/Try.test.d.ts | 0 dist/test/Try.test.js | 226 ++++++++++++++++++ dist/test/Try.test.js.map | 1 + 40 files changed, 2134 insertions(+), 1 deletion(-) create mode 100644 dist/Collection.d.ts create mode 100644 dist/Collection.js create mode 100644 dist/Collection.js.map create mode 100644 dist/Iter.d.ts create mode 100644 dist/Iter.js create mode 100644 dist/Iter.js.map create mode 100644 dist/Option.d.ts create mode 100644 dist/Option.js create mode 100644 dist/Option.js.map create mode 100644 dist/Range.d.ts create mode 100644 dist/Range.js create mode 100644 dist/Range.js.map create mode 100644 dist/Seq.d.ts create mode 100644 dist/Seq.js create mode 100644 dist/Seq.js.map create mode 100644 dist/Try.d.ts create mode 100644 dist/Try.js create mode 100644 dist/Try.js.map create mode 100644 dist/Utils.d.ts create mode 100644 dist/Utils.js create mode 100644 dist/Utils.js.map create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/index.js.map create mode 100644 dist/test/Option.test.d.ts create mode 100644 dist/test/Option.test.js create mode 100644 dist/test/Option.test.js.map create mode 100644 dist/test/Range.test.d.ts create mode 100644 dist/test/Range.test.js create mode 100644 dist/test/Range.test.js.map create mode 100644 dist/test/Seq.test.d.ts create mode 100644 dist/test/Seq.test.js create mode 100644 dist/test/Seq.test.js.map create mode 100644 dist/test/TestsSetup.d.ts create mode 100644 dist/test/TestsSetup.js create mode 100644 dist/test/TestsSetup.js.map create mode 100644 dist/test/Try.test.d.ts create mode 100644 dist/test/Try.test.js create mode 100644 dist/test/Try.test.js.map diff --git a/.gitignore b/.gitignore index 1769636..9cf6fff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -dist/ node_modules/ .idea diff --git a/dist/Collection.d.ts b/dist/Collection.d.ts new file mode 100644 index 0000000..4444630 --- /dev/null +++ b/dist/Collection.d.ts @@ -0,0 +1,47 @@ +import { Iterable, Iterator } from './Iter'; +export declare abstract class Collection implements Iterable { + protected _value: Iterable; + protected constructor(value: any); + [Symbol.iterator](): Iterator; + build(next: () => { + done: boolean; + value?: B; + }): Collection; + at(index: number): A; + collect(filter: (value: A) => boolean): (mapper: (value: A) => B) => Collection; + concat(that: Collection): Collection; + contains(elem: any): boolean; + count(p: (value: A) => boolean): number; + drop(n: number): Collection; + dropWhile(p: (value: A) => Boolean): Collection; + equals(that: Collection): boolean; + exists(p: (value: A) => boolean): boolean; + filter(filter: (value: A) => boolean): Collection; + filterNot(filter: (value: A) => boolean): Collection; + flatMap(f: (value: A, index?: number) => Collection): Collection; + flatten(): Collection; + foldLeft(initialValue: B): (op: (accumulator: B, value: A, index?: number) => B) => B; + foldRight(initialValue: B): (op: (accumulator: B, value: A, index?: number) => B) => B; + forall(p: (value: A) => boolean): boolean; + foreach(f: (value: A) => void): void; + readonly hasDefiniteSize: boolean; + readonly head: A; + indexOf(elem: A, from?: number): number; + readonly isEmpty: boolean; + readonly isIndexed: boolean; + readonly last: A; + readonly length: number; + map(f: (value: A, index?: number) => B): Collection; + mkString(sep?: string): string; + mkString(start?: string, sep?: string, end?: string): string; + readonly nonEmpty: boolean; + readonly reverse: Collection; + readonly size: number; + slice(from: number, until: number): Collection; + readonly sum: A; + readonly tail: Collection; + take(n: number): Collection; + readonly toArray: Array; + readonly toIndexed: Collection; + readonly toString: string; +} diff --git a/dist/Collection.js b/dist/Collection.js new file mode 100644 index 0000000..edbb949 --- /dev/null +++ b/dist/Collection.js @@ -0,0 +1,446 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Utils_1 = require("./Utils"); +var arrayFrom = function (iterator) { + var a = []; + while (true) { + var n = iterator.next(); + if (n.done) { + return a; + } + a.push(n.value); + } +}; +var Collection = (function () { + function Collection(value) { + this._value = value; + } + Collection.prototype[Symbol.iterator] = function () { + return this._value[Symbol.iterator](); + }; + Collection.prototype.build = function (next) { + var iter = (_a = {}, + _a[Symbol.iterator] = function () { + return { + next: next + }; + }, + _a); + return new this.constructor(iter); + var _a; + }; + Collection.prototype.at = function (index) { + if (index < 0) { + throw new Error('Invalid index: ' + index); + } + if (Array.isArray(this._value)) { + return this._value[index]; + } + if (typeof this._value === 'string') { + return this._value.charAt(index); + } + var it = this[Symbol.iterator](); + var i = 0; + while (true) { + var n = it.next(); + if (n.done) + throw new Error("No such Element"); + if (i === index) { + return n.value; + } + } + }; + Collection.prototype.collect = function (filter) { + var _this = this; + return function (mapper) { return _this.filter(filter).map(mapper); }; + }; + Collection.prototype.concat = function (that) { + var thisIt = this[Symbol.iterator](); + var thatIt = that[Symbol.iterator](); + var useThis = true; + var next = function () { + if (useThis) { + var n = thisIt.next(); + if (n.done) { + useThis = false; + return thatIt.next(); + } + else { + return n; + } + } + else { + return thatIt.next(); + } + }; + return this.build(next); + }; + Collection.prototype.contains = function (elem) { + return this.indexOf(elem) !== -1; + }; + Collection.prototype.count = function (p) { + return this.filter(p).size; + }; + Collection.prototype.drop = function (n) { + var it = this[Symbol.iterator](); + var i = 0; + var next = function () { + var nv = it.next(); + if (nv.done) { + return { done: true }; + } + i = i + 1; + if (i <= n) { + return next(); + } + return { done: false, value: nv.value }; + }; + return this.build(next); + }; + Collection.prototype.dropWhile = function (p) { + var it = this[Symbol.iterator](); + var i = 0; + var next = function () { + var nv = it.next(); + if (nv.done) { + return { done: true }; + } + i = i + 1; + if (p(nv.value)) { + return next(); + } + return { done: false, value: nv.value }; + }; + return this.build(next); + }; + Collection.prototype.equals = function (that) { + var thisIt = this[Symbol.iterator](); + var thatIt = that[Symbol.iterator](); + while (true) { + var thisn = thisIt.next(); + var thatn = thatIt.next(); + var bothDone = thisn.done && thatn.done; + if (bothDone) { + return true; + } + else { + if (Utils_1.eq(thisn.value, thatn.value)) { + continue; + } + } + return false; + } + }; + Collection.prototype.exists = function (p) { + return this.filter(p).take(1).size === 1; + }; + Collection.prototype.filter = function (filter) { + var it = this[Symbol.iterator](); + var next = function () { + var n = it.next(); + if (n.done) { + return { done: true }; + } + if (filter(n.value)) { + return { done: false, value: n.value }; + } + return next(); + }; + return this.build(next); + }; + Collection.prototype.filterNot = function (filter) { + return this.filter(function (value) { return !filter(value); }); + }; + Collection.prototype.flatMap = function (f) { + return this.map(f).flatten(); + }; + Collection.prototype.flatten = function () { + var it = this[Symbol.iterator](); + var inMain = true; + var subIt; + var iterateInMain = function () { + inMain = true; + var n = it.next(); + if (n.done) + return { done: true }; + if (n.value instanceof Collection) { + subIt = n.value[Symbol.iterator](); + return iterateInSub(); + } + return { done: false, value: n.value }; + }; + var iterateInSub = function () { + inMain = false; + var n = subIt.next(); + if (n.done) + return iterateInMain(); + return { done: false, value: n.value }; + }; + var next = function () { + if (inMain) { + return iterateInMain(); + } + return iterateInSub(); + }; + return this.build(next); + }; + Collection.prototype.foldLeft = function (initialValue) { + var _this = this; + return function (op) { + var it = _this[Symbol.iterator](); + var z = initialValue; + var i = 0; + for (var n = it.next(); !n.done; n = it.next()) { + z = op(z, n.value, i); + i = i + 1; + } + return z; + }; + }; + Collection.prototype.foldRight = function (initialValue) { + var _this = this; + return function (op) { return _this.reverse.foldLeft(initialValue)(op); }; + }; + Collection.prototype.forall = function (p) { + var it = this[Symbol.iterator](); + for (var n = it.next(); !n.done; n = it.next()) { + if (!p(n.value)) + return false; + } + return true; + }; + Collection.prototype.foreach = function (f) { + var it = this[Symbol.iterator](); + for (var n = it.next(); !n.done; n = it.next()) { + f(n.value); + } + }; + Object.defineProperty(Collection.prototype, "hasDefiniteSize", { + get: function () { + return typeof this._value.length !== 'undefined' || Array.isArray(this._value); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "head", { + get: function () { + var it = this[Symbol.iterator](); + var n = it.next(); + if (n.done) + throw new Error("No such element"); + return n.value; + }, + enumerable: true, + configurable: true + }); + Collection.prototype.indexOf = function (elem, from) { + if (Array.isArray(this._value)) { + return this._value.indexOf(elem, from); + } + var start = typeof from === 'undefined' ? 0 : from; + var it = this[Symbol.iterator](); + var index = -1; + while (true) { + var n = it.next(); + if (n.done) + return -1; + index = index + 1; + if (index >= start) { + if (Utils_1.eq(n.value, elem)) + return index; + } + } + }; + Object.defineProperty(Collection.prototype, "isEmpty", { + get: function () { + if (typeof this._value.length !== 'undefined') { + return this._value.length === 0; + } + var it = this[Symbol.iterator](); + return it.next().done; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "isIndexed", { + get: function () { + return Array.isArray(this._value) || typeof this._value === 'string'; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "last", { + get: function () { + if (this.isEmpty) { + throw new Error('No such element: head'); + } + if (this.isIndexed) { + return this.at(this.size - 1); + } + if (typeof this._value.reverseIterator !== 'undefined') { + return this._value.reverseIterator().next().value; + } + var it = this[Symbol.iterator](); + var last = void 0; + while (true) { + var n = it.next(); + if (n.done) + return last; + last = n.value; + } + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "length", { + get: function () { + return this.size; + }, + enumerable: true, + configurable: true + }); + Collection.prototype.map = function (f) { + var it = this[Symbol.iterator](); + var i = -1; + var next = function () { + var n = it.next(); + if (n.done) { + return { done: true }; + } + i = i + 1; + return { done: false, value: f(n.value, i) }; + }; + return this.build(next); + }; + Collection.prototype.mkString = function (startOrSep, sep, end) { + if (typeof startOrSep === 'undefined') { + startOrSep = ''; + sep = ''; + end = ''; + } + else if (typeof sep === 'undefined') { + sep = startOrSep; + startOrSep = ''; + end = ''; + } + return this.foldLeft('')(function (s, v, i) { + return s + (i == 0 ? startOrSep : sep) + v.toString(); + }) + end; + }; + Object.defineProperty(Collection.prototype, "nonEmpty", { + get: function () { + return !this.isEmpty; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "reverse", { + get: function () { + var _this = this; + if (typeof this._value.reverseIterator !== 'undefined') { + return new this.constructor((_a = {}, + _a[Symbol.iterator] = this._value.reverseIterator, + _a.length = this._value.length, + _a.reverseIterator = this._value[Symbol.iterator], + _a)); + } + if (this.isIndexed) { + var index_1 = this.length; + var next = function () { + if (index_1 <= 0) { + return { done: true }; + } + index_1 = index_1 - 1; + return { done: false, value: _this.at(index_1) }; + }; + return this.build(next); + } + return new this.constructor(this.toArray.reverse()); + var _a; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "size", { + get: function () { + if (typeof this._value.length !== 'undefined') { + return this._value.length; + } + var count = 0; + var it = this[Symbol.iterator](); + while (true) { + if (it.next().done) + return count; + count = count + 1; + } + }, + enumerable: true, + configurable: true + }); + Collection.prototype.slice = function (from, until) { + return Array.isArray(this._value) ? + new this.constructor(this._value.slice(from, until)) + : + this.drop(from).take(until - from); + }; + Object.defineProperty(Collection.prototype, "sum", { + get: function () { + var first = this.head; + return this.tail.foldLeft(first)(function (s, v) { return s + v; }); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "tail", { + get: function () { + return this.drop(1); + }, + enumerable: true, + configurable: true + }); + Collection.prototype.take = function (n) { + var it = this[Symbol.iterator](); + var i = 0; + var next = function () { + if (i === n) { + return { done: true }; + } + var next = it.next(); + if (next.done) { + return { done: true }; + } + i = i + 1; + return { done: false, value: next.value }; + }; + return this.build(next); + }; + Object.defineProperty(Collection.prototype, "toArray", { + get: function () { + return Array.isArray(this._value) ? + this._value.slice() + : + arrayFrom(this._value[Symbol.iterator]()); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "toIndexed", { + get: function () { + if (this.isIndexed) + return this; + return new this.constructor(this.toArray); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Collection.prototype, "toString", { + get: function () { + return this.mkString(); + }, + enumerable: true, + configurable: true + }); + return Collection; +}()); +exports.Collection = Collection; +//# sourceMappingURL=Collection.js.map \ No newline at end of file diff --git a/dist/Collection.js.map b/dist/Collection.js.map new file mode 100644 index 0000000..22e0f08 --- /dev/null +++ b/dist/Collection.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../typescript/Collection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Iter.d.ts b/dist/Iter.d.ts new file mode 100644 index 0000000..1530953 --- /dev/null +++ b/dist/Iter.d.ts @@ -0,0 +1,11 @@ +export interface Iterator { + next(): { + done: boolean; + value?: A; + }; +} +export interface Iterable { + [Symbol.iterator](): Iterator; + length?: number; + reverseIterator?: () => Iterator; +} diff --git a/dist/Iter.js b/dist/Iter.js new file mode 100644 index 0000000..75362d9 --- /dev/null +++ b/dist/Iter.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Iter.js.map \ No newline at end of file diff --git a/dist/Iter.js.map b/dist/Iter.js.map new file mode 100644 index 0000000..a650d94 --- /dev/null +++ b/dist/Iter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Iter.js","sourceRoot":"","sources":["../typescript/Iter.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/Option.d.ts b/dist/Option.d.ts new file mode 100644 index 0000000..c938b8c --- /dev/null +++ b/dist/Option.d.ts @@ -0,0 +1,31 @@ +/// +import { Collection } from './Collection'; +export declare class Option extends Collection { + static from(optVal: any): Option; + collect(filter: (value: A) => boolean): (mapper: (value: A) => B) => Option; + collectFirst(filter: (value: A) => boolean): (mapper: (value: A) => B) => Option; + exists(p: (value: A) => boolean): boolean; + filter(f: (value: A) => boolean): Option; + filterNot(f: (value: A) => boolean): Option; + find(p: (value: A) => boolean): Option; + flatMap(f: (value: A) => Option): Option; + flatten(): Option; + forall(p: (value: A) => boolean): boolean; + foreach(f: (value: A) => void): void; + readonly get: A; + getOrElse(elseVal: () => U): A | U; + readonly headOption: Option; + readonly isDefined: boolean; + readonly last: A; + readonly lastOption: Option; + map(f: (value: A) => U): Option; + readonly nonEmpty: boolean; + orElse(alternative: () => Option): Option; + readonly orNull: A; + orThrow(message: () => string): A; + readonly orUndefined: A; + readonly toPromise: Promise; +} +export declare function some(value: A): Option; +export declare function none(): Option; +export declare function option(value: A | Iterable): Option; diff --git a/dist/Option.js b/dist/Option.js new file mode 100644 index 0000000..f0b05bb --- /dev/null +++ b/dist/Option.js @@ -0,0 +1,172 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Collection_1 = require("./Collection"); +var Option = (function (_super) { + __extends(Option, _super); + function Option() { + return _super !== null && _super.apply(this, arguments) || this; + } + Option.from = function (optVal) { + if (typeof optVal[Symbol.iterator] === 'undefined') { + return new Option([optVal]); + } + return new Option(optVal); + }; + Option.prototype.collect = function (filter) { + var _this = this; + return function (mapper) { return _super.prototype.collect.call(_this, filter)(mapper); }; + }; + Option.prototype.collectFirst = function (filter) { + var _this = this; + return function (mapper) { + return _this.filter(filter).map(mapper); + }; + }; + Option.prototype.exists = function (p) { + return _super.prototype.exists.call(this, p); + }; + Option.prototype.filter = function (f) { + return _super.prototype.filter.call(this, f); + }; + Option.prototype.filterNot = function (f) { + return _super.prototype.filterNot.call(this, f); + }; + Option.prototype.find = function (p) { + return this.filter(p); + }; + Option.prototype.flatMap = function (f) { + return _super.prototype.flatMap.call(this, f); + }; + Option.prototype.flatten = function () { + return _super.prototype.flatten.call(this); + }; + Option.prototype.forall = function (p) { + return _super.prototype.forall.call(this, p); + }; + Option.prototype.foreach = function (f) { + return _super.prototype.foreach.call(this, f); + }; + Object.defineProperty(Option.prototype, "get", { + get: function () { + return this.head; + }, + enumerable: true, + configurable: true + }); + Option.prototype.getOrElse = function (elseVal) { + try { + return this.get; + } + catch (e) { + return elseVal(); + } + }; + Object.defineProperty(Option.prototype, "headOption", { + get: function () { + return new Option(this); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Option.prototype, "isDefined", { + get: function () { + return !this.isEmpty; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Option.prototype, "last", { + get: function () { + if (this.isEmpty) { + throw new Error("No such element: last in None"); + } + return this.get; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Option.prototype, "lastOption", { + get: function () { + return new Option(this); + }, + enumerable: true, + configurable: true + }); + Option.prototype.map = function (f) { + return _super.prototype.map.call(this, f); + }; + Object.defineProperty(Option.prototype, "nonEmpty", { + get: function () { + return !this.isEmpty; + }, + enumerable: true, + configurable: true + }); + Option.prototype.orElse = function (alternative) { + return this.isEmpty ? alternative() : this; + }; + Object.defineProperty(Option.prototype, "orNull", { + get: function () { + try { + return this.get; + } + catch (e) { + return null; + } + }, + enumerable: true, + configurable: true + }); + Option.prototype.orThrow = function (message) { + try { + return this.get; + } + catch (e) { + throw new Error(message()); + } + }; + Object.defineProperty(Option.prototype, "orUndefined", { + get: function () { + try { + return this.get; + } + catch (e) { + return void 0; + } + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Option.prototype, "toPromise", { + get: function () { + return this.map(function (v) { return Promise.resolve(v); }).getOrElse(function () { return Promise.reject(new Error('No such element None.get')); }); + }, + enumerable: true, + configurable: true + }); + return Option; +}(Collection_1.Collection)); +exports.Option = Option; +function some(value) { + return Option.from([value]); +} +exports.some = some; +function none() { + return Option.from([]); +} +exports.none = none; +function option(value) { + return (typeof value === 'undefined' || value === null || value !== value) ? Option.from([]) : Option.from(value); +} +exports.option = option; +//# sourceMappingURL=Option.js.map \ No newline at end of file diff --git a/dist/Option.js.map b/dist/Option.js.map new file mode 100644 index 0000000..ea3ad87 --- /dev/null +++ b/dist/Option.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Option.js","sourceRoot":"","sources":["../typescript/Option.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Range.d.ts b/dist/Range.d.ts new file mode 100644 index 0000000..275bcd5 --- /dev/null +++ b/dist/Range.d.ts @@ -0,0 +1,7 @@ +import { Seq } from './Seq'; +export declare class Range extends Seq { + static from(lengthOrStart: number, end?: number, step?: number): Range; +} +export declare function range(length: number): Range; +export declare function range(start: number, end: number): Range; +export declare function range(start: number, end: number, step: number): Range; diff --git a/dist/Range.js b/dist/Range.js new file mode 100644 index 0000000..73b0e5f --- /dev/null +++ b/dist/Range.js @@ -0,0 +1,71 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Seq_1 = require("./Seq"); +var Range = (function (_super) { + __extends(Range, _super); + function Range() { + return _super !== null && _super.apply(this, arguments) || this; + } + Range.from = function (lengthOrStart, end, step) { + var rstart, rend, rstep; + if (typeof end === 'undefined' && typeof step === 'undefined') { + rstart = 0; + rstep = 1; + rend = Math.floor(lengthOrStart) - rstep; + } + else if (typeof step === 'undefined') { + rstep = 1; + rstart = Math.floor(lengthOrStart); + rend = Math.floor(end) - rstep; + } + else { + rstart = lengthOrStart; + rend = end; + rstep = step; + } + var iter = (_a = {}, + _a[Symbol.iterator] = function () { + var current = rstart; + return { + next: function () { + var done = rstep <= 0 ? current < rend : current > rend; + var value = done ? void 0 : current; + current = current + rstep; + return { done: done, value: value }; + } + }; + }, + _a.length = Math.floor((rend + rstep - rstart) / rstep), + _a.reverseIterator = function () { + var current = rend; + return { + next: function () { + var done = rstep > 0 ? current < rstart : current > rstart; + var value = done ? void 0 : current; + current = current - rstep; + return { done: done, value: value }; + } + }; + }, + _a); + return new Range(iter); + var _a; + }; + return Range; +}(Seq_1.Seq)); +exports.Range = Range; +function range(lengthOrStart, end, step) { + return Range.from(lengthOrStart, end, step); +} +exports.range = range; +//# sourceMappingURL=Range.js.map \ No newline at end of file diff --git a/dist/Range.js.map b/dist/Range.js.map new file mode 100644 index 0000000..690c215 --- /dev/null +++ b/dist/Range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Range.js","sourceRoot":"","sources":["../typescript/Range.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,6BAAyB;AAMzB;IAA2B,yBAAW;IAAtC;;IAiDA,CAAC;IA/CU,UAAI,GAAX,UAAa,aAAqB,EAAE,GAAY,EAAE,IAAa;QAC3D,IAAI,MAAc,EAAE,IAAY,EAAE,KAAa,CAAA;QAC/C,EAAE,CAAC,CAAE,OAAO,GAAG,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAY,CAAC,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC,CAAA;YACV,KAAK,GAAG,CAAC,CAAA;YACT,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,aAAa,CAAE,GAAG,KAAK,CAAA;QAC9C,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,CAAE,OAAO,IAAI,KAAK,WAAY,CAAC,CAAC,CAAC;YACrC,KAAK,GAAG,CAAC,CAAA;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,aAAa,CAAE,CAAA;YACpC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,GAAG,KAAK,CAAA;QACpC,CAAC;QACD,IAAI,CAAC,CAAC;YACF,MAAM,GAAG,aAAa,CAAA;YACtB,IAAI,GAAG,GAAG,CAAA;YACV,KAAK,GAAG,IAAI,CAAA;QAChB,CAAC;QAED,IAAM,IAAI;YACN,GAAC,MAAM,CAAC,QAAQ,IAAG;gBACf,IAAI,OAAO,GAAG,MAAM,CAAA;gBACpB,MAAM,CAAC;oBACH,IAAI,EAAE;wBACF,IAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAA;wBACzD,IAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAA;wBACrC,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;wBACzB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;oBACvC,CAAC;iBACJ,CAAA;YACL,CAAC;YACD,SAAM,GAAa,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,CAAE;YAChE,kBAAe,GAAI;gBACf,IAAI,OAAO,GAAG,IAAI,CAAA;gBAClB,MAAM,CAAC;oBACH,IAAI,EAAE;wBACF,IAAM,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;wBAC5D,IAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAA;wBACrC,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;wBACzB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;oBACvC,CAAC;iBACJ,CAAA;YACL,CAAC;eACJ,CAAA;QACD,MAAM,CAAC,IAAI,KAAK,CAAE,IAAI,CAAE,CAAA;;IAC5B,CAAC;IAGL,YAAC;AAAD,CAAC,AAjDD,CAA2B,SAAG,GAiD7B;AAjDY,sBAAK;AAgElB,eAAuB,aAAqB,EAAE,GAAY,EAAE,IAAa;IACrE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAE,CAAA;AACjD,CAAC;AAFD,sBAEC"} \ No newline at end of file diff --git a/dist/Seq.d.ts b/dist/Seq.d.ts new file mode 100644 index 0000000..100ecd0 --- /dev/null +++ b/dist/Seq.d.ts @@ -0,0 +1,10 @@ +import { Option } from './Option'; +import { Collection } from './Collection'; +export declare class Seq extends Collection { + static from(...vals: any[]): Seq; + collectFirst(filter: (value: A) => boolean): (mapper: (value: A) => B) => Option; + find(p: (value: A) => boolean): Option; + readonly headOption: Option; + readonly lastOption: Option; +} +export declare function seq(...vals: any[]): Seq; diff --git a/dist/Seq.js b/dist/Seq.js new file mode 100644 index 0000000..327ea20 --- /dev/null +++ b/dist/Seq.js @@ -0,0 +1,91 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Option_1 = require("./Option"); +var Collection_1 = require("./Collection"); +var Seq = (function (_super) { + __extends(Seq, _super); + function Seq() { + return _super !== null && _super.apply(this, arguments) || this; + } + Seq.from = function () { + var vals = []; + for (var _i = 0; _i < arguments.length; _i++) { + vals[_i] = arguments[_i]; + } + if (vals.length === 0) { + return new Seq([]); + } + if (vals.length > 1) { + return new Seq(vals); + } + var value = vals[0]; + if (typeof value[Symbol.iterator] === 'undefined') { + return new Seq([value]); + } + return new Seq(value); + }; + Seq.prototype.collectFirst = function (filter) { + var _this = this; + return function (mapper) { + try { + return Option_1.some(_this.filter(filter).map(mapper).head); + } + catch (e) { + return Option_1.none(); + } + }; + }; + Seq.prototype.find = function (p) { + var it = this[Symbol.iterator](); + for (var n = it.next(); !n.done; n = it.next()) { + if (p(n.value)) + return Option_1.some(n.value); + } + return Option_1.none(); + }; + Object.defineProperty(Seq.prototype, "headOption", { + get: function () { + try { + return Option_1.some(this.head); + } + catch (e) { + return Option_1.none(); + } + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Seq.prototype, "lastOption", { + get: function () { + try { + return Option_1.some(this.last); + } + catch (e) { + return Option_1.none(); + } + }, + enumerable: true, + configurable: true + }); + return Seq; +}(Collection_1.Collection)); +exports.Seq = Seq; +function seq() { + var vals = []; + for (var _i = 0; _i < arguments.length; _i++) { + vals[_i] = arguments[_i]; + } + return Seq.from.apply(Seq, vals); +} +exports.seq = seq; +//# sourceMappingURL=Seq.js.map \ No newline at end of file diff --git a/dist/Seq.js.map b/dist/Seq.js.map new file mode 100644 index 0000000..d95bfd9 --- /dev/null +++ b/dist/Seq.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Seq.js","sourceRoot":"","sources":["../typescript/Seq.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,mCAA2C;AAC3C,2CAAuC;AAMvC;IAA4B,uBAAa;IAAzC;;IAwEA,CAAC;IAtEU,QAAI,GAAX;QAAgB,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC1B,EAAE,CAAC,CAAE,IAAI,CAAC,MAAM,KAAK,CAAE,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,GAAG,CAAK,EAAE,CAAE,CAAA;QAC3B,CAAC;QACD,EAAE,CAAC,CAAE,IAAI,CAAC,MAAM,GAAG,CAAE,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,GAAG,CAAK,IAAI,CAAE,CAAA;QAC7B,CAAC;QACD,IAAM,KAAK,GAAG,IAAI,CAAE,CAAC,CAAE,CAAA;QACvB,EAAE,CAAC,CAAE,OAAO,KAAK,CAAE,MAAM,CAAC,QAAQ,CAAE,KAAK,WAAY,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,GAAG,CAAK,CAAE,KAAK,CAAE,CAAE,CAAA;QAClC,CAAC;QACD,MAAM,CAAC,IAAI,GAAG,CAAK,KAAK,CAAE,CAAA;IAC9B,CAAC;IAKD,0BAAY,GAAZ,UAAiB,MAA+B;QAAhD,iBASC;QARG,MAAM,CAAC,UAAE,MAAyB;YAC9B,IAAI,CAAC;gBACD,MAAM,CAAC,aAAI,CAAK,KAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAC,GAAG,CAAE,MAAM,CAAE,CAAC,IAAI,CAAE,CAAA;YAC9D,CAAC;YACD,KAAK,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,aAAI,EAAE,CAAA;YACjB,CAAC;QACL,CAAC,CAAA;IACL,CAAC;IAKD,kBAAI,GAAJ,UAAM,CAA0B;QAC5B,IAAM,EAAE,GAAgB,IAAI,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,CAAA;QACjD,GAAG,CAAC,CAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAG,CAAC;YAC/C,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,KAAK,CAAG,CAAC;gBAAC,MAAM,CAAC,aAAI,CAAK,CAAC,CAAC,KAAK,CAAE,CAAA;QACjD,CAAC;QACD,MAAM,CAAC,aAAI,EAAE,CAAA;IACjB,CAAC;IAKD,sBAAI,2BAAU;aAAd;YACI,IAAI,CAAC;gBACD,MAAM,CAAC,aAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAC5B,CAAC;YACD,KAAK,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,aAAI,EAAE,CAAA;YACjB,CAAC;QACL,CAAC;;;OAAA;IAYD,sBAAI,2BAAU;aAAd;YACI,IAAI,CAAC;gBACD,MAAM,CAAC,aAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAC5B,CAAC;YACD,KAAK,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,aAAI,EAAE,CAAA;YACjB,CAAC;QACL,CAAC;;;OAAA;IAEL,UAAC;AAAD,CAAC,AAxED,CAA4B,uBAAU,GAwErC;AAxEY,kBAAG;AA0EhB;IAAwB,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IAClC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAR,GAAG,EAAa,IAAI,EAAE;AACjC,CAAC;AAFD,kBAEC"} \ No newline at end of file diff --git a/dist/Try.d.ts b/dist/Try.d.ts new file mode 100644 index 0000000..ca57ae7 --- /dev/null +++ b/dist/Try.d.ts @@ -0,0 +1,29 @@ +import { Option } from './Option'; +export declare class Try { + static from(value: any): Try; + private readonly _computation; + private _result; + private _failed; + protected constructor(computation: (...args: any[]) => A); + private compute(); + private computeThrow(); + collect(filter: () => boolean): (mapper: (value: A) => B) => Try; + readonly failed: Try; + filter(f: () => boolean): Try; + flatMap(f: (value: A) => Try): Try; + flatten(): Try; + fold(ffailure: (e: Error) => U, fsuccess: (vale: A) => U): U; + foreach(f: (value: A) => void): void; + readonly get: A; + getOrElse(elseVal: () => U): A | U; + readonly isFailure: boolean; + readonly isSuccess: boolean; + map(f: (value: A) => U): Try; + orElse(f: () => Try): Try; + recover(fn: (e: Error) => U): Try; + recoverWith(fn: (e: Error) => Try): Try; + readonly toOption: Option; + readonly toPromise: Promise; + transform(ffailure: (e: Error) => Try, fsuccess: (vale: A) => Try): Try; +} +export declare function tri(computation: () => A): Try; diff --git a/dist/Try.js b/dist/Try.js new file mode 100644 index 0000000..cda504a --- /dev/null +++ b/dist/Try.js @@ -0,0 +1,200 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Option_1 = require("./Option"); +var Try = (function () { + function Try(computation) { + this._computation = computation; + this._result = void 0; + this._failed = false; + } + Try.from = function (value) { + if (typeof value === 'function') { + return new Try(value); + } + return new Try(function () { return value; }); + }; + Try.prototype.compute = function () { + var _this = this; + return Option_1.option(this._result).getOrElse(function () { + try { + _this._result = _this._computation(); + _this._failed = false; + } + catch (e) { + _this._result = e; + _this._failed = true; + } + return _this._result; + }); + }; + Try.prototype.computeThrow = function () { + var res = this.compute(); + if (this._failed) { + throw res; + } + return res; + }; + Try.prototype.collect = function (filter) { + var _this = this; + return function (mapper) { return _this.filter(filter).map(mapper); }; + }; + Object.defineProperty(Try.prototype, "failed", { + get: function () { + var res = this.compute(); + if (this._failed) { + return new Try(function () { return res; }); + } + return new Try(function () { return new Error(res.toString()); }); + }, + enumerable: true, + configurable: true + }); + Try.prototype.filter = function (f) { + var computeThrow = this.computeThrow.bind(this); + return new Try(function () { + if (f()) { + return computeThrow(); + } + throw new Error("Filter not statisfied"); + }); + }; + Try.prototype.flatMap = function (f) { + return this.map(f).flatten(); + }; + Try.prototype.flatten = function () { + var _this = this; + return new Try(function () { + var res = _this.compute(); + if (_this._failed) { + throw res; + } + if (res instanceof Try) { + return res.get; + } + return res; + }); + }; + Try.prototype.fold = function (ffailure, fsuccess) { + var res = this.compute(); + if (this._failed) { + return ffailure(res); + } + return fsuccess(res); + }; + Try.prototype.foreach = function (f) { + var res = this.compute(); + if (this._failed) { + return; + } + f(res); + }; + Object.defineProperty(Try.prototype, "get", { + get: function () { + var res = this.compute(); + if (this._failed) { + throw res; + } + return res; + }, + enumerable: true, + configurable: true + }); + Try.prototype.getOrElse = function (elseVal) { + var res = this.compute(); + if (this._failed) { + return elseVal(); + } + return res; + }; + Object.defineProperty(Try.prototype, "isFailure", { + get: function () { + var _this = this; + return Option_1.option(this._result).map(function () { return _this._failed; }).getOrElse(function () { + _this.compute(); + return _this._failed; + }); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Try.prototype, "isSuccess", { + get: function () { + return !this.isFailure; + }, + enumerable: true, + configurable: true + }); + Try.prototype.map = function (f) { + var _this = this; + return new Try(function () { return f(_this.get); }); + }; + Try.prototype.orElse = function (f) { + var _this = this; + return new Try(function () { + var res = _this.compute(); + if (_this._failed) { + return f().get; + } + return res; + }); + }; + Try.prototype.recover = function (fn) { + var _this = this; + return new Try(function () { + var res = _this.compute(); + if (_this._failed) { + return fn(res); + } + return res; + }); + }; + Try.prototype.recoverWith = function (fn) { + return this.recover(fn).flatten(); + }; + Object.defineProperty(Try.prototype, "toOption", { + get: function () { + var _this = this; + var iter = (_a = {}, + _a[Symbol.iterator] = function () { + var done = false; + return { + next: function () { + var res; + if (!done) { + res = _this.compute(); + } + var n = { + done: done || _this._failed, + value: res instanceof Error ? void 0 : res + }; + done = true; + return n; + } + }; + }, + _a); + return Option_1.option(iter); + var _a; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Try.prototype, "toPromise", { + get: function () { + return this.map(function (v) { return Promise.resolve(v); }).getOrElse(function () { return Promise.reject(new Error('No such element None.get')); }); + }, + enumerable: true, + configurable: true + }); + Try.prototype.transform = function (ffailure, fsuccess) { + var _this = this; + return new Try(function () { return _this.fold(ffailure, fsuccess); }).flatten(); + }; + return Try; +}()); +exports.Try = Try; +function tri(computation) { + return Try.from(computation); +} +exports.tri = tri; +//# sourceMappingURL=Try.js.map \ No newline at end of file diff --git a/dist/Try.js.map b/dist/Try.js.map new file mode 100644 index 0000000..28a852d --- /dev/null +++ b/dist/Try.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Try.js","sourceRoot":"","sources":["../typescript/Try.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Utils.d.ts b/dist/Utils.d.ts new file mode 100644 index 0000000..5d6fa39 --- /dev/null +++ b/dist/Utils.d.ts @@ -0,0 +1 @@ +export declare function eq(a: A, b: A): boolean; diff --git a/dist/Utils.js b/dist/Utils.js new file mode 100644 index 0000000..9eb4edb --- /dev/null +++ b/dist/Utils.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function eq(a, b) { + if (typeof b === 'object') { + var feq = b['equals']; + return (feq && feq.call(b, a)) || (a === b); + } + return (a === b); +} +exports.eq = eq; +//# sourceMappingURL=Utils.js.map \ No newline at end of file diff --git a/dist/Utils.js.map b/dist/Utils.js.map new file mode 100644 index 0000000..4dcf930 --- /dev/null +++ b/dist/Utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../typescript/Utils.ts"],"names":[],"mappings":";;AAQA,YAAuB,CAAI,EAAE,CAAI;IAE7B,EAAE,CAAC,CAAE,OAAO,CAAC,KAAK,QAAS,CAAC,CAAC,CAAC;QAC1B,IAAM,GAAG,GAA4B,CAAC,CAAE,QAAQ,CAAE,CAAA;QAClD,MAAM,CAAC,CAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAE,CAAA;IACpD,CAAC;IACD,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,CAAE,CAAA;AACtB,CAAC;AAPD,gBAOC"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..c29b572 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,6 @@ +export { Iterable, Iterator } from './Iter'; +export { Collection } from './Collection'; +export { Seq, seq } from './Seq'; +export { Option, some, none, option } from './Option'; +export { Try, tri } from './Try'; +export { Range, range } from './Range'; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..65d77f2 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Collection_1 = require("./Collection"); +exports.Collection = Collection_1.Collection; +var Seq_1 = require("./Seq"); +exports.Seq = Seq_1.Seq; +exports.seq = Seq_1.seq; +var Option_1 = require("./Option"); +exports.Option = Option_1.Option; +exports.some = Option_1.some; +exports.none = Option_1.none; +exports.option = Option_1.option; +var Try_1 = require("./Try"); +exports.Try = Try_1.Try; +exports.tri = Try_1.tri; +var Range_1 = require("./Range"); +exports.Range = Range_1.Range; +exports.range = Range_1.range; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..fe4588c --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../typescript/index.ts"],"names":[],"mappings":";;AAIA,2CAAuC;AAA/B,kCAAA,UAAU,CAAA;AAClB,6BAA8B;AAAtB,oBAAA,GAAG,CAAA;AAAE,oBAAA,GAAG,CAAA;AAChB,mCAAmD;AAA3C,0BAAA,MAAM,CAAA;AAAE,wBAAA,IAAI,CAAA;AAAE,wBAAA,IAAI,CAAA;AAAE,0BAAA,MAAM,CAAA;AAClC,6BAA8B;AAAtB,oBAAA,GAAG,CAAA;AAAE,oBAAA,GAAG,CAAA;AAChB,iCAAoC;AAA5B,wBAAA,KAAK,CAAA;AAAE,wBAAA,KAAK,CAAA"} \ No newline at end of file diff --git a/dist/test/Option.test.d.ts b/dist/test/Option.test.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/dist/test/Option.test.js b/dist/test/Option.test.js new file mode 100644 index 0000000..b8189b5 --- /dev/null +++ b/dist/test/Option.test.js @@ -0,0 +1,376 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t; + return { next: verb(0), "throw": verb(1), "return": verb(2) }; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [0, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +require('source-map-support').install(); +var chai = require("chai"); +var Seq_1 = require("../Seq"); +var Option_1 = require("../Option"); +var deepEqual = chai.assert.deepEqual; +describe('Option', function () { + var _this = this; + before(function (done) { + done(); + }); + after(function (done) { + done(); + }); + it('collect', function (done) { + deepEqual(Option_1.none().collect(function (v) { return v % 2 === 0; })(function (v) { return v * 2; }).toArray, [], "collect failed"); + deepEqual(Option_1.some(2).collect(function (v) { return v % 2 === 0; })(function (v) { return v * 2; }).toArray, [4], "collect failed"); + done(); + }); + it('collectFirst', function (done) { + deepEqual(Option_1.none().collectFirst(function (x) { return x === 3; })(function (x) { return x * 2; }).equals(Option_1.none()), true, "collectFirst failed"); + deepEqual(Option_1.some(2).collectFirst(function (x) { return x === 2; })(function (x) { return x * 3; }).equals(Option_1.some(6)), true, "collectFirst failed"); + deepEqual(Option_1.some(2).collectFirst(function (x) { return x === 13; })(function (x) { return x * 3; }).equals(Option_1.none()), true, "collectFirst failed"); + done(); + }); + it('concat', function (done) { + deepEqual(Option_1.some(2).concat(Option_1.some(3)).toArray, [2, 3], "concat failed"); + deepEqual(Option_1.some(2).concat(Option_1.none()).toArray, [2], "concat failed"); + deepEqual(Option_1.none().concat(Option_1.some(3)).toArray, [3], "concat failed"); + deepEqual(Option_1.none().concat(Option_1.none()).toArray, [], "concat failed"); + done(); + }); + it('contains', function (done) { + deepEqual(Option_1.none().contains(2), false, "contains failed"); + deepEqual(Option_1.some(2).contains(2), true, "contains failed"); + deepEqual(Option_1.some(2).contains(10), false, "contains failed"); + done(); + }); + it('count', function (done) { + deepEqual(Option_1.none().count(function (v) { return v % 2 === 0; }), 0, "count failed"); + deepEqual(Option_1.some(2).count(function (v) { return v % 2 === 0; }), 1, "count failed"); + deepEqual(Option_1.some(2).count(function (v) { return v % 3 === 0; }), 0, "count failed"); + done(); + }); + it('drop', function (done) { + deepEqual(Option_1.none().drop(3).isEmpty, true, "drop failed"); + deepEqual(Option_1.none().drop(3).size, 0, "drop failed"); + deepEqual(Option_1.some(2).drop(1).size, 0, "drop failed"); + done(); + }); + it('dropWhile', function (done) { + deepEqual(Option_1.none().dropWhile(function (w) { return w < 3; }).isEmpty, true, "dropWhile failed"); + deepEqual(Option_1.some(2).dropWhile(function (w) { return w < 3; }).isEmpty, true, "dropWhile failed"); + deepEqual(Option_1.some(2).dropWhile(function (w) { return w > 50; }).isEmpty, false, "dropWhile failed"); + done(); + }); + it('equals', function (done) { + var a1 = Seq_1.seq([1, 2, 3]); + deepEqual(Option_1.some(2).equals(Option_1.some(2)), true, "equals failed"); + deepEqual(Option_1.some(2).equals(Option_1.none()), false, "equals failed"); + deepEqual(Option_1.none().equals(Option_1.none()), true, "equals failed"); + deepEqual(Option_1.none().equals(Option_1.some(2)), false, "equals failed"); + deepEqual(Seq_1.seq(2).equals(Option_1.some(2)), true, "equals failed"); + done(); + }); + it('exists', function (done) { + deepEqual(Option_1.none().exists(function (v) { return v === 3; }), false, "exists failed"); + deepEqual(Option_1.some(2).exists(function (v) { return v === 2; }), true, "exists failed"); + deepEqual(Option_1.some(2).exists(function (v) { return v === 10; }), false, "exists failed"); + done(); + }); + it('filter', function (done) { + deepEqual(Option_1.none().filter(function (v) { return v % 2 === 0; }).equals(Option_1.none()), true, "filter failed"); + deepEqual(Option_1.some(2).filter(function (v) { return v % 2 === 0; }).equals(Option_1.some(2)), true, "filter failed"); + deepEqual(Option_1.some(2).filter(function (v) { return v % 2 === 1; }).equals(Option_1.none()), true, "filter failed"); + done(); + }); + it('filterNot', function (done) { + deepEqual(Option_1.none().filterNot(function (v) { return v % 2 === 0; }).equals(Option_1.none()), true, "filterNot failed"); + deepEqual(Option_1.some(2).filterNot(function (v) { return v % 2 === 0; }).equals(Option_1.none()), true, "filterNot failed"); + deepEqual(Option_1.some(2).filterNot(function (v) { return v % 2 === 1; }).equals(Option_1.some(2)), true, "filterNot failed"); + done(); + }); + it('flatten', function (done) { + deepEqual(Option_1.none().flatten().equals(Option_1.none()), true, "flatten failed"); + deepEqual(Option_1.some(Option_1.none()).flatten().equals(Option_1.none()), true, "flatten failed"); + deepEqual(Option_1.some(Option_1.some(3)).flatten().equals(Option_1.some(3)), true, "flatten failed"); + done(); + }); + it('flatMap', function (done) { + deepEqual(Option_1.none().flatMap(function (v) { return Option_1.some(v * 2); }).isEmpty, true, "flatMap failed"); + deepEqual(Option_1.some(2).flatMap(function (v) { return Option_1.some(v * 2); }).get, 4, "flatMap failed"); + deepEqual(Option_1.some(2).flatMap(function (v) { return Option_1.some(v * 2); }).equals(Option_1.some(4)), true, "flatMap failed"); + done(); + }); + it('find', function (done) { + deepEqual(Option_1.none().find(function (x) { return x === 3; }).equals(Option_1.none()), true, "find failed"); + deepEqual(Option_1.some(2).find(function (x) { return x === 2; }).equals(Option_1.some(2)), true, "find failed"); + deepEqual(Option_1.some(2).find(function (x) { return x === 13; }).equals(Option_1.none()), true, "find failed"); + done(); + }); + it('foldLeft', function (done) { + deepEqual(Option_1.none().foldLeft(1)(function (acc, v) { return acc + v; }), 1, "foldLeft failed"); + deepEqual(Option_1.some(2).foldLeft(1)(function (acc, v) { return acc + v; }), 3, "foldLeft failed"); + done(); + }); + it('foldRight', function (done) { + deepEqual(Option_1.none().foldRight(1)(function (acc, v) { return acc + v; }), 1, "foldRight failed"); + deepEqual(Option_1.some(2).foldRight(1)(function (acc, v) { return acc + v; }), 3, "foldRight failed"); + done(); + }); + it('forall', function (done) { + deepEqual(Option_1.none().forall(function (v) { return v < 50; }), true, "forall failed"); + deepEqual(Option_1.some(2).forall(function (v) { return v > 50; }), false, "forall failed"); + deepEqual(Option_1.some(2).forall(function (v) { return v < 3; }), true, "forall failed"); + done(); + }); + it('foreach', function (done) { + var count = 0; + var f = function (value) { + count = count + value; + }; + count = 0; + Option_1.none().foreach(f); + deepEqual(count, 0, "foreach failed"); + count = 0; + Option_1.some(2).foreach(f); + deepEqual(count, 2, "foreach failed"); + done(); + }); + it('get', function (done) { + try { + Option_1.none().get; + return done(new Error("get Failed")); + } + catch (e) { } + deepEqual(Option_1.some(2).get, 2, "get failed"); + done(); + }); + it('getOrElse', function (done) { + deepEqual(Option_1.none().getOrElse(function () { return 3; }), 3, "getOrElse failed"); + deepEqual(Option_1.some(2).getOrElse(function () { return 3; }), 2, "getOrElse failed"); + done(); + }); + it('hasDefiniteSize', function (done) { + deepEqual(Option_1.none().hasDefiniteSize, true, "hasDefiniteSize failed"); + deepEqual(Option_1.some(2).hasDefiniteSize, true, "hasDefiniteSize failed"); + done(); + }); + it('head', function (done) { + try { + Option_1.none().head; + return done(new Error("head Failed")); + } + catch (e) { } + deepEqual(Option_1.some(2).head, 2, "head failed"); + done(); + }); + it('headOption', function (done) { + deepEqual(Option_1.none().headOption.equals(Option_1.none()), true, "headOption failed"); + deepEqual(Option_1.some(2).headOption.equals(Option_1.some(2)), true, "headOption failed"); + done(); + }); + it('indexOf', function (done) { + deepEqual(Option_1.none().indexOf(2), -1, "indexOf failed"); + deepEqual(Option_1.some(2).indexOf(2), 0, "indexOf failed"); + deepEqual(Option_1.some(2).indexOf(3), -1, "indexOf failed"); + done(); + }); + it('isDefined', function (done) { + deepEqual(Option_1.none().isDefined, false, "isDefined failed"); + deepEqual(Option_1.some(2).isDefined, true, "isDefined failed"); + done(); + }); + it('isEmpty', function (done) { + deepEqual(Option_1.none().isEmpty, true, "isEmpty failed"); + deepEqual(Option_1.some(2).isEmpty, false, "isEmpty failed"); + done(); + }); + it('isIndexed', function (done) { + deepEqual(Option_1.none().isIndexed, true, "isIndexed failed"); + deepEqual(Option_1.some(2).isIndexed, true, "isIndexed failed"); + done(); + }); + it('length', function (done) { + deepEqual(Option_1.none().length, 0, "length failed"); + deepEqual(Option_1.some(2).length, 1, "length failed"); + done(); + }); + it('last', function (done) { + try { + Option_1.none().last; + return done(new Error("last Failed")); + } + catch (e) { } + deepEqual(Option_1.some(2).last, 2, "last failed"); + done(); + }); + it('lastOption', function (done) { + deepEqual(Option_1.none().lastOption.equals(Option_1.none()), true, "lastOption failed"); + deepEqual(Option_1.some(2).lastOption.equals(Option_1.some(2)), true, "lastOption failed"); + done(); + }); + it('map', function (done) { + deepEqual(Option_1.none().map(function (v) { return v * 2; }).equals(Option_1.none()), true, "map failed"); + deepEqual(Option_1.some(2).map(function (v) { return v * 2; }).equals(Option_1.some(4)), true, "map failed"); + done(); + }); + it('mkString', function (done) { + deepEqual(Option_1.none().mkString(), "", "mkString failed"); + deepEqual(Option_1.some(2).mkString(), "2", "mkString failed"); + done(); + }); + it('nonEmpty', function (done) { + deepEqual(Option_1.none().nonEmpty, false, "nonEmpty failed"); + deepEqual(Option_1.some(2).nonEmpty, true, "nonEmpty failed"); + done(); + }); + it('orElse', function (done) { + deepEqual(Option_1.none().orElse(function () { return Option_1.some(3); }).equals(Option_1.some(3)), true, "orElse failed"); + deepEqual(Option_1.some(2).orElse(function () { return Option_1.some(3); }).equals(Option_1.some(2)), true, "orElse failed"); + done(); + }); + it('orNull', function (done) { + deepEqual(Option_1.none().orNull, null, "orNull failed"); + deepEqual(Option_1.some(2).orNull, 2, "orNull failed"); + done(); + }); + it('orThrow', function (done) { + try { + Option_1.none().orThrow(function () { return "OK"; }); + return done(new Error("orThrow Failed")); + } + catch (e) { + deepEqual(e.message, "OK", "orNull failed"); + } + deepEqual(Option_1.some(2).orThrow(function () { return "Not OK"; }), 2, "orThrow failed"); + done(); + }); + it('orUndefined', function (done) { + deepEqual(Option_1.none().orUndefined, void 0, "orUndefined failed"); + deepEqual(Option_1.some(2).orUndefined, 2, "orUndefined failed"); + done(); + }); + it('reverse', function (done) { + deepEqual(Option_1.some(2).reverse.toArray, [2], "reverse failed"); + deepEqual(Option_1.none().reverse.toArray, [], "reverse failed"); + done(); + }); + it('slice', function (done) { + deepEqual(Option_1.none().slice(2, 5).toArray, [], "slice failed"); + deepEqual(Option_1.some(2).slice(0, 1).toArray, [2], "slice failed"); + deepEqual(Option_1.some(2).slice(2, 5).toArray, [], "slice failed"); + done(); + }); + it('size', function (done) { + deepEqual(Option_1.none().size, 0, "size failed"); + deepEqual(Option_1.some(2).size, 1, "size failed"); + done(); + }); + it('sum', function (done) { + try { + Option_1.none().sum; + return done(new Error("sum Failed")); + } + catch (e) { } + deepEqual(Option_1.some(2).sum, 2, "sum failed"); + done(); + }); + it('tail', function (done) { + deepEqual(Option_1.none().tail.toArray, [], "tail failed"); + deepEqual(Option_1.some(2).tail.toArray, [], "tail failed"); + done(); + }); + it('take', function (done) { + deepEqual(Option_1.none().take(3).toArray, [], "take failed"); + deepEqual(Option_1.some(2).take(3).toArray, [2], "take failed"); + done(); + }); + it('toIndexed', function (done) { + deepEqual(Option_1.none().toIndexed.isIndexed, true, "toIndexed failed"); + deepEqual(Option_1.some(2).toIndexed.isIndexed, true, "toIndexed failed"); + done(); + }); + it('toPromise', function () { return __awaiter(_this, void 0, void 0, function () { + var _a, _b, _c, _d; + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + _a = deepEqual; + return [4 /*yield*/, Option_1.none().toPromise.catch(function () { return 2; })]; + case 1: + _a.apply(void 0, [_e.sent(), 2, "toPromise failed"]); + _c = deepEqual; + return [4 /*yield*/, Option_1.some(2).toPromise]; + case 2: + _c.apply(void 0, [_e.sent(), 2, "toPromise failed"]); + return [2 /*return*/]; + } + }); + }); }); + it('toString', function (done) { + deepEqual(Option_1.none().toString, "", "toString failed"); + deepEqual(Option_1.some(2).toString, "2", "toString failed"); + done(); + }); + it('should be a monad', function (done) { + var f = function (x) { return Seq_1.seq([x * x]); }; + var g = function (x) { return Seq_1.seq([x + 2]); }; + deepEqual(Seq_1.seq([3]).flatMap(f).toArray, f(3).toArray, "1st Monad Law"); + deepEqual(Seq_1.seq([1, 2, 3]).flatMap(function (x) { return Seq_1.seq([x]); }).toArray, Seq_1.seq([1, 2, 3]).toArray, "2nd Monad Law"); + deepEqual(Seq_1.seq([1, 2, 3]).flatMap(function (x) { return f(x).flatMap(g); }).toArray, Seq_1.seq([1, 2, 3]).flatMap(f).flatMap(g).toArray, "3rd Monad Law"); + done(); + }); + it('should be lazy', function (done) { + var count = 0; + var f = function (value) { + count = count + 1; + return value < 3; + }; + count = 0; + Option_1.none().filter(f).take(3).toArray; + deepEqual(count, 0, "lazy failed"); + count = 0; + Option_1.some(2).filter(f).take(3); + deepEqual(count, 0, "lazy failed"); + count = 0; + Option_1.some(2).filter(f).take(3).toArray; + deepEqual(count, 1, "lazy failed"); + done(); + }); + it('option', function (done) { + deepEqual(Option_1.option(null).isEmpty, true, "option failed"); + deepEqual(Option_1.option(void 0).isEmpty, true, "option failed"); + deepEqual(Option_1.option(parseInt("blah")).isEmpty, true, "option failed"); + deepEqual(Option_1.option(2).isDefined, true, "option failed"); + done(); + }); +}); +//# sourceMappingURL=Option.test.js.map \ No newline at end of file diff --git a/dist/test/Option.test.js.map b/dist/test/Option.test.js.map new file mode 100644 index 0000000..73cf4a4 --- /dev/null +++ b/dist/test/Option.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Option.test.js","sourceRoot":"","sources":["../../typescript/test/Option.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/test/Range.test.d.ts b/dist/test/Range.test.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/dist/test/Range.test.js b/dist/test/Range.test.js new file mode 100644 index 0000000..a2cdebf --- /dev/null +++ b/dist/test/Range.test.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Range_1 = require("../Range"); +require('source-map-support').install(); +var chai = require("chai"); +var deepEqual = chai.assert.deepEqual; +describe('Range', function () { + before(function (done) { + done(); + }); + after(function (done) { + done(); + }); + it('range', function (done) { + deepEqual(Range_1.range(10).toArray, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'range failed'); + deepEqual(Range_1.range(2, 10).toArray, [2, 3, 4, 5, 6, 7, 8, 9], 'range failed'); + deepEqual(Range_1.range(3, 10, 2).toArray, [3, 5, 7, 9], 'range failed'); + done(); + }); +}); +//# sourceMappingURL=Range.test.js.map \ No newline at end of file diff --git a/dist/test/Range.test.js.map b/dist/test/Range.test.js.map new file mode 100644 index 0000000..b1ec884 --- /dev/null +++ b/dist/test/Range.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Range.test.js","sourceRoot":"","sources":["../../typescript/test/Range.test.ts"],"names":[],"mappings":";;AAGA,kCAAqC;AAErC,OAAO,CAAE,oBAAoB,CAAE,CAAC,OAAO,EAAE,CAAA;AACzC,2BAA6B;AAG7B,IAAM,SAAS,GAAiD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAGtF,QAAQ,CAAE,OAAO,EAAE;IAEf,MAAM,CAAE,UAAE,IAAe;QACrB,IAAI,EAAE,CAAA;IACV,CAAC,CAAE,CAAA;IAEH,KAAK,CAAE,UAAE,IAAe;QACpB,IAAI,EAAE,CAAA;IACV,CAAC,CAAE,CAAA;IAEH,EAAE,CAAE,OAAO,EAAE,UAAE,IAAe;QAC1B,SAAS,CAAE,aAAK,CAAE,EAAE,CAAE,CAAC,OAAO,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,cAAc,CAAE,CAAA;QAClF,SAAS,CAAE,aAAK,CAAE,CAAC,EAAE,EAAE,CAAE,CAAC,OAAO,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,cAAc,CAAE,CAAA;QAC/E,SAAS,CAAE,aAAK,CAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,OAAO,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,cAAc,CAAE,CAAA;QACtE,IAAI,EAAE,CAAA;IACV,CAAC,CAAE,CAAA;AAEP,CAAC,CAAE,CAAA"} \ No newline at end of file diff --git a/dist/test/Seq.test.d.ts b/dist/test/Seq.test.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/dist/test/Seq.test.js b/dist/test/Seq.test.js new file mode 100644 index 0000000..3ccb0ea --- /dev/null +++ b/dist/test/Seq.test.js @@ -0,0 +1,311 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require('source-map-support').install(); +var chai = require("chai"); +var Seq_1 = require("../Seq"); +var Option_1 = require("../Option"); +var deepEqual = chai.assert.deepEqual; +var iter = (_a = {}, + _a[Symbol.iterator] = function () { + var count = -1; + return { + next: function () { + count = count + 1; + return { + done: count == 10, + value: count + }; + } + }; + }, + _a); +var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; +describe('Seq', function () { + before(function (done) { + done(); + }); + after(function (done) { + done(); + }); + it('collect', function (done) { + var a1 = Seq_1.seq([1, 2, 3, 4, 5, 6]); + deepEqual(a1.collect(function (v) { return v % 2 === 0; })(function (v) { return v * 2; }).toArray, [4, 8, 12], "collect failed"); + deepEqual(Seq_1.seq(iter).collect(function (v) { return v % 2 === 0; })(function (v) { return v * 2; }).toArray, [0, 4, 8, 12, 16], "collect failed"); + done(); + }); + it('collectFirst', function (done) { + deepEqual(Seq_1.seq(arr).collectFirst(function (x) { return x === 3; })(function (x) { return x * 2; }).equals(Option_1.some(6)), true, "collectFirst failed"); + deepEqual(Seq_1.seq(arr).collectFirst(function (x) { return x === 13; })(function (x) { return x * 2; }).equals(Option_1.none()), true, "collectFirst failed"); + deepEqual(Seq_1.seq(iter).collectFirst(function (x) { return x === 3; })(function (x) { return x * 2; }).equals(Option_1.some(6)), true, "collectFirst failed"); + deepEqual(Seq_1.seq(iter).collectFirst(function (x) { return x === 13; })(function (x) { return x * 2; }).equals(Option_1.none()), true, "collectFirst failed"); + done(); + }); + it('concat', function (done) { + var a1 = Seq_1.seq([1, 2, 3]); + var a2 = Seq_1.seq([4, 5, 6]); + var a3 = a1.concat(a2); + deepEqual(a3.toArray, [1, 2, 3, 4, 5, 6], "concat failed"); + deepEqual(Seq_1.seq(iter).concat(Seq_1.seq(iter)).toArray, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "concat failed"); + done(); + }); + it('contains', function (done) { + deepEqual(Seq_1.seq(arr).contains(2), true, "contains failed"); + deepEqual(Seq_1.seq(arr).contains(10), false, "contains failed"); + deepEqual(Seq_1.seq(iter).contains(2), true, "contains failed"); + deepEqual(Seq_1.seq(iter).contains(10), false, "contains failed"); + done(); + }); + it('count', function (done) { + deepEqual(Seq_1.seq(arr).count(function (v) { return v % 2 === 0; }), 5, "count failed"); + deepEqual(Seq_1.seq(iter).count(function (v) { return v % 2 === 0; }), 5, "count failed"); + done(); + }); + it('drop', function (done) { + deepEqual(Seq_1.seq(arr).drop(3).head, 3, "drop failed"); + deepEqual(Seq_1.seq(arr).drop(3).size, 7, "drop failed"); + deepEqual(Seq_1.seq(arr).drop(50).size, 0, "drop failed"); + deepEqual(Seq_1.seq(iter).drop(3).head, 3, "drop failed"); + deepEqual(Seq_1.seq(iter).drop(3).size, 7, "drop failed"); + deepEqual(Seq_1.seq(iter).drop(50).size, 0, "drop failed"); + done(); + }); + it('dropWhile', function (done) { + deepEqual(Seq_1.seq(arr).dropWhile(function (w) { return w < 3; }).head, 3, "dropWhile failed"); + deepEqual(Seq_1.seq(arr).dropWhile(function (w) { return w < 3; }).size, 7, "dropWhile failed"); + deepEqual(Seq_1.seq(arr).dropWhile(function (w) { return w < 50; }).size, 0, "dropWhile failed"); + deepEqual(Seq_1.seq(iter).dropWhile(function (w) { return w < 3; }).head, 3, "dropWhile failed"); + deepEqual(Seq_1.seq(iter).dropWhile(function (w) { return w < 3; }).size, 7, "dropWhile failed"); + deepEqual(Seq_1.seq(iter).dropWhile(function (w) { return w < 50; }).size, 0, "dropWhile failed"); + done(); + }); + it('equals', function (done) { + var a1 = Seq_1.seq([1, 2, 3]); + deepEqual(a1.equals(Seq_1.seq([1, 2, 3])), true, "equals failed"); + deepEqual(a1.equals(Seq_1.seq([1, 2])), false, "equals failed"); + deepEqual(a1.equals(Seq_1.seq([1, '2', 3])), false, "equals failed"); + deepEqual(Seq_1.seq(iter).equals(Seq_1.seq([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])), true, "equals failed"); + done(); + }); + it('exists', function (done) { + deepEqual(Seq_1.seq(arr).exists(function (v) { return v === 3; }), true, "exists failed"); + deepEqual(Seq_1.seq(arr).exists(function (v) { return v === 10; }), false, "exists failed"); + deepEqual(Seq_1.seq(iter).exists(function (v) { return v === 3; }), true, "exists failed"); + deepEqual(Seq_1.seq(iter).exists(function (v) { return v === 10; }), false, "exists failed"); + done(); + }); + it('filter', function (done) { + deepEqual(Seq_1.seq(arr).filter(function (v) { return v % 2 === 0; }).toArray, [0, 2, 4, 6, 8], "filter failed"); + deepEqual(Seq_1.seq(iter).filter(function (v) { return v % 2 === 0; }).toArray, [0, 2, 4, 6, 8], "filter failed"); + done(); + }); + it('filterNot', function (done) { + deepEqual(Seq_1.seq(arr).filterNot(function (v) { return v % 2 === 0; }).toArray, [1, 3, 5, 7, 9], "filterNot failed"); + deepEqual(Seq_1.seq(iter).filterNot(function (v) { return v % 2 === 0; }).toArray, [1, 3, 5, 7, 9], "filterNot failed"); + done(); + }); + it('flatten', function (done) { + var a1 = Option_1.option([Option_1.option([0, 1]), Option_1.option([2, 3]), 4, Option_1.option([5, 6])]); + deepEqual(a1.flatten().toArray, [0, 1, 2, 3, 4, 5, 6], "flatten failed"); + deepEqual(Seq_1.seq([Seq_1.seq(iter), Seq_1.seq(iter)]).flatten().toArray, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "flatten failed"); + done(); + }); + it('flatMap', function (done) { + var a1 = Seq_1.seq([1, 2, 3]); + deepEqual(a1.flatMap(function (v) { return Seq_1.seq([v * 2]); }).toArray, [2, 4, 6], "flatMap failed"); + deepEqual(Seq_1.seq(iter).flatMap(function (v) { return Seq_1.seq([v * 2]); }).toArray, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18], "flatMap failed"); + done(); + }); + it('find', function (done) { + deepEqual(Seq_1.seq(arr).find(function (x) { return x === 3; }).equals(Option_1.some(3)), true, "find failed"); + deepEqual(Seq_1.seq(arr).find(function (x) { return x === 13; }).equals(Option_1.none()), true, "find failed"); + deepEqual(Seq_1.seq(iter).find(function (x) { return x === 3; }).equals(Option_1.some(3)), true, "find failed"); + deepEqual(Seq_1.seq(iter).find(function (x) { return x === 13; }).equals(Option_1.none()), true, "find failed"); + done(); + }); + it('foldLeft', function (done) { + deepEqual(Seq_1.seq(arr).foldLeft(1)(function (acc, v) { return acc + v; }), 46, "foldLeft failed"); + deepEqual(Seq_1.seq(iter).foldLeft(1)(function (acc, v) { return acc + v; }), 46, "foldLeft failed"); + done(); + }); + it('foldRight', function (done) { + deepEqual(Seq_1.seq(arr).foldRight(1)(function (acc, v) { return acc + v; }), 46, "foldRight failed"); + deepEqual(Seq_1.seq(iter).foldRight(1)(function (acc, v) { return acc + v; }), 46, "foldRight failed"); + done(); + }); + it('forall', function (done) { + deepEqual(Seq_1.seq(arr).forall(function (v) { return v < 50; }), true, "forall failed"); + deepEqual(Seq_1.seq(arr).forall(function (v) { return v < 3; }), false, "forall failed"); + deepEqual(Seq_1.seq(iter).forall(function (v) { return v < 50; }), true, "forall failed"); + deepEqual(Seq_1.seq(iter).forall(function (v) { return v < 3; }), false, "forall failed"); + done(); + }); + it('foreach', function (done) { + var count = 0; + var f = function (value) { + count = count + value; + }; + count = 0; + Seq_1.seq(arr).foreach(f); + deepEqual(count, 45, "foreach failed"); + count = 0; + Seq_1.seq(iter).foreach(f); + deepEqual(count, 45, "foreach failed"); + done(); + }); + it('hasDefiniteSize', function (done) { + deepEqual(Seq_1.seq(arr).hasDefiniteSize, true, "hasDefiniteSize failed"); + deepEqual(Seq_1.seq(iter).hasDefiniteSize, false, "hasDefiniteSize failed"); + done(); + }); + it('head', function (done) { + deepEqual(Seq_1.seq(arr).head, 0, "head failed"); + deepEqual(Seq_1.seq(iter).head, 0, "head failed"); + done(); + }); + it('headOption', function (done) { + deepEqual(Seq_1.seq(arr).headOption.equals(Option_1.some(0)), true, "headOption failed"); + deepEqual(Seq_1.seq(iter).headOption.equals(Option_1.some(0)), true, "headOption failed"); + deepEqual(Seq_1.seq([]).headOption.equals(Option_1.none()), true, "headOption failed"); + done(); + }); + it('indexOf', function (done) { + deepEqual(Seq_1.seq(arr).indexOf(2), 2, "indexOf failed"); + deepEqual(Seq_1.seq(arr).indexOf(2, 3), -1, "indexOf failed"); + deepEqual(Seq_1.seq(iter).indexOf(2), 2, "indexOf failed"); + deepEqual(Seq_1.seq(iter).indexOf(2, 3), -1, "indexOf failed"); + done(); + }); + it('isEmpty', function (done) { + deepEqual(Seq_1.seq(arr).isEmpty, false, "isEmpty failed"); + deepEqual(Seq_1.seq([]).isEmpty, true, "isEmpty failed"); + deepEqual(Seq_1.seq(iter).isEmpty, false, "isEmpty failed"); + done(); + }); + it('isIndexed', function (done) { + deepEqual(Seq_1.seq(arr).isIndexed, true, "isIndexed failed"); + deepEqual(Seq_1.seq(iter).isIndexed, false, "isIndexed failed"); + deepEqual(Seq_1.seq("abcdef").isIndexed, true, "isIndexed failed"); + done(); + }); + it('length', function (done) { + deepEqual(Seq_1.seq(arr).length, 10, "length failed"); + deepEqual(Seq_1.seq(iter).length, 10, "length failed"); + done(); + }); + it('last', function (done) { + deepEqual(Seq_1.seq(arr).last, 9, "last failed"); + deepEqual(Seq_1.seq(iter).last, 9, "last failed"); + done(); + }); + it('lastOption', function (done) { + deepEqual(Seq_1.seq(arr).lastOption.equals(Option_1.some(9)), true, "lastOption failed"); + deepEqual(Seq_1.seq(iter).lastOption.equals(Option_1.some(9)), true, "lastOption failed"); + deepEqual(Seq_1.seq([]).lastOption.equals(Option_1.none()), true, "lastOption failed"); + done(); + }); + it('map', function (done) { + var a1 = Seq_1.seq([1, 2, 3]); + deepEqual(a1.map(function (v) { return v * 2; }).toArray, [2, 4, 6], "map failed"); + deepEqual(Seq_1.seq(iter).map(function (v) { return v * 2; }).toArray, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18], "map failed"); + done(); + }); + it('mkString', function (done) { + deepEqual(Seq_1.seq(arr).mkString(), "0123456789", "mkString failed"); + deepEqual(Seq_1.seq(iter).mkString(), "0123456789", "mkString failed"); + deepEqual(Seq_1.seq(arr).mkString(','), "0,1,2,3,4,5,6,7,8,9", "mkString failed"); + deepEqual(Seq_1.seq(iter).mkString(','), "0,1,2,3,4,5,6,7,8,9", "mkString failed"); + deepEqual(Seq_1.seq(arr).mkString(','), "0,1,2,3,4,5,6,7,8,9", "mkString failed"); + deepEqual(Seq_1.seq(iter).mkString('[', ',', ']'), "[0,1,2,3,4,5,6,7,8,9]", "mkString failed"); + deepEqual(Seq_1.seq(arr).mkString('[', ',', ']'), "[0,1,2,3,4,5,6,7,8,9]", "mkString failed"); + done(); + }); + it('nonEmpty', function (done) { + deepEqual(Seq_1.seq(arr).nonEmpty, true, "nonEmpty failed"); + deepEqual(Seq_1.seq([]).nonEmpty, false, "nonEmpty failed"); + deepEqual(Seq_1.seq(iter).nonEmpty, true, "nonEmpty failed"); + done(); + }); + it('reverse', function (done) { + deepEqual(Seq_1.seq(iter).reverse.toArray, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].reverse(), "reverse failed"); + deepEqual(Seq_1.seq(arr).reverse.toArray, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].reverse(), "reverse failed"); + done(); + }); + it('slice', function (done) { + deepEqual(Seq_1.seq(arr).slice(2, 5).toArray, [2, 3, 4], "slice failed"); + deepEqual(Seq_1.seq(arr).slice(12, 15).toArray, [], "slice failed"); + deepEqual(Seq_1.seq(iter).slice(2, 5).toArray, [2, 3, 4], "slice failed"); + done(); + }); + it('size', function (done) { + deepEqual(Seq_1.seq(arr).size, 10, "size failed"); + deepEqual(Seq_1.seq(iter).size, 10, "size failed"); + done(); + }); + it('sum', function (done) { + deepEqual(Seq_1.seq(arr).sum, 45, "sum failed"); + deepEqual(Seq_1.seq(iter).sum, 45, "sum failed"); + deepEqual(Seq_1.seq("abcdef").sum, "abcdef", "sum failed"); + done(); + }); + it('tail', function (done) { + deepEqual(Seq_1.seq(arr).tail.toArray, [1, 2, 3, 4, 5, 6, 7, 8, 9], "tail failed"); + deepEqual(Seq_1.seq(iter).tail.toArray, [1, 2, 3, 4, 5, 6, 7, 8, 9], "tail failed"); + done(); + }); + it('take', function (done) { + deepEqual(Seq_1.seq(arr).take(3).toArray, [0, 1, 2], "take failed"); + deepEqual(Seq_1.seq(iter).take(3).toArray, [0, 1, 2], "take failed"); + done(); + }); + it('toIndexed', function (done) { + deepEqual(Seq_1.seq(arr).toIndexed.isIndexed, true, "toIndexed failed"); + deepEqual(Seq_1.seq(iter).toIndexed.isIndexed, true, "toIndexed failed"); + deepEqual(Seq_1.seq("abcdef").toIndexed.isIndexed, true, "toIndexed failed"); + done(); + }); + it('toString', function (done) { + deepEqual(Seq_1.seq(arr).toString, "0123456789", "toString failed"); + deepEqual(Seq_1.seq(iter).toString, "0123456789", "toString failed"); + done(); + }); + it('should be a monad', function (done) { + var f = function (x) { return Seq_1.seq([x * x]); }; + var g = function (x) { return Seq_1.seq([x + 2]); }; + deepEqual(Seq_1.seq([3]).flatMap(f).toArray, f(3).toArray, "1st Monad Law"); + deepEqual(Seq_1.seq([1, 2, 3]).flatMap(function (x) { return Seq_1.seq([x]); }).toArray, Seq_1.seq([1, 2, 3]).toArray, "2nd Monad Law"); + deepEqual(Seq_1.seq([1, 2, 3]).flatMap(function (x) { return f(x).flatMap(g); }).toArray, Seq_1.seq([1, 2, 3]).flatMap(f).flatMap(g).toArray, "3rd Monad Law"); + done(); + }); + it('should be lazy', function (done) { + var count = 0; + var f = function (value) { + count = count + 1; + return value > 3; + }; + count = 0; + Seq_1.seq(arr).filter(f).take(3).toArray; + deepEqual(count, 7, "lazy failed"); + count = 0; + var head = Seq_1.seq(arr).filter(f).head; + deepEqual(count, 5, "lazy failed"); + deepEqual(head, 4, "lazy failed"); + count = 0; + Seq_1.seq(iter).filter(f).take(3).toArray; + deepEqual(count, 7, "lazy failed"); + count = 0; + head = Seq_1.seq(iter).filter(f).head; + deepEqual(count, 5, "lazy failed"); + deepEqual(head, 4, "lazy failed"); + done(); + }); + it('should build from a list', function (done) { + deepEqual(Seq_1.seq(1, 2, 3).toArray, [1, 2, 3], "seq from list failed"); + done(); + }); + it('should build from a string', function (done) { + deepEqual(Seq_1.seq("abcd").toArray, ['a', 'b', 'c', 'd'], "seq from string failed"); + done(); + }); +}); +var _a; +//# sourceMappingURL=Seq.test.js.map \ No newline at end of file diff --git a/dist/test/Seq.test.js.map b/dist/test/Seq.test.js.map new file mode 100644 index 0000000..baf41cd --- /dev/null +++ b/dist/test/Seq.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Seq.test.js","sourceRoot":"","sources":["../../typescript/test/Seq.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/test/TestsSetup.d.ts b/dist/test/TestsSetup.d.ts new file mode 100644 index 0000000..ba5af68 --- /dev/null +++ b/dist/test/TestsSetup.d.ts @@ -0,0 +1,4 @@ +/// +export declare function _beforeEach(): void; +export declare function _afterEach(): void; +export declare function checkFail(done: MochaDone, asserts: () => void): void; diff --git a/dist/test/TestsSetup.js b/dist/test/TestsSetup.js new file mode 100644 index 0000000..9ab399f --- /dev/null +++ b/dist/test/TestsSetup.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require('source-map-support').install(); +function _beforeEach() { + console.log('\n\nTEST start >>>>>>>>> ' + this['currentTest'].fullTitle()); +} +exports._beforeEach = _beforeEach; +function _afterEach() { + if (this['currentTest'].state === 'failed') { + console.error('TEST FAILED <<<<<<<<< ' + this['currentTest'].fullTitle() + ': ' + this['currentTest'].err.message + '\n'); + } + else { + console.log('TEST OK <<<<<<<<< ' + this['currentTest'].fullTitle() + '\n'); + } +} +exports._afterEach = _afterEach; +function checkFail(done, asserts) { + try { + asserts(); + done(); + } + catch (e) { + console.error('TEST ERROR> ' + e.message, e); + done(e); + } +} +exports.checkFail = checkFail; +//# sourceMappingURL=TestsSetup.js.map \ No newline at end of file diff --git a/dist/test/TestsSetup.js.map b/dist/test/TestsSetup.js.map new file mode 100644 index 0000000..3d03e6c --- /dev/null +++ b/dist/test/TestsSetup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestsSetup.js","sourceRoot":"","sources":["../../typescript/test/TestsSetup.ts"],"names":[],"mappings":";;AAMA,OAAO,CAAE,oBAAoB,CAAE,CAAC,OAAO,EAAE,CAAA;AAYzC;IACI,OAAO,CAAC,GAAG,CAAE,2BAA2B,GAAG,IAAI,CAAE,aAAa,CAAE,CAAC,SAAS,EAAE,CAAE,CAAA;AAClF,CAAC;AAFD,kCAEC;AAED;IACI,EAAE,CAAC,CAAE,IAAI,CAAE,aAAa,CAAE,CAAC,KAAK,KAAK,QAAS,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAE,wBAAwB,GAAG,IAAI,CAAE,aAAa,CAAE,CAAC,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,CAAE,aAAa,CAAE,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAE,CAAA;IACnI,CAAC;IACD,IAAI,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,CAAE,oBAAoB,GAAG,IAAI,CAAE,aAAa,CAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAE,CAAA;IAClF,CAAC;AACL,CAAC;AAPD,gCAOC;AAED,mBAA2B,IAAe,EAAE,OAAiB;IAEzD,IAAI,CAAC;QACD,OAAO,EAAE,CAAA;QACT,IAAI,EAAE,CAAA;IACV,CAAC;IACD,KAAK,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC;QACT,OAAO,CAAC,KAAK,CAAE,cAAc,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAE,CAAC;QAC/C,IAAI,CAAE,CAAC,CAAE,CAAA;IACb,CAAC;AACL,CAAC;AAVD,8BAUC"} \ No newline at end of file diff --git a/dist/test/Try.test.d.ts b/dist/test/Try.test.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/dist/test/Try.test.js b/dist/test/Try.test.js new file mode 100644 index 0000000..b2b9ccc --- /dev/null +++ b/dist/test/Try.test.js @@ -0,0 +1,226 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t; + return { next: verb(0), "throw": verb(1), "return": verb(2) }; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [0, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Option_1 = require("../Option"); +require('source-map-support').install(); +var chai = require("chai"); +var Try_1 = require("../Try"); +var deepEqual = chai.assert.deepEqual; +describe('Try', function () { + var _this = this; + before(function (done) { + done(); + }); + after(function (done) { + done(); + }); + it('collect', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).collect(function () { return true; })(function (v) { return v * 2; }).get, 4, "collect failed"); + deepEqual(Try_1.tri(function () { return 2; }).collect(function () { return false; })(function (v) { return v * 2; }).isFailure, true, "collect failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).collect(function () { return true; })(function (v) { return v * 2; }).isFailure, true, "collect failed"); + done(); + }); + it('filter', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).filter(function () { return true; }).get, 2, "filter failed"); + try { + Try_1.tri(function () { return 2; }).filter(function () { return false; }).get; + return done(new Error('filter failed')); + } + catch (e) { + } + try { + Try_1.tri(function () { throw new Error('OK'); }).filter(function () { return true; }).get; + return done(new Error('filter failed')); + } + catch (e) { + } + try { + Try_1.tri(function () { throw new Error('OK'); }).filter(function () { return false; }).get; + return done(new Error('filter failed')); + } + catch (e) { + } + done(); + }); + it('flatten', function (done) { + deepEqual(Try_1.tri(function () { return Try_1.tri(function () { return 2; }); }).flatten().get, 2, "flatten failed"); + deepEqual(Try_1.tri(function () { return 2; }).flatten().get, 2, "flatten failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).flatten().isFailure, true, "flatten failed"); + deepEqual(Try_1.tri(function () { return Try_1.tri(function () { throw new Error('OK'); }); }).flatten().isFailure, true, "flatten failed"); + done(); + }); + it('flatMap', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).flatMap(function (v) { return Try_1.tri(function () { return v * 3; }); }).get, 6, "flatMap failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).flatMap(function (v) { return Try_1.tri(function () { return v * 3; }); }).isFailure, true, "flatMap failed"); + done(); + }); + it('fold', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).fold(function (e) { return 3; }, function (v) { return v * 2; }), 4, "fold failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).fold(function (e) { return 3; }, function (v) { return v * 2; }), 3, "fold failed"); + done(); + }); + it('foreach', function (done) { + var count = 0; + var f = function (value) { + count = count + value; + }; + count = 0; + Try_1.tri(function () { throw new Error('OK'); }).foreach(f); + deepEqual(count, 0, "foreach failed"); + count = 0; + Try_1.tri(function () { return 2; }).foreach(f); + deepEqual(count, 2, "foreach failed"); + done(); + }); + it('get', function (done) { + try { + Try_1.tri(function () { throw new Error('OK'); }).get; + return done(new Error("get Failed")); + } + catch (e) { + } + deepEqual(Try_1.tri(function () { return 2; }).get, 2, 'get Failed'); + done(); + }); + it('getOrElse', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).getOrElse(function () { return 3; }), 2, "getOrElse failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).getOrElse(function () { return 3; }), 3, "getOrElse failed"); + done(); + }); + it('map', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).map(function (v) { return v * 2; }).get, 4, "map failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).map(function (v) { return v * 2; }).isFailure, true, "map failed"); + done(); + }); + it('orElse', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).orElse(function () { return Try_1.tri(function () { return 3; }); }).get, 2, "orElse failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).orElse(function () { return Try_1.tri(function () { return 3; }); }).get, 3, "orElse failed"); + done(); + }); + it('recover', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).recover(function (e) { return 3; }).get, 2, "recover failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).recover(function (e) { return 3; }).get, 3, "recover failed"); + done(); + }); + it('recoverWith', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).recoverWith(function (e) { return Try_1.tri(function () { return 3; }); }).get, 2, "recoverWith failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).recoverWith(function (e) { return Try_1.tri(function () { return 3; }); }).get, 3, "recoverWith failed"); + done(); + }); + it('toOption', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).toOption.get, 2, "toOption failed"); + deepEqual(Try_1.tri(function () { return 2; }).toOption.equals(Option_1.some(2)), true, "toOption failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).toOption.equals(Option_1.none()), true, "toOption failed"); + var count = 0; + var f = function () { + count = count + 1; + return count * 2; + }; + var opt = Try_1.tri(f); + deepEqual(count, 0, "toOption failed"); + deepEqual(opt.get, 2, "toOption failed"); + deepEqual(count, 1, "toOption failed"); + done(); + }); + it('toPromise', function () { return __awaiter(_this, void 0, void 0, function () { + var _a, _b, _c, _d; + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + _a = deepEqual; + return [4 /*yield*/, Try_1.tri(function () { return 2; }).toPromise]; + case 1: + _a.apply(void 0, [_e.sent(), 2, "toPromise failed"]); + _c = deepEqual; + return [4 /*yield*/, Try_1.tri(function () { throw new Error('OK'); }).toPromise.catch(function () { return 2; })]; + case 2: + _c.apply(void 0, [_e.sent(), 2, "toPromise failed"]); + return [2 /*return*/]; + } + }); + }); }); + it('transform', function (done) { + deepEqual(Try_1.tri(function () { return 2; }).transform(function (e) { return Try_1.tri(function () { return 3; }); }, function (v) { return Try_1.tri(function () { return v * 2; }); }).get, 4, "transform failed"); + deepEqual(Try_1.tri(function () { throw new Error('OK'); }).transform(function (e) { return Try_1.tri(function () { return 3; }); }, function (v) { return Try_1.tri(function () { return v * 2; }); }).get, 3, "transform failed"); + done(); + }); + it('should be a monad', function (done) { + var f = function (x) { return Try_1.tri(function () { return x * x; }); }; + var g = function (x) { return Try_1.tri(function () { return x + 2; }); }; + deepEqual(Try_1.tri(function () { return 3; }).flatMap(f).get, f(3).get, "1st Monad Law"); + deepEqual(Try_1.tri(function () { return 2; }).flatMap(function (x) { return Try_1.tri(function () { return x; }); }).get, Try_1.tri(function () { return 2; }).get, "2nd Monad Law"); + deepEqual(Try_1.tri(function () { return 4; }).flatMap(function (x) { return f(x).flatMap(g); }).get, Try_1.tri(function () { return 4; }).flatMap(f).flatMap(g).get, "3rd Monad Law"); + done(); + }); + it('should be lazy', function (done) { + var count = 0; + var f = function () { + count = count + 1; + return 2; + }; + var t = Try_1.tri(f).filter(function () { return true; }); + deepEqual(count, 0, 'lazy failed'); + deepEqual(t.get, 2, 'lazy failed'); + deepEqual(count, 1, 'lazy failed'); + deepEqual(t.isSuccess, true, 'lazy failed'); + deepEqual(count, 1, 'lazy failed'); + done(); + }); + it('example', function (done) { + function divide(numerator, denominator) { + var parseNumerator = function () { return Option_1.option(parseFloat(numerator)).orThrow(function () { return "Please provide a valid numerator"; }); }; + var parseDenominator = function () { return Option_1.option(parseFloat(denominator)).orThrow(function () { return "Please provide a valid denominator"; }); }; + return Try_1.tri(parseNumerator).flatMap(function (num) { return Try_1.tri(parseDenominator).map(function (den) { return num / den; }); }); + } + deepEqual(divide(6, 3).get, 2, 'example failed'); + deepEqual(divide(6, 0).get, Infinity, 'example failed'); + deepEqual(divide("blah", 3) + .recover(function (e) { + deepEqual(e.message.indexOf("numerator") !== -1, true, 'example failed'); + return Infinity; + }) + .get, Infinity, 'example failed'); + deepEqual(divide(6, "blah") + .recover(function (e) { + deepEqual(e.message.indexOf("denominator") !== -1, true, 'example failed'); + return Infinity; + }) + .get, Infinity, 'example failed'); + done(); + }); +}); +//# sourceMappingURL=Try.test.js.map \ No newline at end of file diff --git a/dist/test/Try.test.js.map b/dist/test/Try.test.js.map new file mode 100644 index 0000000..9766629 --- /dev/null +++ b/dist/test/Try.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Try.test.js","sourceRoot":"","sources":["../../typescript/test/Try.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file