UNPKG

typescript-nullable

Version:

A TypeScript Nullable<T> Type and Monad Compliant Utility Functions

69 lines 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var isNone = function (nullable) { return nullable === null || nullable === undefined; }; var isSome = function (nullable) { return nullable !== null && nullable !== undefined; }; var mapHelper = function (func, nullable) { return nullable !== undefined && nullable !== null ? func(nullable) : null; }; function map(func, nullable) { return arguments.length === 1 ? function (nullable_) { return mapHelper(func, nullable_); } : mapHelper(func, nullable); } var maybeHelper = function (defaultVal, f, nullable) { return nullable !== undefined && nullable !== null ? f(nullable) : defaultVal; }; function maybe(defaultVal, f, nullable) { return arguments.length === 2 ? function (nullable_) { return maybeHelper(defaultVal, f, nullable_); } : maybeHelper(defaultVal, f, nullable); } var withDefaultHelper = function (defaultVal, nullable) { return nullable !== undefined && nullable !== null ? nullable : defaultVal; }; function withDefault(defaultVal, nullable) { return arguments.length === 1 ? function (nullable_) { return withDefaultHelper(defaultVal, nullable_); } : withDefaultHelper(defaultVal, nullable); } var andThenHelper = function (func, nullable) { return nullable !== undefined && nullable !== null ? func(nullable) : null; }; function andThen(func, nullable) { return arguments.length === 1 ? function (nullable_) { return andThenHelper(func, nullable_); } : andThenHelper(func, nullable); } var apHelper = function (targetNullable, applicativeNullable) { return (targetNullable !== undefined && targetNullable !== null) && (applicativeNullable !== undefined && applicativeNullable !== null) ? applicativeNullable(targetNullable) : null; }; function ap(targetNullable, applicativeNullable) { return arguments.length === 1 ? function (applicativeNullable_) { return apHelper(targetNullable, applicativeNullable_); } : apHelper(targetNullable, applicativeNullable); } exports.Nullable = { andThen: andThen, ap: ap, isNone: isNone, isSome: isSome, map: map, maybe: maybe, withDefault: withDefault, }; //# sourceMappingURL=index.js.map