@utiliread/primitives 1.0.0-113 → 1.0.0-115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ const _1 = require(".");
6
6
  class PrecisionNumber {
7
7
  constructor(value, precision) {
8
8
  this.value = value;
9
- this.precision = precision;
9
+ this.precision = precision !== null && precision !== void 0 ? precision : getPrecision(value);
10
10
  }
11
11
  static parse(input) {
12
12
  let normalized = input
@@ -66,6 +66,8 @@ class PrecisionNumber {
66
66
  }
67
67
  exports.PrecisionNumber = PrecisionNumber;
68
68
  function getPrecision(number, decimals) {
69
+ var _a, _b;
70
+ decimals !== null && decimals !== void 0 ? decimals : (decimals = (_b = (_a = number.toString().split(".", 2)[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
69
71
  if (number == 0) {
70
72
  return 1;
71
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"precision-number.js","sourceRoot":"","sources":["../../src/precision-number.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"precision-number.js","sourceRoot":"","sources":["../../src/precision-number.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const precision_number_1 = require("./precision-number");
4
4
  const chai_1 = require("chai");
5
+ describe("new", () => {
6
+ it("should create 0", () => {
7
+ const number = new precision_number_1.PrecisionNumber(0);
8
+ (0, chai_1.expect)(number.value).to.equal(0);
9
+ (0, chai_1.expect)(number.precision).to.equal(1);
10
+ });
11
+ it("should create 0.5", () => {
12
+ const number = new precision_number_1.PrecisionNumber(0.5);
13
+ (0, chai_1.expect)(number.value).to.equal(0.5);
14
+ (0, chai_1.expect)(number.precision).to.equal(1);
15
+ });
16
+ it("should create 100", () => {
17
+ const number = new precision_number_1.PrecisionNumber(100);
18
+ (0, chai_1.expect)(number.value).to.equal(100);
19
+ (0, chai_1.expect)(number.precision).to.equal(3);
20
+ });
21
+ });
5
22
  describe("parse", () => {
6
23
  it("should not parse ''", () => {
7
24
  const number = precision_number_1.PrecisionNumber.parse("");
@@ -1 +1 @@
1
- {"version":3,"file":"precision-number.spec.js","sourceRoot":"","sources":["../../src/precision-number.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"precision-number.spec.js","sourceRoot":"","sources":["../../src/precision-number.spec.ts"],"names":[],"mappings":";;AAAA,yDAAqD;AACrD,+BAA8B;AAE9B,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACjB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,MAAM,MAAM,GAAG,IAAI,kCAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,kCAAe,CAAC,GAAG,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,kCAAe,CAAC,GAAG,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,MAAM,IAAI,GAAG;QACT;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;SAC7B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,kCAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,kCAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,kCAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC9B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;SAC7B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,kCAAe,CAAC,EAAE,EAAE,CAAC,CAAC;SAC7B;QACD;YACI,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/B;QACD;YACI,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/B;QACD;YACI,IAAI,kCAAe,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/B;QACD;YACI,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,IAAI,kCAAe,CAAC,IAAI,EAAE,CAAC,CAAC;SAC/B;KACJ,CAAC;IAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,MAAM,IAAI,GAAG;QACT;YACI,IAAI,kCAAe,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,IAAI,kCAAe,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5B;QACD;YACI,IAAI,kCAAe,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,GAAG,EAAE,CAAC,CAAC;SAC9B;QACD;YACI,IAAI,kCAAe,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3B,IAAI,kCAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kCAAe,CAAC,GAAG,EAAE,CAAC,CAAC;SAC9B;KACJ,CAAC;IAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export declare class PrecisionNumber {
2
2
  value: number;
3
3
  precision: number;
4
- constructor(value: number, precision: number);
4
+ constructor(value: number, precision?: number);
5
5
  static parse(input: string): PrecisionNumber;
6
6
  abs(): PrecisionNumber;
7
7
  plus(rhs: PrecisionNumber): PrecisionNumber;
@@ -3,7 +3,7 @@ import { invariantDecimalSeparator } from ".";
3
3
  export class PrecisionNumber {
4
4
  constructor(value, precision) {
5
5
  this.value = value;
6
- this.precision = precision;
6
+ this.precision = precision !== null && precision !== void 0 ? precision : getPrecision(value);
7
7
  }
8
8
  static parse(input) {
9
9
  let normalized = input
@@ -62,6 +62,8 @@ export class PrecisionNumber {
62
62
  }
63
63
  }
64
64
  function getPrecision(number, decimals) {
65
+ var _a, _b;
66
+ decimals !== null && decimals !== void 0 ? decimals : (decimals = (_b = (_a = number.toString().split(".", 2)[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
65
67
  if (number == 0) {
66
68
  return 1;
67
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"precision-number.js","sourceRoot":"","sources":["../../src/precision-number.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"precision-number.js","sourceRoot":"","sources":["../../src/precision-number.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,22 @@
1
1
  import { PrecisionNumber } from "./precision-number";
2
2
  import { expect } from "chai";
3
+ describe("new", () => {
4
+ it("should create 0", () => {
5
+ const number = new PrecisionNumber(0);
6
+ expect(number.value).to.equal(0);
7
+ expect(number.precision).to.equal(1);
8
+ });
9
+ it("should create 0.5", () => {
10
+ const number = new PrecisionNumber(0.5);
11
+ expect(number.value).to.equal(0.5);
12
+ expect(number.precision).to.equal(1);
13
+ });
14
+ it("should create 100", () => {
15
+ const number = new PrecisionNumber(100);
16
+ expect(number.value).to.equal(100);
17
+ expect(number.precision).to.equal(3);
18
+ });
19
+ });
3
20
  describe("parse", () => {
4
21
  it("should not parse ''", () => {
5
22
  const number = PrecisionNumber.parse("");
@@ -1 +1 @@
1
- {"version":3,"file":"precision-number.spec.js","sourceRoot":"","sources":["../../src/precision-number.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"precision-number.spec.js","sourceRoot":"","sources":["../../src/precision-number.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@utiliread/primitives",
3
- "version": "1.0.0-113",
3
+ "version": "1.0.0-115",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",
@@ -16,10 +16,12 @@
16
16
  },
17
17
  "exports": {
18
18
  ".": {
19
+ "types": "./dist/esm/index.d.ts",
19
20
  "import": "./dist/esm/index.js",
20
21
  "require": "./dist/cjs/index.js"
21
22
  },
22
23
  "./registers": {
24
+ "types": "./dist/esm/registers/index.d.ts",
23
25
  "import": "./dist/esm/registers/index.js",
24
26
  "require": "./dist/cjs/registers/index.js"
25
27
  },
@@ -31,7 +33,7 @@
31
33
  "@types/luxon": "^3.0.1",
32
34
  "@types/mocha": "^10.0.0",
33
35
  "@web/dev-server-esbuild": "^1.0.1",
34
- "@web/test-runner": "^0.18.0",
36
+ "@web/test-runner": "^0.19.0",
35
37
  "chai": "^5.0.0",
36
38
  "luxon": "^3.0.4",
37
39
  "mocha": "^10.0.0",
@@ -1,6 +1,38 @@
1
1
  import { PrecisionNumber } from "./precision-number";
2
2
  import { expect } from "chai";
3
3
 
4
+ describe("new", () => {
5
+ it("should create 0", () => {
6
+ const number = new PrecisionNumber(0);
7
+ expect(number.value).to.equal(0);
8
+ expect(number.precision).to.equal(1);
9
+ });
10
+
11
+ it("should create 0.5", () => {
12
+ const number = new PrecisionNumber(0.5);
13
+ expect(number.value).to.equal(0.5);
14
+ expect(number.precision).to.equal(1);
15
+ });
16
+
17
+ it("should create 0.05", () => {
18
+ const number = new PrecisionNumber(0.05);
19
+ expect(number.value).to.equal(0.05);
20
+ expect(number.precision).to.equal(2);
21
+ });
22
+
23
+ it("should create 1.05", () => {
24
+ const number = new PrecisionNumber(1.05);
25
+ expect(number.value).to.equal(1.05);
26
+ expect(number.precision).to.equal(3);
27
+ });
28
+
29
+ it("should create 100", () => {
30
+ const number = new PrecisionNumber(100);
31
+ expect(number.value).to.equal(100);
32
+ expect(number.precision).to.equal(3);
33
+ });
34
+ });
35
+
4
36
  describe("parse", () => {
5
37
  it("should not parse ''", () => {
6
38
  const number = PrecisionNumber.parse("");
@@ -3,10 +3,12 @@ import { NumberFormatter, localeDecimalSeparator } from "./number-formatter";
3
3
  import { invariantDecimalSeparator } from ".";
4
4
 
5
5
  export class PrecisionNumber {
6
- constructor(
7
- public value: number,
8
- public precision: number,
9
- ) {}
6
+ public value: number;
7
+ public precision: number;
8
+ constructor(value: number, precision?: number) {
9
+ this.value = value;
10
+ this.precision = precision ?? getPrecision(value);
11
+ }
10
12
 
11
13
  static parse(input: string) {
12
14
  let normalized = input
@@ -80,7 +82,9 @@ export class PrecisionNumber {
80
82
  }
81
83
  }
82
84
 
83
- function getPrecision(number: number, decimals: number) {
85
+ function getPrecision(number: number, decimals?: number) {
86
+ decimals ??= number.toString().split(".", 2)[1]?.length ?? 0;
87
+
84
88
  if (number == 0) {
85
89
  return 1;
86
90
  } else if (number > -1 && number < 1) {