isaacscript-common 9.13.0 → 9.13.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/functions/set.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/functions/set.ts"],"names":[],"mappings":";;AAIA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EACf,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAC3C,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GACtC,GAAG,CAAC,CAAC,CAAC,CASR;AAED,mGAAmG;AACnG,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAOlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EACf,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAC9C,IAAI,CAMN;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAC5B,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAO,GAClC,CAAC,CAGH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAC5B,iBAAiB,EAAE,OAAO,GACzB,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAK/B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAkBvE;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAGrE"}
|
package/dist/functions/set.lua
CHANGED
|
@@ -12,6 +12,8 @@ local getRandomArrayElement = ____array.getRandomArrayElement
|
|
|
12
12
|
local sumArray = ____array.sumArray
|
|
13
13
|
local ____rng = require("functions.rng")
|
|
14
14
|
local getRandomSeed = ____rng.getRandomSeed
|
|
15
|
+
local ____types = require("functions.types")
|
|
16
|
+
local isPrimitive = ____types.isPrimitive
|
|
15
17
|
--- Helper function to get a sorted array based on the contents of a set.
|
|
16
18
|
--
|
|
17
19
|
-- Normally, set values are returned in a random order, so use this function when the ordering of
|
|
@@ -19,6 +21,13 @@ local getRandomSeed = ____rng.getRandomSeed
|
|
|
19
21
|
function ____exports.getSortedSetValues(self, set)
|
|
20
22
|
local values = set:values()
|
|
21
23
|
local array = {__TS__Spread(values)}
|
|
24
|
+
local firstElement = array[1]
|
|
25
|
+
if firstElement ~= nil then
|
|
26
|
+
local arrayType = type(firstElement)
|
|
27
|
+
if not isPrimitive(nil, arrayType) then
|
|
28
|
+
error(("Failed to get the sorted set values because the provided set was of type \"" .. tostring(arrayType)) .. "\". Having sets with non-primitive types doesn't make much sense in general, so you might need to rethink what you are doing.")
|
|
29
|
+
end
|
|
30
|
+
end
|
|
22
31
|
__TS__ArraySort(array)
|
|
23
32
|
return array
|
|
24
33
|
end
|
package/package.json
CHANGED
package/src/functions/set.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getArrayCombinations, getRandomArrayElement, sumArray } from "./array";
|
|
2
2
|
import { getRandomSeed } from "./rng";
|
|
3
|
+
import { isPrimitive } from "./types";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Helper function to add all of the values in one set to another set. The first set passed will be
|
|
@@ -118,6 +119,18 @@ export function getSetCombinations<T>(
|
|
|
118
119
|
export function getSortedSetValues<T>(set: Set<T> | ReadonlySet<T>): T[] {
|
|
119
120
|
const values = set.values();
|
|
120
121
|
const array = [...values];
|
|
122
|
+
|
|
123
|
+
// Check for problematic types in order to throw a helpful error message.
|
|
124
|
+
const firstElement = array[0];
|
|
125
|
+
if (firstElement !== undefined) {
|
|
126
|
+
const arrayType = type(firstElement);
|
|
127
|
+
if (!isPrimitive(arrayType)) {
|
|
128
|
+
error(
|
|
129
|
+
`Failed to get the sorted set values because the provided set was of type "${arrayType}". Having sets with non-primitive types doesn't make much sense in general, so you might need to rethink what you are doing.`,
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
121
134
|
array.sort();
|
|
122
135
|
|
|
123
136
|
return array;
|