UNPKG

@sega-so/sega-sdk

Version:

An SDK for building applications on top of SEGA.

2 lines 3.29 kB
import s from"big.js";import L from"bn.js";import F from"decimal.js-light";import{get as l,set as W}from"lodash";var u=class{constructor(r){this.logLevel=r.logLevel!==void 0?r.logLevel:0,this.name=r.name}set level(r){this.logLevel=r}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(r){return r<=this.logLevel}error(...r){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...r),this):this}logWithError(...r){let i=r.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(i)}warning(...r){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...r),this):this}info(...r){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...r),this):this}debug(...r){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...r),this):this}},f={},D={};function m(e){let r=l(f,e);if(!r){let i=l(D,e);r=new u({name:e,logLevel:i}),W(f,e,r)}return r}import n from"bn.js";var b=9007199254740991;function t(e){let r=m("Sega_parseBigNumberish");if(e instanceof n)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new n(e);r.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&r.logWithError(`BigNumberish number underflow: ${e}`),(e>=b||e<=-b)&&r.logWithError(`BigNumberish number overflow: ${e}`),new n(String(e))):typeof e=="bigint"?new n(e.toString()):(r.error(`invalid BigNumberish value: ${e}`),new n(0))}import B from"toformat";var N=B,g=N;var p=m("module/fraction"),c=g(s),a=g(F),w={0:a.ROUND_DOWN,1:a.ROUND_HALF_UP,2:a.ROUND_UP},S={0:s.roundDown,1:s.roundHalfUp,2:s.roundUp},h=class e{constructor(r,i=new L(1)){this.numerator=t(r),this.denominator=t(i)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new e(this.denominator,this.numerator)}add(r){let i=r instanceof e?r:new e(t(r));return this.denominator.eq(i.denominator)?new e(this.numerator.add(i.numerator),this.denominator):new e(this.numerator.mul(i.denominator).add(i.numerator.mul(this.denominator)),this.denominator.mul(i.denominator))}sub(r){let i=r instanceof e?r:new e(t(r));return this.denominator.eq(i.denominator)?new e(this.numerator.sub(i.numerator),this.denominator):new e(this.numerator.mul(i.denominator).sub(i.numerator.mul(this.denominator)),this.denominator.mul(i.denominator))}mul(r){let i=r instanceof e?r:new e(t(r));return new e(this.numerator.mul(i.numerator),this.denominator.mul(i.denominator))}div(r){let i=r instanceof e?r:new e(t(r));return new e(this.numerator.mul(i.denominator),this.denominator.mul(i.numerator))}toSignificant(r,i={groupSeparator:""},o=1){Number.isInteger(r)||p.logWithError(`${r} is not an integer.`),r<=0&&p.logWithError(`${r} is not positive.`),a.set({precision:r+1,rounding:w[o]});let d=new a(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(r);return d.toFormat(d.decimalPlaces(),i)}toFixed(r,i={groupSeparator:""},o=1){return Number.isInteger(r)||p.logWithError(`${r} is not an integer.`),r<0&&p.logWithError(`${r} is negative.`),c.DP=r,c.RM=S[o]||1,new c(this.numerator.toString()).div(this.denominator.toString()).toFormat(r,i)}isZero(){return this.numerator.isZero()}};export{h as Fraction}; //# sourceMappingURL=fraction.mjs.map