UNPKG

lib-utils-ts

Version:

<img src="https://img.shields.io/npm/v/lib-utils-ts"/> <img src="https://img.shields.io/snyk/vulnerabilities/npm/lib-utils-ts"/> <img src="https://img.shields.io/npm/l/lib-utils-ts"/> <img src="https://img.shields.io/github/languages/top/devGnode/lib-util

129 lines 5.83 kB
/** * * Here need to load really the natives * classes, by this way, you avoid any * error with another classes like Enum. * some classes need of extended method * of an object that not be yet loaded. * * */ /*** * 0 - make first init * Warning Keep this importation order. * * @init: Package.Package * ***/ import {Package} from "./Package/Package"; Object.package = Package.Package; Object.defineProperty(Object,"package",{enumerable:false,configurable:false,writable:false}); /***tmp init Function.class**/ import {Constructor} from "./init/Constructor"; Function.prototype.class = <any>Constructor.clazz; Object.defineProperty(Function.prototype,"class",{enumerable: false, writable: true, configurable: true}); /***init Object.getClass**/ import {Objects} from "./type/Objects"; import {Class} from "./Class"; Object.prototype.getClass = function<T>():Class<T> { return new Class<T>(this); }; Object.defineProperty(Object.prototype,"getClass",{enumerable: false, writable: false, configurable: false}); /***final Function.getClass**/ import {Functions} from "./type/Functions"; Function.prototype.class = Functions.prototype.class; Object.defineProperty(Function.prototype,"class",{enumerable: false, writable: false, configurable: false}); /**** * 1 - Native Object extension area * * + String * + Number * + Date * .... */ /*** Object extension */ /***/ Object.toString = Objects.toString; Object.equals = Objects.equals; Object.compare = Objects.compare; // Object.prototype.equals = Objects.prototype.equals; Object.prototype.toString = function():string {return Objects.toString(this);}; Object.prototype.hash = Objects.hash; Object.defineProperty(Object,"equals",{enumerable: false, writable: true, configurable: false}); Object.defineProperty(Object,"compare",{enumerable: false, writable: false, configurable: false}); Object.defineProperty(Object,"toString",{enumerable: false, writable: true, configurable: false}); Object.defineProperty(Object.prototype,"equals",{enumerable: false, writable: true, configurable: false}); Object.defineProperty(Object.prototype,"toString",{enumerable: false, writable: true, configurable: false}); Object.defineProperty(Object.prototype,"hash",{enumerable: false, writable: true, configurable: false}); Object.defineProperty(Object.prototype,"__serial__",{enumerable: false, writable: true, configurable: true, value:null}); /** * * Other extended classes * Warning Keep this loading order. * */ import {Integer} from "./type/Integer"; import {Dates} from "./type/Dates"; import {Booleans} from "./type/Booleans"; import {ArrayA} from "./type/ArrayA"; import {Strings} from "./type/Strings"; /**** * equals method extended for all native Object */ Boolean.prototype.equals = Number.prototype.equals = String.prototype.equals = function(value : string | number| boolean | Object ) : boolean { return this.valueOf()===value; } /*** * String extension */ String.prototype.equalsIgnoreCase = Strings.prototype.equalsIgnoreCase; String.prototype.regExp = Strings.prototype.regExp; // @ts-ignore String.repeatString = Strings.repeatStringA; String.prototype.contains = Strings.prototype.contains; String.prototype.format = Strings.prototype.format; String.prototype.isEmpty = Strings.prototype.isEmpty; String.prototype.explodeAsList = Strings.prototype.explodeAsList; String.prototype.exec = Strings.prototype.exec; String.prototype.orDefault = Strings.prototype.orDefault; String.prototype.stripSlashes = Strings.prototype.stripSlashes; String.prototype.compareTo = Strings.prototype.compareTo; String.prototype.toArray = Strings.prototype.toArray; String.prototype.getBytes = Strings.prototype.getBytes; /*** * Number extension */ Number.of = Integer.of; Number.compare = Integer.prototype.compare; Number.prototype.compareTo = Integer.prototype.compareTo; Number.prototype.isPrime = Integer.prototype.isPrime; Number.sum = Integer.sum; /*** Date Extension */ Date.prototype.plusDays = Dates.prototype.plusDays; Date.prototype.lessDays = Dates.prototype.lessDays; Date.prototype.plusYears = Dates.prototype.plusYears; Date.prototype.lessYears = Dates.prototype.lessYears; Date.prototype.elapsedTime = Dates.prototype.elapsedTime; Date.prototype.compareTo = Dates.prototype.compareTo; Date.dateFormat = Dates.prototype.dateFormat; /*** Boolean extension */ Boolean.prototype.state = Booleans.prototype.state; Boolean.prototype.compareTo = Booleans.prototype.compareTo; Boolean.of = Booleans.of; Boolean.compare = Booleans.compare; Object.defineProperty(Boolean.prototype,"state",{enumerable: false, writable: true, configurable: true}); /*** Array extension */ Array.asList = ArrayA.prototype.asList; Array.list = ArrayA.prototype.list; Array.newList = ArrayA.prototype.newList; Array.sum = ArrayA.prototype.sum; Array.prototype.equals = ArrayA.prototype.equals; Array.prototype.sum = function( ):number{ let i:number = 0, sum:number = 0, len:number = this.length; try{ for(; i < len; i++ ) sum += typeof parseInt( this[ i ] ) === "number" ? parseInt( this[ i ] ) : 0; }catch(e){} return sum; }; Object.defineProperty(Array.prototype,"equals",{enumerable: false, writable: true, configurable: true});