n2words 1.20.0 → 1.22.0

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.
Files changed (127) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/ar.js +2 -0
  4. package/dist/ar.js.map +1 -0
  5. package/dist/az.js +2 -0
  6. package/dist/az.js.map +1 -0
  7. package/dist/cz.js +2 -0
  8. package/dist/cz.js.map +1 -0
  9. package/dist/de.js +2 -0
  10. package/dist/de.js.map +1 -0
  11. package/dist/dk.js +2 -0
  12. package/dist/dk.js.map +1 -0
  13. package/dist/en.js +2 -0
  14. package/dist/en.js.map +1 -0
  15. package/dist/es.js +2 -0
  16. package/dist/es.js.map +1 -0
  17. package/dist/fa.js +2 -0
  18. package/dist/fa.js.map +1 -0
  19. package/dist/fr-BE.js +2 -0
  20. package/dist/fr-BE.js.map +1 -0
  21. package/dist/fr.js +2 -0
  22. package/dist/fr.js.map +1 -0
  23. package/dist/he.js +2 -0
  24. package/dist/he.js.map +1 -0
  25. package/dist/hr.js +2 -0
  26. package/dist/hr.js.map +1 -0
  27. package/dist/hu.js +2 -0
  28. package/dist/hu.js.map +1 -0
  29. package/dist/id.js +2 -0
  30. package/dist/id.js.map +1 -0
  31. package/dist/it.js +2 -0
  32. package/dist/it.js.map +1 -0
  33. package/dist/ko.js +2 -0
  34. package/dist/ko.js.map +1 -0
  35. package/dist/lt.js +2 -0
  36. package/dist/lt.js.map +1 -0
  37. package/dist/lv.js +2 -0
  38. package/dist/lv.js.map +1 -0
  39. package/dist/n2words.js +1 -1
  40. package/dist/n2words.js.map +1 -1
  41. package/dist/nl.js +2 -0
  42. package/dist/nl.js.map +1 -0
  43. package/dist/no.js +2 -0
  44. package/dist/no.js.map +1 -0
  45. package/dist/pl.js +2 -0
  46. package/dist/pl.js.map +1 -0
  47. package/dist/pt.js +2 -0
  48. package/dist/pt.js.map +1 -0
  49. package/dist/ro.js +2 -0
  50. package/dist/ro.js.map +1 -0
  51. package/dist/ru.js +2 -0
  52. package/dist/ru.js.map +1 -0
  53. package/dist/sr.js +2 -0
  54. package/dist/sr.js.map +1 -0
  55. package/dist/tr.js +2 -0
  56. package/dist/tr.js.map +1 -0
  57. package/dist/uk.js +2 -0
  58. package/dist/uk.js.map +1 -0
  59. package/dist/vi.js +2 -0
  60. package/dist/vi.js.map +1 -0
  61. package/dist/zh.js +2 -0
  62. package/dist/zh.js.map +1 -0
  63. package/lib/classes/{AbstractLanguage.d.ts → abstract-language.d.ts} +4 -3
  64. package/lib/classes/{AbstractLanguage.js → abstract-language.js} +14 -12
  65. package/lib/classes/{BaseLanguage.d.ts → base-language.d.ts} +6 -10
  66. package/lib/classes/{BaseLanguage.js → base-language.js} +23 -28
  67. package/lib/i18n/ar.d.ts +6 -6
  68. package/lib/i18n/ar.js +37 -45
  69. package/lib/i18n/az.d.ts +3 -3
  70. package/lib/i18n/az.js +15 -15
  71. package/lib/i18n/cz.d.ts +2 -2
  72. package/lib/i18n/cz.js +8 -9
  73. package/lib/i18n/de.d.ts +4 -4
  74. package/lib/i18n/de.js +33 -37
  75. package/lib/i18n/dk.d.ts +4 -4
  76. package/lib/i18n/dk.js +32 -32
  77. package/lib/i18n/en.d.ts +3 -3
  78. package/lib/i18n/en.js +18 -18
  79. package/lib/i18n/es.d.ts +4 -4
  80. package/lib/i18n/es.js +24 -24
  81. package/lib/i18n/fa.d.ts +3 -3
  82. package/lib/i18n/fa.js +9 -9
  83. package/lib/i18n/fr-BE.d.ts +2 -2
  84. package/lib/i18n/fr-BE.js +2 -2
  85. package/lib/i18n/fr.d.ts +4 -4
  86. package/lib/i18n/fr.js +29 -29
  87. package/lib/i18n/he.d.ts +2 -2
  88. package/lib/i18n/he.js +9 -12
  89. package/lib/i18n/hr.d.ts +2 -2
  90. package/lib/i18n/hr.js +10 -11
  91. package/lib/i18n/hu.d.ts +3 -3
  92. package/lib/i18n/hu.js +14 -14
  93. package/lib/i18n/id.d.ts +4 -4
  94. package/lib/i18n/id.js +25 -35
  95. package/lib/i18n/it.d.ts +3 -3
  96. package/lib/i18n/it.js +18 -38
  97. package/lib/i18n/ko.d.ts +3 -3
  98. package/lib/i18n/ko.js +16 -16
  99. package/lib/i18n/lt.d.ts +2 -2
  100. package/lib/i18n/lt.js +8 -9
  101. package/lib/i18n/lv.d.ts +2 -2
  102. package/lib/i18n/lv.js +10 -16
  103. package/lib/i18n/nl.d.ts +4 -4
  104. package/lib/i18n/nl.js +34 -34
  105. package/lib/i18n/no.d.ts +3 -3
  106. package/lib/i18n/no.js +20 -20
  107. package/lib/i18n/pl.d.ts +2 -2
  108. package/lib/i18n/pl.js +8 -9
  109. package/lib/i18n/pt.d.ts +4 -4
  110. package/lib/i18n/pt.js +25 -25
  111. package/lib/i18n/ro.d.ts +109 -0
  112. package/lib/i18n/ro.js +360 -0
  113. package/lib/i18n/ru.d.ts +4 -4
  114. package/lib/i18n/ru.js +15 -14
  115. package/lib/i18n/sr.d.ts +2 -2
  116. package/lib/i18n/sr.js +10 -11
  117. package/lib/i18n/tr.d.ts +3 -3
  118. package/lib/i18n/tr.js +15 -15
  119. package/lib/i18n/uk.d.ts +2 -2
  120. package/lib/i18n/uk.js +2 -2
  121. package/lib/i18n/vi.d.ts +3 -3
  122. package/lib/i18n/vi.js +4 -8
  123. package/lib/i18n/zh.d.ts +6 -6
  124. package/lib/i18n/zh.js +11 -11
  125. package/lib/n2words.d.ts +3 -1
  126. package/lib/n2words.js +17 -7
  127. package/package.json +32 -23
package/lib/i18n/en.js CHANGED
@@ -1,4 +1,4 @@
1
- import BaseLanguage from '../classes/BaseLanguage.js';
1
+ import BaseLanguage from '../classes/base-language.js';
2
2
 
3
3
  /**
4
4
  * This class is for converting numbers to english words.
@@ -12,14 +12,14 @@ export class English extends BaseLanguage {
12
12
  }, options);
13
13
 
14
14
  super(options, [
15
- [1000000000000000000000000000n, 'octillion'],
16
- [1000000000000000000000000n, 'septillion'],
17
- [1000000000000000000000n, 'sextillion'],
18
- [1000000000000000000n, 'quintillion'],
19
- [1000000000000000n, 'quadrillion'],
20
- [1000000000000n, 'trillion'],
21
- [1000000000n, 'billion'],
22
- [1000000n, 'million'],
15
+ [1_000_000_000_000_000_000_000_000_000n, 'octillion'],
16
+ [1_000_000_000_000_000_000_000_000n, 'septillion'],
17
+ [1_000_000_000_000_000_000_000n, 'sextillion'],
18
+ [1_000_000_000_000_000_000n, 'quintillion'],
19
+ [1_000_000_000_000_000n, 'quadrillion'],
20
+ [1_000_000_000_000n, 'trillion'],
21
+ [1_000_000_000n, 'billion'],
22
+ [1_000_000n, 'million'],
23
23
  [1000n, 'thousand'],
24
24
  [100n, 'hundred'],
25
25
  [90n, 'ninety'],
@@ -61,16 +61,16 @@ export class English extends BaseLanguage {
61
61
  */
62
62
  merge(lPair, rPair) {
63
63
  const lText = Object.keys(lPair)[0];
64
- const lNum = BigInt(Object.values(lPair)[0]);
64
+ const lNumber = BigInt(Object.values(lPair)[0]);
65
65
  const rText = Object.keys(rPair)[0];
66
- const rNum = BigInt(Object.values(rPair)[0]);
66
+ const rNumber = BigInt(Object.values(rPair)[0]);
67
67
 
68
- if (lNum == 1 && rNum < 100) return { [rText]: rNum };
69
- else if (100 > lNum && lNum > rNum) return { [`${lText}-${rText}`]: lNum + rNum };
70
- else if (lNum >= 100 && 100 > rNum) return { [`${lText} and ${rText}`]: lNum + rNum };
71
- else if (rNum > lNum) return { [`${lText} ${rText}`]: lNum * rNum };
68
+ if (lNumber == 1 && rNumber < 100) return { [rText]: rNumber };
69
+ else if (100 > lNumber && lNumber > rNumber) return { [`${lText}-${rText}`]: lNumber + rNumber };
70
+ else if (lNumber >= 100 && 100 > rNumber) return { [`${lText} and ${rText}`]: lNumber + rNumber };
71
+ else if (rNumber > lNumber) return { [`${lText} ${rText}`]: lNumber * rNumber };
72
72
 
73
- return { [`${lText} ${rText}`]: lNum + rNum };
73
+ return { [`${lText} ${rText}`]: lNumber + rNumber };
74
74
  }
75
75
  }
76
76
 
@@ -78,9 +78,9 @@ export class English extends BaseLanguage {
78
78
  * Converts a value to cardinal (written) form.
79
79
  * @param {number|string|bigint} value Number to be convert.
80
80
  * @param {object} [options] Options for class.
81
- * @throws {Error} Value cannot be invalid.
82
81
  * @returns {string} Value in cardinal (written) format.
82
+ * @throws {Error} Value cannot be invalid.
83
83
  */
84
- export default function (value, options = {}) {
84
+ export default function floatToCardinal (value, options = {}) {
85
85
  return new English(options).floatToCardinal(value);
86
86
  }
package/lib/i18n/es.d.ts CHANGED
@@ -2,15 +2,15 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsES extends BaseLanguage {
10
10
  constructor(options: any);
11
11
  genderStem: any;
12
- merge(curr: any, next: any): {
12
+ merge(current: any, next: any): {
13
13
  [x: string]: bigint;
14
14
  };
15
15
  }
16
- import BaseLanguage from '../classes/BaseLanguage.js';
16
+ import BaseLanguage from '../classes/base-language.js';
package/lib/i18n/es.js CHANGED
@@ -1,4 +1,4 @@
1
- import BaseLanguage from '../classes/BaseLanguage.js';
1
+ import BaseLanguage from '../classes/base-language.js';
2
2
 
3
3
  export class N2WordsES extends BaseLanguage {
4
4
  genderStem;
@@ -12,10 +12,10 @@ export class N2WordsES extends BaseLanguage {
12
12
  }, options);
13
13
 
14
14
  super(options, [
15
- [1000000000000000000000000n, 'cuatrillón'],
16
- [1000000000000000000n, 'trillón'],
17
- [1000000000000n, 'billón'],
18
- [1000000n, 'millón'],
15
+ [1_000_000_000_000_000_000_000_000n, 'cuatrillón'],
16
+ [1_000_000_000_000_000_000n, 'trillón'],
17
+ [1_000_000_000_000n, 'billón'],
18
+ [1_000_000n, 'millón'],
19
19
  [1000n, 'mil'],
20
20
  [100n, 'cien'],
21
21
  [90n, 'noventa'],
@@ -60,41 +60,41 @@ export class N2WordsES extends BaseLanguage {
60
60
  this.genderStem = options.genderStem;
61
61
  }
62
62
 
63
- merge(curr, next) {
64
- let cText = Object.keys(curr)[0];
63
+ merge(current, next) {
64
+ let cText = Object.keys(current)[0];
65
65
  let nText = Object.keys(next)[0];
66
- const cNum = BigInt(Object.values(curr)[0]);
67
- const nNum = BigInt(Object.values(next)[0]);
68
- if (cNum == 1) {
69
- if (nNum < 1000000) return { [nText]: nNum };
66
+ const cNumber = BigInt(Object.values(current)[0]);
67
+ const nNumber = BigInt(Object.values(next)[0]);
68
+ if (cNumber == 1) {
69
+ if (nNumber < 1_000_000) return { [nText]: nNumber };
70
70
  cText = 'un';
71
- } else if (cNum == 100 && nNum % 1000n != 0) {
71
+ } else if (cNumber == 100 && nNumber % 1000n != 0) {
72
72
  cText += 't' + this.genderStem;
73
73
  }
74
74
 
75
- if (nNum < cNum) {
76
- if (cNum < 100) {
77
- return { [`${cText} y ${nText}`]: cNum + nNum };
75
+ if (nNumber < cNumber) {
76
+ if (cNumber < 100) {
77
+ return { [`${cText} y ${nText}`]: cNumber + nNumber };
78
78
  }
79
- return { [`${cText} ${nText}`]: cNum + nNum };
80
- } else if (nNum % 1000000n == 0 && cNum > 1) {
79
+ return { [`${cText} ${nText}`]: cNumber + nNumber };
80
+ } else if (nNumber % 1_000_000n == 0 && cNumber > 1) {
81
81
  nText = nText.slice(0, -3) + 'lones';
82
82
  }
83
83
 
84
- if (nNum == 100) {
85
- if (cNum == 5) {
84
+ if (nNumber == 100) {
85
+ if (cNumber == 5) {
86
86
  cText = 'quinien';
87
87
  nText = '';
88
- } else if (cNum == 7) {
88
+ } else if (cNumber == 7) {
89
89
  cText = 'sete';
90
- } else if (cNum == 9) {
90
+ } else if (cNumber == 9) {
91
91
  cText = 'nove';
92
92
  }
93
93
  nText += 't' + this.genderStem + 's';
94
94
  } else {
95
95
  nText = ' ' + nText;
96
96
  }
97
- return { [`${cText}${nText}`]: cNum * nNum };
97
+ return { [`${cText}${nText}`]: cNumber * nNumber };
98
98
  }
99
99
  }
100
100
 
@@ -102,9 +102,9 @@ export class N2WordsES extends BaseLanguage {
102
102
  * Converts a value to cardinal (written) form.
103
103
  * @param {number|string|bigint} value Number to be convert.
104
104
  * @param {object} [options] Options for class.
105
- * @throws {Error} Value cannot be invalid.
106
105
  * @returns {string} Value in cardinal (written) format.
106
+ * @throws {Error} Value cannot be invalid.
107
107
  */
108
- export default function (value, options = {}) {
108
+ export default function floatToCardinal (value, options = {}) {
109
109
  return new N2WordsES(options).floatToCardinal(value);
110
110
  }
package/lib/i18n/fa.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsFA extends AbstractLanguage {
10
10
  constructor(options: any);
11
11
  namedNumbers: {
@@ -51,4 +51,4 @@ export class N2WordsFA extends AbstractLanguage {
51
51
  };
52
52
  toCardinal(number: any): any;
53
53
  }
54
- import AbstractLanguage from '../classes/AbstractLanguage.js';
54
+ import AbstractLanguage from '../classes/abstract-language.js';
package/lib/i18n/fa.js CHANGED
@@ -1,4 +1,4 @@
1
- import AbstractLanguage from '../classes/AbstractLanguage.js';
1
+ import AbstractLanguage from '../classes/abstract-language.js';
2
2
 
3
3
  export class N2WordsFA extends AbstractLanguage {
4
4
  namedNumbers = {
@@ -40,7 +40,7 @@ export class N2WordsFA extends AbstractLanguage {
40
40
  800: 'هشتصد',
41
41
  900: 'نهصد',
42
42
  1000: 'هزار',
43
- 1000000: 'میلیون',
43
+ 1_000_000: 'میلیون',
44
44
  };
45
45
 
46
46
  constructor(options) {
@@ -70,7 +70,7 @@ export class N2WordsFA extends AbstractLanguage {
70
70
  return `${this.namedNumbers[xhundred]} و ${tail}`;
71
71
  }
72
72
 
73
- if (number > 1000n && number < 1000000n) {
73
+ if (number > 1000n && number < 1_000_000n) {
74
74
  let thousandMultiplier = number / 1000n;
75
75
  let namedThousandMultiplier =
76
76
  (thousandMultiplier == 1n
@@ -83,11 +83,11 @@ export class N2WordsFA extends AbstractLanguage {
83
83
  return `${namedThousandMultiplier}${tail}`;
84
84
  }
85
85
 
86
- if (number > 1000000n) {
87
- let millionMultiplier = number / 1000000n;
86
+ if (number > 1_000_000n) {
87
+ let millionMultiplier = number / 1_000_000n;
88
88
  let namedMillion =
89
- this.toCardinal(millionMultiplier) + ' ' + this.namedNumbers[1000000];
90
- let tailNumber = number - millionMultiplier * 1000000n;
89
+ this.toCardinal(millionMultiplier) + ' ' + this.namedNumbers[1_000_000];
90
+ let tailNumber = number - millionMultiplier * 1_000_000n;
91
91
  let tail = tailNumber == 0n ? '' : ' و ' + this.toCardinal(tailNumber);
92
92
  return `${namedMillion}${tail}`;
93
93
  }
@@ -98,9 +98,9 @@ export class N2WordsFA extends AbstractLanguage {
98
98
  * Converts a value to cardinal (written) form.
99
99
  * @param {number|string|bigint} value Number to be convert.
100
100
  * @param {object} [options] Options for class.
101
- * @throws {Error} Value cannot be invalid.
102
101
  * @returns {string} Value in cardinal (written) format.
102
+ * @throws {Error} Value cannot be invalid.
103
103
  */
104
- export default function (value, options = {}) {
104
+ export default function floatToCardinal (value, options = {}) {
105
105
  return new N2WordsFA(options).floatToCardinal(value);
106
106
  }
@@ -2,10 +2,10 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsFRBE extends N2WordsFR {
10
10
  }
11
11
  import { N2WordsFR } from './fr.js';
package/lib/i18n/fr-BE.js CHANGED
@@ -12,9 +12,9 @@ export class N2WordsFRBE extends N2WordsFR {
12
12
  * Converts a value to cardinal (written) form.
13
13
  * @param {number|string|bigint} value Number to be convert.
14
14
  * @param {object} [options] Options for class.
15
- * @throws {Error} Value cannot be invalid.
16
15
  * @returns {string} Value in cardinal (written) format.
16
+ * @throws {Error} Value cannot be invalid.
17
17
  */
18
- export default function (value, options = {}) {
18
+ export default function floatToCardinal (value, options = {}) {
19
19
  return new N2WordsFRBE(options).floatToCardinal(value);
20
20
  }
package/lib/i18n/fr.d.ts CHANGED
@@ -2,14 +2,14 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsFR extends BaseLanguage {
10
10
  constructor(options: any);
11
- merge(curr: any, next: any): {
11
+ merge(current: any, next: any): {
12
12
  [x: string]: bigint;
13
13
  };
14
14
  }
15
- import BaseLanguage from '../classes/BaseLanguage.js';
15
+ import BaseLanguage from '../classes/base-language.js';
package/lib/i18n/fr.js CHANGED
@@ -1,4 +1,4 @@
1
- import BaseLanguage from '../classes/BaseLanguage.js';
1
+ import BaseLanguage from '../classes/base-language.js';
2
2
 
3
3
  export class N2WordsFR extends BaseLanguage {
4
4
  constructor(options) {
@@ -10,14 +10,14 @@ export class N2WordsFR extends BaseLanguage {
10
10
  }, options);
11
11
 
12
12
  super(options, [
13
- [1000000000000000000000000000n, 'quadrilliard'],
14
- [1000000000000000000000000n, 'quadrillion'],
15
- [1000000000000000000000n, 'trilliard'],
16
- [1000000000000000000n, 'trillion'],
17
- [1000000000000000n, 'billiard'],
18
- [1000000000000n, 'billion'],
19
- [1000000000n, 'milliard'],
20
- [1000000n, 'million'],
13
+ [1_000_000_000_000_000_000_000_000_000n, 'quadrilliard'],
14
+ [1_000_000_000_000_000_000_000_000n, 'quadrillion'],
15
+ [1_000_000_000_000_000_000_000n, 'trilliard'],
16
+ [1_000_000_000_000_000_000n, 'trillion'],
17
+ [1_000_000_000_000_000n, 'billiard'],
18
+ [1_000_000_000_000n, 'billion'],
19
+ [1_000_000_000n, 'milliard'],
20
+ [1_000_000n, 'million'],
21
21
  [1000n, 'mille'],
22
22
  [100n, 'cent'],
23
23
  ...(['BE'].includes(options._region) ? [[90n, 'nonante']] : []),
@@ -51,37 +51,37 @@ export class N2WordsFR extends BaseLanguage {
51
51
  ]);
52
52
  }
53
53
 
54
- merge(curr, next) { // {'cent':100}, {'vingt-cinq':25}
55
- let cText = Object.keys(curr)[0];
54
+ merge(current, next) { // {'cent':100}, {'vingt-cinq':25}
55
+ let cText = Object.keys(current)[0];
56
56
  let nText = Object.keys(next)[0];
57
- const cNum = BigInt(Object.values(curr)[0]);
58
- const nNum = BigInt(Object.values(next)[0]);
59
- if (cNum == 1) {
60
- if (nNum < 1000000) {
61
- return { [nText]: nNum };
57
+ const cNumber = BigInt(Object.values(current)[0]);
58
+ const nNumber = BigInt(Object.values(next)[0]);
59
+ if (cNumber == 1) {
60
+ if (nNumber < 1_000_000) {
61
+ return { [nText]: nNumber };
62
62
  }
63
63
  } else {
64
64
  if (
65
- ((cNum - 80n) % 100n == 0 || (cNum % 100n == 0 && cNum < 1000)) &&
66
- nNum < 1000000 &&
67
- cText[cText.length - 1] == 's'
65
+ ((cNumber - 80n) % 100n == 0 || (cNumber % 100n == 0 && cNumber < 1000)) &&
66
+ nNumber < 1_000_000 &&
67
+ cText.at(-1) == 's'
68
68
  ) {
69
69
  cText = cText.slice(0, -1); // without last elem
70
70
  }
71
71
  if (
72
- cNum < 1000 && nNum != 1000 &&
73
- nText[nText.length - 1] != 's' &&
74
- nNum % 100n == 0
72
+ cNumber < 1000 && nNumber != 1000 &&
73
+ nText.at(-1) != 's' &&
74
+ nNumber % 100n == 0
75
75
  ) {
76
76
  nText += 's';
77
77
  }
78
78
  }
79
- if (nNum < cNum && cNum < 100) {
80
- if (nNum % 10n == 1 && cNum != 80) return { [`${cText} et ${nText}`]: cNum + nNum };
81
- return { [`${cText}-${nText}`]: cNum + nNum };
79
+ if (nNumber < cNumber && cNumber < 100) {
80
+ if (nNumber % 10n == 1 && cNumber != 80) return { [`${cText} et ${nText}`]: cNumber + nNumber };
81
+ return { [`${cText}-${nText}`]: cNumber + nNumber };
82
82
  }
83
- if (nNum > cNum) return { [`${cText} ${nText}`]: cNum * nNum };
84
- return { [`${cText} ${nText}`]: cNum + nNum };
83
+ if (nNumber > cNumber) return { [`${cText} ${nText}`]: cNumber * nNumber };
84
+ return { [`${cText} ${nText}`]: cNumber + nNumber };
85
85
  }
86
86
  }
87
87
 
@@ -89,9 +89,9 @@ export class N2WordsFR extends BaseLanguage {
89
89
  * Converts a value to cardinal (written) form.
90
90
  * @param {number|string|bigint} value Number to be convert.
91
91
  * @param {object} [options] Options for class.
92
- * @throws {Error} Value cannot be invalid.
93
92
  * @returns {string} Value in cardinal (written) format.
93
+ * @throws {Error} Value cannot be invalid.
94
94
  */
95
- export default function (value, options = {}) {
95
+ export default function floatToCardinal (value, options = {}) {
96
96
  return new N2WordsFR(options).floatToCardinal(value);
97
97
  }
package/lib/i18n/he.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsHE extends N2WordsRU {
10
10
  and: any;
11
11
  ones: {
package/lib/i18n/he.js CHANGED
@@ -58,10 +58,8 @@ export class N2WordsHE extends N2WordsRU {
58
58
  };
59
59
 
60
60
  constructor(options) {
61
- /**
62
- * @todo Confirm `negativeWord`
63
- * @todo Set `separatorWord`
64
- */
61
+ // TODO Confirm `negativeWord`
62
+ // TODO Set `separatorWord`
65
63
  options = Object.assign({
66
64
  negativeWord: 'מינוס',
67
65
  //separatorWord: ,
@@ -80,17 +78,16 @@ export class N2WordsHE extends N2WordsRU {
80
78
  }
81
79
  const words = [];
82
80
  const chunks = this.splitByX(number.toString(), 3);
83
- let i = chunks.length;
84
- for (let j = 0; j < chunks.length; j++) {
85
- const x = chunks[j];
86
- i = i - 1;
81
+ let index = chunks.length;
82
+ for (const x of chunks) {
83
+ index = index - 1;
87
84
  if (x == 0) {
88
85
  continue;
89
86
  }
90
87
 
91
88
  const [n1, n2, n3] = this.getDigits(x);
92
89
 
93
- if (i > 0) {
90
+ if (index > 0) {
94
91
  words.push(this.thousands[n1]);
95
92
  continue;
96
93
  }
@@ -116,7 +113,7 @@ export class N2WordsHE extends N2WordsRU {
116
113
  }
117
114
 
118
115
  if (words.length > 1) {
119
- words[words.length - 1] = this.and + words[words.length - 1];
116
+ words[words.length - 1] = this.and + words.at(-1);
120
117
  }
121
118
 
122
119
  return words.join(' ');
@@ -127,9 +124,9 @@ export class N2WordsHE extends N2WordsRU {
127
124
  * Converts a value to cardinal (written) form.
128
125
  * @param {number|string|bigint} value Number to be convert.
129
126
  * @param {object} [options] Options for class.
130
- * @throws {Error} Value cannot be invalid.
131
127
  * @returns {string} Value in cardinal (written) format.
128
+ * @throws {Error} Value cannot be invalid.
132
129
  */
133
- export default function (value, options = {}) {
130
+ export default function floatToCardinal (value, options = {}) {
134
131
  return new N2WordsHE(options).floatToCardinal(value);
135
132
  }
package/lib/i18n/hr.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsHR extends N2WordsRU {
10
10
  ones: {
11
11
  1: string[];
package/lib/i18n/hr.js CHANGED
@@ -91,10 +91,9 @@ export class N2WordsHR extends N2WordsRU {
91
91
  }
92
92
  const words = [];
93
93
  const chunks = this.splitByX(number.toString(), 3);
94
- let i = chunks.length;
95
- for (let j = 0; j < chunks.length; j++) {
96
- const x = chunks[j];
97
- i = i - 1;
94
+ let index = chunks.length;
95
+ for (const x of chunks) {
96
+ index = index - 1;
98
97
  // if (x == 0) { continue; }
99
98
  const [n1, n2, n3] = this.getDigits(x);
100
99
  if (n3 > 0) {
@@ -106,12 +105,12 @@ export class N2WordsHR extends N2WordsRU {
106
105
  if (n2 == 1) {
107
106
  words.push(this.tens[n1]);
108
107
  } else if (n1 > 0) {
109
- const isFeminine = (this.feminine || this.SCALE[i][3]);
110
- const genderIdx = isFeminine ? 1 : 0;
111
- words.push(this.ones[n1][genderIdx]);
108
+ const isFeminine = (this.feminine || this.SCALE[index][3]);
109
+ const genderIndex = isFeminine ? 1 : 0;
110
+ words.push(this.ones[n1][genderIndex]);
112
111
  }
113
- if ((i > 0) && (x != 0)) {
114
- words.push(this.pluralize(x, this.SCALE[i]));
112
+ if ((index > 0) && (x != 0)) {
113
+ words.push(this.pluralize(x, this.SCALE[index]));
115
114
  }
116
115
  }
117
116
  return words.join(' ');
@@ -122,9 +121,9 @@ export class N2WordsHR extends N2WordsRU {
122
121
  * Converts a value to cardinal (written) form.
123
122
  * @param {number|string|bigint} value Number to be convert.
124
123
  * @param {object} [options] Options for class.
125
- * @throws {Error} Value cannot be invalid.
126
124
  * @returns {string} Value in cardinal (written) format.
125
+ * @throws {Error} Value cannot be invalid.
127
126
  */
128
- export default function (value, options = {}) {
127
+ export default function floatToCardinal (value, options = {}) {
129
128
  return new N2WordsHR(options).floatToCardinal(value);
130
129
  }
package/lib/i18n/hu.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsHU extends BaseLanguage {
10
10
  constructor(options: any);
11
11
  tensToCardinal(number: any): string;
@@ -14,4 +14,4 @@ export class N2WordsHU extends BaseLanguage {
14
14
  bigNumberToCardinal(number: any): string;
15
15
  toCardinal(number: any, zero?: string): string;
16
16
  }
17
- import BaseLanguage from '../classes/BaseLanguage.js';
17
+ import BaseLanguage from '../classes/base-language.js';
package/lib/i18n/hu.js CHANGED
@@ -1,4 +1,4 @@
1
- import BaseLanguage from '../classes/BaseLanguage.js';
1
+ import BaseLanguage from '../classes/base-language.js';
2
2
 
3
3
  export class N2WordsHU extends BaseLanguage {
4
4
  constructor(options) {
@@ -9,14 +9,14 @@ export class N2WordsHU extends BaseLanguage {
9
9
  }, options);
10
10
 
11
11
  super(options, [
12
- [1000000000000000000000000000n, 'quadrilliárd'],
13
- [1000000000000000000000000n, 'quadrillió'],
14
- [1000000000000000000000n, 'trilliárd'],
15
- [1000000000000000000n, 'trillió'],
16
- [1000000000000000n, 'billiárd'],
17
- [1000000000000n, 'billió'],
18
- [1000000000n, 'milliárd'],
19
- [1000000n, 'millió'],
12
+ [1_000_000_000_000_000_000_000_000_000n, 'quadrilliárd'],
13
+ [1_000_000_000_000_000_000_000_000n, 'quadrillió'],
14
+ [1_000_000_000_000_000_000_000n, 'trilliárd'],
15
+ [1_000_000_000_000_000_000n, 'trillió'],
16
+ [1_000_000_000_000_000n, 'billiárd'],
17
+ [1_000_000_000_000n, 'billió'],
18
+ [1_000_000_000n, 'milliárd'],
19
+ [1_000_000n, 'millió'],
20
20
  [1000n, 'ezer'],
21
21
  [100n, 'száz'],
22
22
  [90n, 'kilencven'],
@@ -92,11 +92,11 @@ export class N2WordsHU extends BaseLanguage {
92
92
 
93
93
  bigNumberToCardinal(number) {
94
94
  const numberLength = number.toString().length;
95
- let digits = (numberLength % 3 !== 0) ? numberLength : numberLength - 2;
95
+ let digits = (numberLength % 3 === 0) ? numberLength - 2 : numberLength;
96
96
  let exp = 10 ** (Math.floor(digits / 3) * 3);
97
97
  let prefix = this.toCardinal(number / BigInt(exp), '');
98
98
  let rest = this.toCardinal(number % BigInt(exp), '');
99
- let postfix = (rest !== '') ? ('-' + rest) : '';
99
+ let postfix = (rest === '') ? '' : ('-' + rest);
100
100
  return prefix + this.getCardWord(exp) + postfix;
101
101
  }
102
102
 
@@ -113,7 +113,7 @@ export class N2WordsHU extends BaseLanguage {
113
113
  words = this.tensToCardinal(Number(number));
114
114
  } else if (number < 1000n) {
115
115
  words = this.hundredsToCardinal(Number(number));
116
- } else if (number < 1000000n) {
116
+ } else if (number < 1_000_000n) {
117
117
  words = this.thousandsToCardinal(Number(number));
118
118
  } else {
119
119
  words = this.bigNumberToCardinal(number);
@@ -127,9 +127,9 @@ export class N2WordsHU extends BaseLanguage {
127
127
  * Converts a value to cardinal (written) form.
128
128
  * @param {number|string|bigint} value Number to be convert.
129
129
  * @param {object} [options] Options for class.
130
- * @throws {Error} Value cannot be invalid.
131
130
  * @returns {string} Value in cardinal (written) format.
131
+ * @throws {Error} Value cannot be invalid.
132
132
  */
133
- export default function (value, options = {}) {
133
+ export default function floatToCardinal (value, options = {}) {
134
134
  return new N2WordsHU(options).floatToCardinal(value);
135
135
  }
package/lib/i18n/id.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * Converts a value to cardinal (written) form.
3
3
  * @param {number|string|bigint} value Number to be convert.
4
4
  * @param {object} [options] Options for class.
5
- * @throws {Error} Value cannot be invalid.
6
5
  * @returns {string} Value in cardinal (written) format.
6
+ * @throws {Error} Value cannot be invalid.
7
7
  */
8
- export default function _default(value: number | string | bigint, options?: object): string;
8
+ export default function floatToCardinal(value: number | string | bigint, options?: object): string;
9
9
  export class N2WordsID extends AbstractLanguage {
10
10
  constructor(options: any);
11
11
  base: {
@@ -35,9 +35,9 @@ export class N2WordsID extends AbstractLanguage {
35
35
  };
36
36
  splitBy3(number: any): any[][];
37
37
  spell(blocks: any): any[];
38
- getHundreds(number: any): any;
38
+ getHundreds(number: any): any[];
39
39
  getTens(number: any): any;
40
40
  join(wordBlocks: any): string;
41
41
  toCardinal(number: any): string;
42
42
  }
43
- import AbstractLanguage from '../classes/AbstractLanguage.js';
43
+ import AbstractLanguage from '../classes/abstract-language.js';