diff options
author | Steve Klebanoff <steve.klebanoff@gmail.com> | 2018-11-10 02:06:22 +0800 |
---|---|---|
committer | Steve Klebanoff <steve.klebanoff@gmail.com> | 2018-11-10 02:06:22 +0800 |
commit | df91d343154bced69be86f7af4c4c702286cfd16 (patch) | |
tree | 35a540b849c38ce72a2b5bd5aedcc23f2b72ef6d /packages/utils/src | |
parent | d703c13f8eca7f7139581468e86cf6d2fa067c1e (diff) | |
parent | b4a11de097258d37fa9271e64fc28a1d012a8d26 (diff) | |
download | dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.tar dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.tar.gz dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.tar.bz2 dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.tar.lz dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.tar.xz dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.tar.zst dexon-sol-tools-df91d343154bced69be86f7af4c4c702286cfd16.zip |
Merge branch 'development' into feature/instant/buy-quote-heartbeat
Diffstat (limited to 'packages/utils/src')
-rw-r--r-- | packages/utils/src/configured_bignumber.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/packages/utils/src/configured_bignumber.ts b/packages/utils/src/configured_bignumber.ts index 2b22b6938..34b57d303 100644 --- a/packages/utils/src/configured_bignumber.ts +++ b/packages/utils/src/configured_bignumber.ts @@ -11,4 +11,27 @@ BigNumber.config({ DECIMAL_PLACES: 78, }); +// Set a debug print function for NodeJS +// Upstream issue: https://github.com/MikeMcl/bignumber.js/issues/188 +import isNode = require('detect-node'); +if (isNode) { + // Dynamically load a NodeJS specific module. + // Typescript requires all imports to be global, so we need to use + // `const` here and disable the tslint warning. + // tslint:disable-next-line: no-var-requires + const util = require('util'); + + // Set a custom util.inspect function + // HACK: We add a function to the BigNumber class by assigning to the + // prototype. The function name is a symbol provided by Node. + (BigNumber.prototype as any)[util.inspect.custom] = function(): string { + // HACK: When executed, `this` will refer to the BigNumber instance. + // This is also why we need a function expression instead of an + // arrow function, as the latter does not have a `this`. + // Return the readable string representation + // tslint:disable-next-line: no-invalid-this + return this.toString(); + }; +} + export { BigNumber }; |