isaacscript-common 30.12.6 → 30.12.8

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,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 30.12.6
3
+ isaacscript-common 30.12.8
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -16650,15 +16650,16 @@ local __TS__Iterator = ____lualib.__TS__Iterator
16650
16650
  local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
16651
16651
  local __TS__ArraySort = ____lualib.__TS__ArraySort
16652
16652
  local __TS__ArrayMap = ____lualib.__TS__ArrayMap
16653
+ local __TS__ArrayUnshift = ____lualib.__TS__ArrayUnshift
16653
16654
  local __TS__ArraySlice = ____lualib.__TS__ArraySlice
16654
16655
  local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
16655
16656
  local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
16656
16657
  local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
16657
- local __TS__ArrayUnshift = ____lualib.__TS__ArrayUnshift
16658
16658
  local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
16659
16659
  local __TS__ArraySome = ____lualib.__TS__ArraySome
16660
16660
  local __TS__ArrayReduce = ____lualib.__TS__ArrayReduce
16661
16661
  local ____exports = {}
16662
+ local addCombinations
16662
16663
  local ____ReadonlySet = require("src.types.ReadonlySet")
16663
16664
  local ReadonlySet = ____ReadonlySet.ReadonlySet
16664
16665
  local ____random = require("src.functions.random")
@@ -16715,6 +16716,30 @@ function ____exports.copyArray(self, oldArray, numElements)
16715
16716
  end
16716
16717
  return newArrayWithFirstNElements
16717
16718
  end
16719
+ function addCombinations(self, n, src, got, all)
16720
+ if n == 0 then
16721
+ if #got > 0 then
16722
+ all[#all + 1] = got
16723
+ end
16724
+ return
16725
+ end
16726
+ for ____, ____value in __TS__Iterator(__TS__ArrayEntries(src)) do
16727
+ local i = ____value[1]
16728
+ local element = ____value[2]
16729
+ local ____addCombinations_3 = addCombinations
16730
+ local ____temp_1 = n - 1
16731
+ local ____TS__ArraySlice_result_2 = __TS__ArraySlice(src, i + 1)
16732
+ local ____array_0 = __TS__SparseArrayNew(table.unpack(got))
16733
+ __TS__SparseArrayPush(____array_0, element)
16734
+ ____addCombinations_3(
16735
+ nil,
16736
+ ____temp_1,
16737
+ ____TS__ArraySlice_result_2,
16738
+ {__TS__SparseArraySpread(____array_0)},
16739
+ all
16740
+ )
16741
+ end
16742
+ end
16718
16743
  function ____exports.getRandomArrayIndex(self, array, seedOrRNG, exceptions)
16719
16744
  if seedOrRNG == nil then
16720
16745
  seedOrRNG = getRandomSeed(nil)
@@ -16836,33 +16861,6 @@ function ____exports.getArrayCombinations(self, array, includeEmptyArray, min, m
16836
16861
  if max == nil or max <= 0 then
16837
16862
  max = #array
16838
16863
  end
16839
- local addCombinations
16840
- addCombinations = function(____, n, src, got, all)
16841
- if n == 0 then
16842
- if #got > 0 then
16843
- all[#all + 1] = got
16844
- end
16845
- return
16846
- end
16847
- do
16848
- local j = 0
16849
- while j < #src do
16850
- local value = src[j + 1]
16851
- local ____temp_1 = n - 1
16852
- local ____TS__ArraySlice_result_2 = __TS__ArraySlice(src, j + 1)
16853
- local ____array_0 = __TS__SparseArrayNew(table.unpack(got))
16854
- __TS__SparseArrayPush(____array_0, value)
16855
- addCombinations(
16856
- nil,
16857
- ____temp_1,
16858
- ____TS__ArraySlice_result_2,
16859
- {__TS__SparseArraySpread(____array_0)},
16860
- all
16861
- )
16862
- j = j + 1
16863
- end
16864
- end
16865
- end
16866
16864
  local all = {}
16867
16865
  do
16868
16866
  local i = min
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/functions/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/functions/array.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,16 @@ local __TS__Iterator = ____lualib.__TS__Iterator
8
8
  local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
9
9
  local __TS__ArraySort = ____lualib.__TS__ArraySort
10
10
  local __TS__ArrayMap = ____lualib.__TS__ArrayMap
11
+ local __TS__ArrayUnshift = ____lualib.__TS__ArrayUnshift
11
12
  local __TS__ArraySlice = ____lualib.__TS__ArraySlice
12
13
  local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
13
14
  local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
14
15
  local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
15
- local __TS__ArrayUnshift = ____lualib.__TS__ArrayUnshift
16
16
  local __TS__ObjectKeys = ____lualib.__TS__ObjectKeys
17
17
  local __TS__ArraySome = ____lualib.__TS__ArraySome
18
18
  local __TS__ArrayReduce = ____lualib.__TS__ArrayReduce
19
19
  local ____exports = {}
20
+ local addCombinations
20
21
  local ____ReadonlySet = require("src.types.ReadonlySet")
21
22
  local ReadonlySet = ____ReadonlySet.ReadonlySet
22
23
  local ____random = require("src.functions.random")
@@ -98,6 +99,30 @@ function ____exports.copyArray(self, oldArray, numElements)
98
99
  end
99
100
  return newArrayWithFirstNElements
100
101
  end
102
+ function addCombinations(self, n, src, got, all)
103
+ if n == 0 then
104
+ if #got > 0 then
105
+ all[#all + 1] = got
106
+ end
107
+ return
108
+ end
109
+ for ____, ____value in __TS__Iterator(__TS__ArrayEntries(src)) do
110
+ local i = ____value[1]
111
+ local element = ____value[2]
112
+ local ____addCombinations_3 = addCombinations
113
+ local ____temp_1 = n - 1
114
+ local ____TS__ArraySlice_result_2 = __TS__ArraySlice(src, i + 1)
115
+ local ____array_0 = __TS__SparseArrayNew(table.unpack(got))
116
+ __TS__SparseArrayPush(____array_0, element)
117
+ ____addCombinations_3(
118
+ nil,
119
+ ____temp_1,
120
+ ____TS__ArraySlice_result_2,
121
+ {__TS__SparseArraySpread(____array_0)},
122
+ all
123
+ )
124
+ end
125
+ end
101
126
  --- Helper function to get a random index from the provided array.
102
127
  --
103
128
  -- @param array The array to get the index from.
@@ -294,33 +319,6 @@ function ____exports.getArrayCombinations(self, array, includeEmptyArray, min, m
294
319
  if max == nil or max <= 0 then
295
320
  max = #array
296
321
  end
297
- local addCombinations
298
- addCombinations = function(____, n, src, got, all)
299
- if n == 0 then
300
- if #got > 0 then
301
- all[#all + 1] = got
302
- end
303
- return
304
- end
305
- do
306
- local j = 0
307
- while j < #src do
308
- local value = src[j + 1]
309
- local ____temp_1 = n - 1
310
- local ____TS__ArraySlice_result_2 = __TS__ArraySlice(src, j + 1)
311
- local ____array_0 = __TS__SparseArrayNew(table.unpack(got))
312
- __TS__SparseArrayPush(____array_0, value)
313
- addCombinations(
314
- nil,
315
- ____temp_1,
316
- ____TS__ArraySlice_result_2,
317
- {__TS__SparseArraySpread(____array_0)},
318
- all
319
- )
320
- j = j + 1
321
- end
322
- end
323
- end
324
322
  local all = {}
325
323
  do
326
324
  local i = min
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "30.12.6",
3
+ "version": "30.12.8",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -21,10 +21,10 @@
21
21
  },
22
22
  "license": "GPL-3.0",
23
23
  "author": "Zamiell",
24
- "type": "module",
24
+ "type": "commonjs",
25
25
  "main": "dist/src/index",
26
26
  "types": "dist/index.rollup.d.ts",
27
27
  "dependencies": {
28
- "isaac-typescript-definitions": "^13.0.17"
28
+ "isaac-typescript-definitions": "^13.0.21"
29
29
  }
30
30
  }
@@ -269,26 +269,6 @@ export function getArrayCombinations<T>(
269
269
  max = array.length;
270
270
  }
271
271
 
272
- const addCombinations = (
273
- n: number,
274
- src: T[] | readonly T[],
275
- got: T[],
276
- all: Array<T[] | readonly T[]>,
277
- ) => {
278
- if (n === 0) {
279
- if (got.length > 0) {
280
- all[all.length] = got;
281
- }
282
-
283
- return;
284
- }
285
-
286
- for (let j = 0; j < src.length; j++) {
287
- const value = src[j]!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
288
- addCombinations(n - 1, src.slice(j + 1), [...got, value], all);
289
- }
290
- };
291
-
292
272
  const all: Array<T[] | readonly T[]> = [];
293
273
  for (let i = min; i < array.length; i++) {
294
274
  addCombinations(i, array, [], all);
@@ -305,6 +285,25 @@ export function getArrayCombinations<T>(
305
285
  return all;
306
286
  }
307
287
 
288
+ function addCombinations<T>(
289
+ n: number,
290
+ src: T[] | readonly T[],
291
+ got: T[],
292
+ all: Array<T[] | readonly T[]>,
293
+ ) {
294
+ if (n === 0) {
295
+ if (got.length > 0) {
296
+ all[all.length] = got;
297
+ }
298
+
299
+ return;
300
+ }
301
+
302
+ for (const [i, element] of src.entries()) {
303
+ addCombinations(n - 1, src.slice(i + 1), [...got, element], all);
304
+ }
305
+ }
306
+
308
307
  /**
309
308
  * Helper function to get an array containing the indexes of an array.
310
309
  *