isaacscript-common 31.2.2 → 31.2.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/dist/index.rollup.d.ts +1 -1
- package/dist/isaacscript-common.lua +14 -1
- package/dist/src/functions/array.d.ts +1 -1
- package/dist/src/functions/array.d.ts.map +1 -1
- package/dist/src/types/TupleWithLengthBetween.lua +4 -0
- package/dist/src/types/TupleWithMaxLength.lua +9 -0
- package/package.json +1 -1
- package/src/functions/array.ts +1 -1
- package/src/types/TupleWithLengthBetween.ts +28 -0
- package/src/types/TupleWithMaxLength.ts +37 -0
package/dist/index.rollup.d.ts
CHANGED
|
@@ -4225,7 +4225,7 @@ export declare function filter<T>(array: T[], func: (value: T, index: number, ar
|
|
|
4225
4225
|
* This is named `filterMap` after the Rust function:
|
|
4226
4226
|
* https://doc.rust-lang.org/std/iter/struct.FilterMap.html
|
|
4227
4227
|
*/
|
|
4228
|
-
export declare function filterMap<OldT, NewT>(array: OldT[], func: (element: OldT) => NewT | undefined): NewT[];
|
|
4228
|
+
export declare function filterMap<OldT, NewT>(array: OldT[] | readonly OldT[], func: (element: OldT) => NewT | undefined): NewT[];
|
|
4229
4229
|
|
|
4230
4230
|
/**
|
|
4231
4231
|
* Helper function for non-TypeScript users to find an element in an array.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 31.2.
|
|
3
|
+
isaacscript-common 31.2.4
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -53866,10 +53866,23 @@ return ____exports
|
|
|
53866
53866
|
end,
|
|
53867
53867
|
["src.types.TupleWithLengthBetween"] = function(...)
|
|
53868
53868
|
local ____exports = {}
|
|
53869
|
+
local zeroOneTwo = {}
|
|
53870
|
+
local oneOneTwo = {"1"}
|
|
53871
|
+
local twoOneTwo = {"1", "2"}
|
|
53872
|
+
local threeOneTwo = {"1", "2", "3"}
|
|
53869
53873
|
return ____exports
|
|
53870
53874
|
end,
|
|
53871
53875
|
["src.types.TupleWithMaxLength"] = function(...)
|
|
53872
53876
|
local ____exports = {}
|
|
53877
|
+
local zeroZero = {}
|
|
53878
|
+
local oneZero = {"1"}
|
|
53879
|
+
local zeroOne = {}
|
|
53880
|
+
local oneOne = {"1"}
|
|
53881
|
+
local twoOne = {"1", "2"}
|
|
53882
|
+
local zeroTwo = {}
|
|
53883
|
+
local oneTwo = {"1"}
|
|
53884
|
+
local twoTwo = {"1", "2"}
|
|
53885
|
+
local threeTwo = {"1", "2", "3"}
|
|
53873
53886
|
return ____exports
|
|
53874
53887
|
end,
|
|
53875
53888
|
["src.types.UnionToIntersection"] = function(...)
|
|
@@ -104,7 +104,7 @@ export declare function emptyArray<T>(array: T[]): void;
|
|
|
104
104
|
* This is named `filterMap` after the Rust function:
|
|
105
105
|
* https://doc.rust-lang.org/std/iter/struct.FilterMap.html
|
|
106
106
|
*/
|
|
107
|
-
export declare function filterMap<OldT, NewT>(array: OldT[], func: (element: OldT) => NewT | undefined): NewT[];
|
|
107
|
+
export declare function filterMap<OldT, NewT>(array: OldT[] | readonly OldT[], func: (element: OldT) => NewT | undefined): NewT[];
|
|
108
108
|
/**
|
|
109
109
|
* Helper function to get all possible combinations of the given array. This includes the
|
|
110
110
|
* combination of an empty array.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/functions/array.ts"],"names":[],"mappings":";;;AAMA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACzB,OAAO,CAST;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,CAAC,EAAE,CAIL;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,CAAC,EAAE,CAIL;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,OAAO,CAcT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,eAAe,EAAE,GAAG,EAAE,GACxB,CAAC,EAAE,CAWL;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,eAAe,EAAE,GAAG,EAAE,GACxB,OAAO,CAeT;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAQtD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAS1E;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAC5B,WAAW,CAAC,EAAE,GAAG,GAChB,CAAC,EAAE,CAcL;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAClC,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/functions/array.ts"],"names":[],"mappings":";;;AAMA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACzB,OAAO,CAST;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,CAAC,EAAE,CAIL;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,CAAC,EAAE,CAIL;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,OAAO,CAcT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,gBAAgB,EAAE,CAAC,EAAE,GACvB,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,GAAG,eAAe,EAAE,GAAG,EAAE,GACxB,CAAC,EAAE,CAWL;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,eAAe,EAAE,GAAG,EAAE,GACxB,OAAO,CAeT;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAQtD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAS1E;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAC5B,WAAW,CAAC,EAAE,GAAG,GAChB,CAAC,EAAE,CAcL;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAClC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE,EAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GACxC,IAAI,EAAE,CAWR;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACzB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,CAAC,EAAE,GAAG,EACT,GAAG,CAAC,EAAE,GAAG,GACR,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAsB7B;AAqBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACzB,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAO,GAClC,CAAC,CAmBH;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAC9C,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAO,GAClC,CAAC,CAQH;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACzB,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,UAAU,GAAE,GAAG,EAAE,GAAG,SAAS,GAAG,EAAO,GACtC,GAAG,CAQL;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EACf,sBAAsB,UAAO,GAC5B,MAAM,IAAI,OAAO,EAAE,CAmCrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAavD;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,CAAC,EAC9B,YAAY,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAChC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GACrC,OAAO,CAET;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAIjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EACjC,SAAS,GAAE,IAAI,GAAG,GAAqB,GACtC,CAAC,EAAE,CAKL;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,GAAE,IAAI,GAAG,GAAqB,GACtC,IAAI,CAWN;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAM3E"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local zeroZero = {}
|
|
3
|
+
local oneZero = {"1"}
|
|
4
|
+
local zeroOne = {}
|
|
5
|
+
local oneOne = {"1"}
|
|
6
|
+
local twoOne = {"1", "2"}
|
|
7
|
+
local zeroTwo = {}
|
|
8
|
+
local oneTwo = {"1"}
|
|
9
|
+
local twoTwo = {"1", "2"}
|
|
10
|
+
local threeTwo = {"1", "2", "3"}
|
|
2
11
|
return ____exports
|
package/package.json
CHANGED
package/src/functions/array.ts
CHANGED
|
@@ -244,7 +244,7 @@ export function emptyArray<T>(array: T[]): void {
|
|
|
244
244
|
* https://doc.rust-lang.org/std/iter/struct.FilterMap.html
|
|
245
245
|
*/
|
|
246
246
|
export function filterMap<OldT, NewT>(
|
|
247
|
-
array: OldT[],
|
|
247
|
+
array: OldT[] | readonly OldT[],
|
|
248
248
|
func: (element: OldT) => NewT | undefined,
|
|
249
249
|
): NewT[] {
|
|
250
250
|
const newArray: NewT[] = [];
|
|
@@ -13,3 +13,31 @@ export type TupleWithLengthBetween<
|
|
|
13
13
|
> = (T[] | readonly T[]) & {
|
|
14
14
|
length: Range<MinLength, MaxLength>;
|
|
15
15
|
};
|
|
16
|
+
|
|
17
|
+
// -----
|
|
18
|
+
// Tests
|
|
19
|
+
// -----
|
|
20
|
+
|
|
21
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
22
|
+
/* eslint-disable isaacscript/require-unannotated-const-assertions */
|
|
23
|
+
|
|
24
|
+
// @ts-expect-error Tuple of length 0 with min length 1 and max length 2.
|
|
25
|
+
const zeroOneTwo: TupleWithLengthBetween<string, 1, 2> = [] as const;
|
|
26
|
+
|
|
27
|
+
// Tuple of length 1 with min length 1 and max length 2.
|
|
28
|
+
const oneOneTwo: TupleWithLengthBetween<string, 1, 2> = ["1"] as const;
|
|
29
|
+
|
|
30
|
+
// Tuple of length 2 with min length 1 and max length 2.
|
|
31
|
+
const twoOneTwo: TupleWithLengthBetween<string, 1, 2> = ["1", "2"] as const;
|
|
32
|
+
|
|
33
|
+
// @ts-expect-error Tuple of length 3 with min length 1 and max length 2.
|
|
34
|
+
const threeOneTwo: TupleWithLengthBetween<string, 1, 2> = [
|
|
35
|
+
"1",
|
|
36
|
+
"2",
|
|
37
|
+
"3",
|
|
38
|
+
] as const;
|
|
39
|
+
|
|
40
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
41
|
+
/* eslint-enable isaacscript/require-unannotated-const-assertions */
|
|
42
|
+
|
|
43
|
+
// See "TupleWithMaxLength.ts" for more tests.
|
|
@@ -11,3 +11,40 @@ export type TupleWithMaxLength<T, MaxLength extends number> = (
|
|
|
11
11
|
) & {
|
|
12
12
|
length: Range<0, MaxLength>;
|
|
13
13
|
};
|
|
14
|
+
|
|
15
|
+
// -----
|
|
16
|
+
// Tests
|
|
17
|
+
// -----
|
|
18
|
+
|
|
19
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
20
|
+
/* eslint-disable isaacscript/require-unannotated-const-assertions */
|
|
21
|
+
|
|
22
|
+
// Tuple of length 0 with max length 0.
|
|
23
|
+
const zeroZero: TupleWithMaxLength<string, 0> = [] as const;
|
|
24
|
+
|
|
25
|
+
// @ts-expect-error Tuple of length 1 with max length 0.
|
|
26
|
+
const oneZero: TupleWithMaxLength<string, 0> = ["1"] as const;
|
|
27
|
+
|
|
28
|
+
// Tuple of length 0 with max length 1.
|
|
29
|
+
const zeroOne: TupleWithMaxLength<string, 1> = [] as const;
|
|
30
|
+
|
|
31
|
+
// Tuple of length 1 with max length 1.
|
|
32
|
+
const oneOne: TupleWithMaxLength<string, 1> = ["1"] as const;
|
|
33
|
+
|
|
34
|
+
// @ts-expect-error Tuple of length 2 with max length 1.
|
|
35
|
+
const twoOne: TupleWithMaxLength<string, 1> = ["1", "2"] as const;
|
|
36
|
+
|
|
37
|
+
// Tuple of length 0 with max length 2.
|
|
38
|
+
const zeroTwo: TupleWithMaxLength<string, 2> = [] as const;
|
|
39
|
+
|
|
40
|
+
// Tuple of length 1 with max length 2.
|
|
41
|
+
const oneTwo: TupleWithMaxLength<string, 2> = ["1"] as const;
|
|
42
|
+
|
|
43
|
+
// Tuple of length 2 with max length 2.
|
|
44
|
+
const twoTwo: TupleWithMaxLength<string, 2> = ["1", "2"] as const;
|
|
45
|
+
|
|
46
|
+
// @ts-expect-error Tuple of length 3 with max length 2.
|
|
47
|
+
const threeTwo: TupleWithMaxLength<string, 2> = ["1", "2", "3"] as const;
|
|
48
|
+
|
|
49
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
50
|
+
/* eslint-enable isaacscript/require-unannotated-const-assertions */
|