1 | import { factory } from './utils/factory'
|
2 | import { version } from './version'
|
3 | import {
|
4 | createBigNumberE,
|
5 | createBigNumberPhi,
|
6 | createBigNumberPi,
|
7 | createBigNumberTau
|
8 | } from './utils/bignumber/constants'
|
9 | import { pi, tau, e, phi } from './plain/number'
|
10 |
|
11 | export const createTrue = factory('true', [], () => true)
|
12 | export const createFalse = factory('false', [], () => false)
|
13 | export const createNull = factory('null', [], () => null)
|
14 |
|
15 | export const createInfinity = recreateFactory(
|
16 | 'Infinity',
|
17 | ['config', '?BigNumber'],
|
18 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
19 | ? new BigNumber(Infinity)
|
20 | : Infinity
|
21 | )
|
22 |
|
23 | export const createNaN = recreateFactory(
|
24 | 'NaN',
|
25 | ['config', '?BigNumber'],
|
26 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
27 | ? new BigNumber(NaN)
|
28 | : NaN
|
29 | )
|
30 |
|
31 | export const createPi = recreateFactory(
|
32 | 'pi',
|
33 | ['config', '?BigNumber'],
|
34 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
35 | ? createBigNumberPi(BigNumber)
|
36 | : pi
|
37 | )
|
38 |
|
39 | export const createTau = recreateFactory(
|
40 | 'tau',
|
41 | ['config', '?BigNumber'],
|
42 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
43 | ? createBigNumberTau(BigNumber)
|
44 | : tau
|
45 | )
|
46 |
|
47 | export const createE = recreateFactory(
|
48 | 'e',
|
49 | ['config', '?BigNumber'],
|
50 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
51 | ? createBigNumberE(BigNumber)
|
52 | : e
|
53 | )
|
54 |
|
55 |
|
56 | export const createPhi = recreateFactory(
|
57 | 'phi',
|
58 | ['config', '?BigNumber'],
|
59 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
60 | ? createBigNumberPhi(BigNumber)
|
61 | : phi
|
62 | )
|
63 |
|
64 | export const createLN2 = recreateFactory(
|
65 | 'LN2',
|
66 | ['config', '?BigNumber'],
|
67 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
68 | ? new BigNumber(2).ln()
|
69 | : Math.LN2
|
70 | )
|
71 |
|
72 | export const createLN10 = recreateFactory(
|
73 | 'LN10',
|
74 | ['config', '?BigNumber'],
|
75 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
76 | ? new BigNumber(10).ln()
|
77 | : Math.LN10
|
78 | )
|
79 |
|
80 | export const createLOG2E = recreateFactory(
|
81 | 'LOG2E',
|
82 | ['config', '?BigNumber'],
|
83 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
84 | ? new BigNumber(1).div(new BigNumber(2).ln())
|
85 | : Math.LOG2E
|
86 | )
|
87 |
|
88 | export const createLOG10E = recreateFactory(
|
89 | 'LOG10E',
|
90 | ['config', '?BigNumber'],
|
91 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
92 | ? new BigNumber(1).div(new BigNumber(10).ln())
|
93 | : Math.LOG10E
|
94 | )
|
95 |
|
96 | export const createSQRT1_2 = recreateFactory(
|
97 | 'SQRT1_2',
|
98 | ['config', '?BigNumber'],
|
99 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
100 | ? new BigNumber('0.5').sqrt()
|
101 | : Math.SQRT1_2
|
102 | )
|
103 |
|
104 | export const createSQRT2 = recreateFactory(
|
105 | 'SQRT2',
|
106 | ['config', '?BigNumber'],
|
107 | ({ config, BigNumber }) => (config.number === 'BigNumber')
|
108 | ? new BigNumber(2).sqrt()
|
109 | : Math.SQRT2
|
110 | )
|
111 |
|
112 | export const createI = recreateFactory(
|
113 | 'i',
|
114 | ['Complex'],
|
115 | ({ Complex }) => Complex.I
|
116 | )
|
117 |
|
118 |
|
119 | export const createUppercasePi = factory('PI', ['pi'], ({ pi }) => pi)
|
120 | export const createUppercaseE = factory('E', ['e'], ({ e }) => e)
|
121 |
|
122 | export const createVersion = factory('version', [], () => version)
|
123 |
|
124 |
|
125 |
|
126 | function recreateFactory (name, dependencies, create) {
|
127 | return factory(name, dependencies, create, {
|
128 | recreateOnConfigChange: true
|
129 | })
|
130 | }
|