mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
* Add `.js` extension to source file imports * Specify package `exports` in `package.json` Specify package type as `commonjs` (It's good to be specific) * Move all compiled scripts into `lib` directory Remove ./number.js (You can use the compiled ones in `./lib/*`) Tell node that the `esm` directory is type `module` and enable tree shaking. Remove unused files from packages `files` property * Allow importing of package.json * Make library ESM first * - Fix merge conflicts - Refactor `bundleAny` into `defaultInstance.js` and `browserBundle.cjs` - Refactor unit tests to be able to run with plain nodejs (no transpiling) - Fix browser examples * Fix browser and browserstack tests * Fix running unit tests on Node 10 (which has no support for modules) * Fix node.js examples (those are still commonjs) * Remove the need for `browserBundle.cjs` * Generate minified bundle only * [Security] Bump node-fetch from 2.6.0 to 2.6.1 (#1963) Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1. **This update includes a security fix.** - [Release notes](https://github.com/bitinn/node-fetch/releases) - [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md) - [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Cleanup console.log * Add integration tests to test the entry points (commonjs/esm, full/number only) * Create backward compatibility error messages in the files moved/removed since v8 * Describe breaking changes in HISTORY.md * Bump karma from 5.2.1 to 5.2.2 (#1965) Bumps [karma](https://github.com/karma-runner/karma) from 5.2.1 to 5.2.2. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/v5.2.1...v5.2.2) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Lee Langley-Rees <lee@greenimp.co.uk> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
131 lines
3.7 KiB
JavaScript
131 lines
3.7 KiB
JavaScript
import { factory } from './utils/factory.js'
|
|
import { version } from './version.js'
|
|
import {
|
|
createBigNumberE,
|
|
createBigNumberPhi,
|
|
createBigNumberPi,
|
|
createBigNumberTau
|
|
} from './utils/bignumber/constants.js'
|
|
import { pi, tau, e, phi } from './plain/number/index.js'
|
|
|
|
export const createTrue = /* #__PURE__ */ factory('true', [], () => true)
|
|
export const createFalse = /* #__PURE__ */ factory('false', [], () => false)
|
|
export const createNull = /* #__PURE__ */ factory('null', [], () => null)
|
|
|
|
export const createInfinity = /* #__PURE__ */ recreateFactory(
|
|
'Infinity',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(Infinity)
|
|
: Infinity
|
|
)
|
|
|
|
export const createNaN = /* #__PURE__ */ recreateFactory(
|
|
'NaN',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(NaN)
|
|
: NaN
|
|
)
|
|
|
|
export const createPi = /* #__PURE__ */ recreateFactory(
|
|
'pi',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? createBigNumberPi(BigNumber)
|
|
: pi
|
|
)
|
|
|
|
export const createTau = /* #__PURE__ */ recreateFactory(
|
|
'tau',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? createBigNumberTau(BigNumber)
|
|
: tau
|
|
)
|
|
|
|
export const createE = /* #__PURE__ */ recreateFactory(
|
|
'e',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? createBigNumberE(BigNumber)
|
|
: e
|
|
)
|
|
|
|
// golden ratio, (1+sqrt(5))/2
|
|
export const createPhi = /* #__PURE__ */ recreateFactory(
|
|
'phi',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? createBigNumberPhi(BigNumber)
|
|
: phi
|
|
)
|
|
|
|
export const createLN2 = /* #__PURE__ */ recreateFactory(
|
|
'LN2',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(2).ln()
|
|
: Math.LN2
|
|
)
|
|
|
|
export const createLN10 = /* #__PURE__ */ recreateFactory(
|
|
'LN10',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(10).ln()
|
|
: Math.LN10
|
|
)
|
|
|
|
export const createLOG2E = /* #__PURE__ */ recreateFactory(
|
|
'LOG2E',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(1).div(new BigNumber(2).ln())
|
|
: Math.LOG2E
|
|
)
|
|
|
|
export const createLOG10E = /* #__PURE__ */ recreateFactory(
|
|
'LOG10E',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(1).div(new BigNumber(10).ln())
|
|
: Math.LOG10E
|
|
)
|
|
|
|
export const createSQRT1_2 = /* #__PURE__ */ recreateFactory( // eslint-disable-line camelcase
|
|
'SQRT1_2',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber('0.5').sqrt()
|
|
: Math.SQRT1_2
|
|
)
|
|
|
|
export const createSQRT2 = /* #__PURE__ */ recreateFactory(
|
|
'SQRT2',
|
|
['config', '?BigNumber'],
|
|
({ config, BigNumber }) => (config.number === 'BigNumber')
|
|
? new BigNumber(2).sqrt()
|
|
: Math.SQRT2
|
|
)
|
|
|
|
export const createI = /* #__PURE__ */ recreateFactory(
|
|
'i',
|
|
['Complex'],
|
|
({ Complex }) => Complex.I
|
|
)
|
|
|
|
// for backward compatibility with v5
|
|
export const createUppercasePi = /* #__PURE__ */ factory('PI', ['pi'], ({ pi }) => pi)
|
|
export const createUppercaseE = /* #__PURE__ */ factory('E', ['e'], ({ e }) => e)
|
|
|
|
export const createVersion = /* #__PURE__ */ factory('version', [], () => version)
|
|
|
|
// helper function to create a factory with a flag recreateOnConfigChange
|
|
// idea: allow passing optional properties to be attached to the factory function as 4th argument?
|
|
function recreateFactory (name, dependencies, create) {
|
|
return factory(name, dependencies, create, {
|
|
recreateOnConfigChange: true
|
|
})
|
|
}
|