@rbxts/abbreviate 3.0.0 → 3.0.4
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.
- package/README.md +15 -4
- package/package.json +37 -38
- package/src/commify.lua +1 -1
- package/src/init.lua +1 -1
- package/src/numberToString.lua +9 -9
- package/src/numbersToSortedString.lua +2 -2
- package/src/setSetting.lua +1 -1
- package/src/stringToNumber.lua +1 -1
package/README.md
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
## Example Usage
|
|
9
9
|
```typescript
|
|
10
|
-
import
|
|
10
|
+
import Abbreviator from "@rbxts/abbreviate";
|
|
11
11
|
|
|
12
|
-
const abbreviator =
|
|
12
|
+
const abbreviator = new Abbreviator();
|
|
13
13
|
abbreviator.setSetting('suffixTable', ['k', 'm', 'b']);
|
|
14
14
|
abbreviator.setSetting('decimalPlaces', 2);
|
|
15
15
|
|
|
@@ -30,7 +30,7 @@ The possible settings you can set are the following:
|
|
|
30
30
|
|---|---|---|---|---|
|
|
31
31
|
| suffixTable | Array\<string\> | Sets the suffix table to be used when using `numberToString` | [here](https://github.com/OverHash/Roblox-TS-Libraries/blob/master/abbreviate/init.lua#L1-L52) | <pre lang="ts">["k", "m", "b"] |
|
|
32
32
|
| decimalPlaces | number | Sets the amount of decimal places a number may have when using `numberToString` | 2 | 4 |
|
|
33
|
-
|
|
|
33
|
+
| stripTrailingZeroes | boolean | Removes any extra zeroes after a decimal place that are dangling after `numberToString` calls. E.g. `"52506.004"` => `"5.2506k"` | false | `true`
|
|
34
34
|
|
|
35
35
|
## Why make `Abbreviator` a class?
|
|
36
36
|
You may want multiple abbreviators throughout your game with different settings, i.e. one module may want only 2 d.p. while another may want 0 d.p
|
|
@@ -39,9 +39,19 @@ The settings of this abbreviator is independent of other abbreviators.
|
|
|
39
39
|
|
|
40
40
|
## Changelog
|
|
41
41
|
|
|
42
|
+
### 3.0.3
|
|
43
|
+
- Fixed `stripTrailingZeroes` incorrectly showing as `removeDanglingZeroes` in `README.md`
|
|
44
|
+
|
|
45
|
+
### 3.0.2
|
|
46
|
+
- Added setting default and setting example for `stripTrailingZeroes`
|
|
47
|
+
|
|
48
|
+
### 3.0.1
|
|
49
|
+
- Fixed `README.md` example being outdated
|
|
50
|
+
- Added `Scyfren` to contributors
|
|
51
|
+
|
|
42
52
|
### 3.0.0
|
|
43
53
|
- Changed the method to create an abbreviator from `createAbbreviator()` to `abbreviator.new()` (`new Abbreviator()` in TypeScript)
|
|
44
|
-
- Added option `
|
|
54
|
+
- Added option `stripTrailingZeroes`
|
|
45
55
|
- Fixed some bugs regarding settings changes
|
|
46
56
|
- Slight speed improvements
|
|
47
57
|
|
|
@@ -85,3 +95,4 @@ The settings of this abbreviator is independent of other abbreviators.
|
|
|
85
95
|
## Credits
|
|
86
96
|
[Kampfkarren](http://github.com/Kampfkarren/) - `numberToString` method
|
|
87
97
|
[Corecii](https://github.com/Corecii) - Help with `numbersToSortedString`
|
|
98
|
+
[Scyfren](https://github.com/Scyfren) - Help with `stripTrailingZeroes`
|
package/package.json
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
]
|
|
2
|
+
"name": "@rbxts/abbreviate",
|
|
3
|
+
"version": "3.0.4",
|
|
4
|
+
"description": "A lightweight number abbreviator",
|
|
5
|
+
"main": "src/init.lua",
|
|
6
|
+
"types": "src/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/OverHash/Roblox-TS-Libraries/tree/master/abbreviate"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"abbreviate",
|
|
16
|
+
"roblox",
|
|
17
|
+
"roblox-ts",
|
|
18
|
+
"roblox-typescript",
|
|
19
|
+
"number"
|
|
20
|
+
],
|
|
21
|
+
"author": "OverHash",
|
|
22
|
+
"license": "mpl-2.0",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/OverHash/Roblox-TS-Libraries/issues"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/OverHash/Roblox-TS-Libraries/blob/master/abbreviate/README.md",
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"src/init.lua",
|
|
32
|
+
"src/index.d.ts",
|
|
33
|
+
"src/commify.lua",
|
|
34
|
+
"src/numbersToSortedString.lua",
|
|
35
|
+
"src/numberToString.lua",
|
|
36
|
+
"src/setSetting.lua",
|
|
37
|
+
"src/stringToNumber.lua"
|
|
38
|
+
]
|
|
40
39
|
}
|
package/src/commify.lua
CHANGED
package/src/init.lua
CHANGED
package/src/numberToString.lua
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
local function round(number, decimalPlaces, roundDown)
|
|
2
|
-
number = number * 10^decimalPlaces
|
|
2
|
+
number = number * 10 ^ decimalPlaces
|
|
3
3
|
if roundDown then
|
|
4
|
-
return math.floor(number) / 10^decimalPlaces
|
|
4
|
+
return math.floor(number) / 10 ^ decimalPlaces
|
|
5
5
|
else
|
|
6
|
-
number = tonumber(
|
|
7
|
-
-- cast to string and back to number to
|
|
6
|
+
number = tonumber(string.format("%.14g", number))
|
|
7
|
+
-- cast to string and back to number to give some epsilon for floating point numbers
|
|
8
8
|
--[[ e.g.:
|
|
9
9
|
local number = 1005 / 10^3 * 10^2 + 0.5 -- 101
|
|
10
10
|
print(number, math.floor(number))
|
|
@@ -15,11 +15,11 @@ local function round(number, decimalPlaces, roundDown)
|
|
|
15
15
|
print(number, math.floor(number))
|
|
16
16
|
> 101 101
|
|
17
17
|
]]
|
|
18
|
-
return math.floor(number + 0.5) / 10^decimalPlaces
|
|
18
|
+
return math.floor(number + 0.5) / 10 ^ decimalPlaces
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
function numberToString(self, number, roundDown)
|
|
22
|
+
local function numberToString(self, number, roundDown)
|
|
23
23
|
if type(number) ~= "number" then
|
|
24
24
|
error('numberToString invalid parameter #1, expected number, got "nil"', 2)
|
|
25
25
|
end
|
|
@@ -31,9 +31,9 @@ function numberToString(self, number, roundDown)
|
|
|
31
31
|
if number < 1000 and number > -1000 then
|
|
32
32
|
-- special case: we must manually abbreviate numbers between -1000 and 1000
|
|
33
33
|
if not self._stripTrailingZeroes then
|
|
34
|
-
return ("%."..self._decimalPlaces.."f"):format(number)
|
|
34
|
+
return ("%." .. self._decimalPlaces .. "f"):format(number)
|
|
35
35
|
else
|
|
36
|
-
number = round(number, self._decimalPlaces)
|
|
36
|
+
number = round(number, self._decimalPlaces, roundDown)
|
|
37
37
|
return tostring(number)
|
|
38
38
|
end
|
|
39
39
|
end
|
|
@@ -54,7 +54,7 @@ function numberToString(self, number, roundDown)
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
if not self._stripTrailingZeroes then
|
|
57
|
-
number = ("%."..self._decimalPlaces.."f"):format(number)
|
|
57
|
+
number = ("%." .. self._decimalPlaces .. "f"):format(number)
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
number = number .. unit
|
|
@@ -46,7 +46,7 @@ local function round(number, decimalPlaces, roundDown)
|
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
function numbersToSortedString(self, numbers)
|
|
49
|
+
local function numbersToSortedString(self, numbers)
|
|
50
50
|
if not (numbers and type(numbers) == 'table') then
|
|
51
51
|
error('numbersToSortedString had invalid parameters.\nP1 - numbers: Array<number>', 2)
|
|
52
52
|
end
|
|
@@ -90,7 +90,7 @@ function numbersToSortedString(self, numbers)
|
|
|
90
90
|
local suffix = self._suffixTable[index]
|
|
91
91
|
|
|
92
92
|
local prefixed
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
if not self._stripTrailingZeroes then
|
|
95
95
|
prefixed = string.format('%.'..self._decimalPlaces..'f', numberData.value / shortenedNumber)
|
|
96
96
|
else
|
package/src/setSetting.lua
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function setSetting(self, settingName, settingValue)
|
|
1
|
+
local function setSetting(self, settingName, settingValue)
|
|
2
2
|
if not (settingName and settingValue ~= nil and type(settingName) == 'string') then
|
|
3
3
|
error('setSetting had invalid parameters.\nP1 - settingName: string\nP2 - settingValue: unknown', 2)
|
|
4
4
|
end
|
package/src/stringToNumber.lua
CHANGED