UNPKG

optionull

Version:

An implementation for the nullable design pattern in javascript

6 lines (4 loc) 2.38 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Optional = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ "use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}module.exports=function(){function e(t){_classCallCheck(this,e),this.value=t}return _createClass(e,[{key:"get",value:function(){return this.value}},{key:"getOrElse",value:function(e){return this.isPresent()?this.value:"function"==typeof e?e():e}},{key:"isDefined",value:function(){return void 0!==this.value}},{key:"isNotNull",value:function(){return null!==this.value}},{key:"isPresent",value:function(){return!(!this.isDefined()||!this.isNotNull())}},{key:"ifPresent",value:function(e){this.isPresent()&&e(this.value)}},{key:"ifPresentOrElse",value:function(e,t){this.isPresent()?e(this.value):t()}},{key:"map",value:function(t){return this.isPresent()?e.ofNullable(t(this.value)):e.empty()}},{key:"flatMap",value:function(t){if(this.isPresent()){var n=t(this.value);return n instanceof e?n:e.ofNullable(n)}return e.empty()}},{key:"filter",value:function(t){if(this.isPresent()&&("function"==typeof t?t(this.value):t===this.value))return e.ofNullable(this.value);return e.empty()}}],[{key:"empty",value:function(){return new e}},{key:"ofNullable",value:function(t){return new e(t)}}]),e}(); },{}]},{},[1])(1) });