@eeue56/ts-core
Version:
Core library for TypeScript inspired by Elm
91 lines • 9.09 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = __importDefault(require("ava"));
const Maybe = __importStar(require("./maybe"));
const aNothingValue = Maybe.Nothing();
const aRealValue = 'just something';
const aJustValue = Maybe.Just(aRealValue);
const aSecondRealValue = 'just something else';
const aSecondJustValue = Maybe.Just(aSecondRealValue);
const aThirdRealValue = 'another just something else';
const aThirdJustValue = Maybe.Just(aThirdRealValue);
ava_1.default('withDefault', (t) => {
const defaultValue = 'a default';
t.deepEqual(Maybe.withDefault(defaultValue, aNothingValue), defaultValue);
t.deepEqual(Maybe.withDefault(defaultValue, aJustValue), aRealValue);
});
ava_1.default('map', (t) => {
const innerValue = aRealValue.length;
const convertFunc = (str) => {
return str.length;
};
const inner = Maybe.Just(innerValue);
// Nothing => Nothing
t.deepEqual(Maybe.map(convertFunc, aNothingValue), Maybe.Nothing());
// Just => Just
t.deepEqual(Maybe.map(convertFunc, aJustValue), inner);
});
ava_1.default('map2', (t) => {
const convertFunc = (first, second) => {
return first.length + second.length;
};
const inner = Maybe.Just(aRealValue.length + aSecondRealValue.length);
// Nothing => Just => Nothing
t.deepEqual(Maybe.map2(convertFunc, aNothingValue, aJustValue), Maybe.Nothing());
// Just => Nothing => Nothing
t.deepEqual(Maybe.map2(convertFunc, aJustValue, aNothingValue), Maybe.Nothing());
// Nothing => Nothing => Nothing
t.deepEqual(Maybe.map2(convertFunc, aNothingValue, aNothingValue), Maybe.Nothing());
// Just => Just => Just
t.deepEqual(Maybe.map2(convertFunc, aJustValue, aSecondJustValue), inner);
t.deepEqual(Maybe.map2(convertFunc, aSecondJustValue, aJustValue), inner);
});
ava_1.default('map3', (t) => {
const convertFunc = (first, second, third) => {
return first.length + second.length + third.length;
};
const inner = Maybe.Just(aRealValue.length + aSecondRealValue.length + aThirdRealValue.length);
// Just => Nothing => Nothing => Nothing
t.deepEqual(Maybe.map3(convertFunc, aJustValue, aNothingValue, aNothingValue), Maybe.Nothing());
// Nothing => Just => Nothing => Nothing
t.deepEqual(Maybe.map3(convertFunc, aNothingValue, aJustValue, aNothingValue), Maybe.Nothing());
// Nothing => Nothing => Just => Nothing
t.deepEqual(Maybe.map3(convertFunc, aNothingValue, aNothingValue, aJustValue), Maybe.Nothing());
// Nothing => Nothing => Nothing => Nothing
t.deepEqual(Maybe.map3(convertFunc, aNothingValue, aNothingValue, aNothingValue), Maybe.Nothing());
// Just => Just => Just
t.deepEqual(Maybe.map3(convertFunc, aJustValue, aSecondJustValue, aThirdJustValue), inner);
t.deepEqual(Maybe.map3(convertFunc, aSecondJustValue, aThirdJustValue, aJustValue), inner);
});
ava_1.default('andThen', (t) => {
const convertFunc = (value) => {
return Maybe.Just(value.length);
};
// Nothing => Nothing
t.deepEqual(Maybe.andThen(convertFunc, aNothingValue), Maybe.Nothing());
// Just => Just
t.deepEqual(Maybe.andThen(convertFunc, aJustValue), Maybe.Just(aRealValue.length));
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWF5YmUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBdUI7QUFFdkIsK0NBQWlDO0FBRWpDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQVUsQ0FBQztBQUU5QyxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztBQUNwQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUM7QUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFdEQsTUFBTSxlQUFlLEdBQUcsNkJBQTZCLENBQUM7QUFDdEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVwRCxhQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDdEIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFMUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUMsQ0FBQztBQUVILGFBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNkLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFFckMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtRQUN4QyxPQUFPLEdBQUcs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