Skip to content

Commit e59002a

Browse files
Sprinkles: Refactor responsive array type to use Tuple generic (#150)
1 parent 56f1d0d commit e59002a

File tree

3 files changed

+18
-61
lines changed

3 files changed

+18
-61
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@vanilla-extract/sprinkles': patch
3+
---
4+
5+
Refactor responsive array type to use Tuple generic

.github/workflows/validate.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ jobs:
1111
steps:
1212
- name: Checkout Repo
1313
uses: actions/checkout@main
14-
with:
15-
# This makes Actions fetch all Git history so that chromatic can diff against previous commits
16-
fetch-depth: 0
1714

1815
- name: Setup Node.js 14.x
1916
uses: actions/setup-node@main

packages/sprinkles/src/types.ts

Lines changed: 13 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,20 @@
1-
export type RA1<Value> = readonly [Value];
2-
export type RA2<Value> = readonly [Value, Value];
3-
export type RA3<Value> = readonly [Value, Value, Value];
4-
export type RA4<Value> = readonly [Value, Value, Value, Value];
5-
export type RA5<Value> = readonly [Value, Value, Value, Value, Value];
6-
export type RA6<Value> = readonly [Value, Value, Value, Value, Value, Value];
7-
export type RA7<Value> = readonly [
8-
Value,
9-
Value,
10-
Value,
11-
Value,
12-
Value,
13-
Value,
14-
Value,
15-
];
16-
export type RA8<Value> = readonly [
17-
Value,
18-
Value,
19-
Value,
20-
Value,
21-
Value,
22-
Value,
23-
Value,
24-
Value,
25-
];
1+
interface Tuple<Length extends number, Value> extends ReadonlyArray<Value> {
2+
0: Value;
3+
length: Length;
4+
}
265

27-
export type ResponsiveArrayConfig<Value> =
28-
| RA2<Value>
29-
| RA3<Value>
30-
| RA4<Value>
31-
| RA5<Value>
32-
| RA6<Value>
33-
| RA7<Value>
34-
| RA8<Value>;
6+
export type ResponsiveArrayConfig<Value> = Tuple<2 | 3 | 5 | 6 | 7 | 8, Value>;
357

368
export type ResponsiveArray<Count extends number, Value> = [
379
never,
38-
RA1<Value>,
39-
RA1<Value> | RA2<Value>,
40-
RA1<Value> | RA2<Value> | RA3<Value>,
41-
RA1<Value> | RA2<Value> | RA3<Value> | RA4<Value>,
42-
RA1<Value> | RA2<Value> | RA3<Value> | RA4<Value> | RA5<Value>,
43-
RA1<Value> | RA2<Value> | RA3<Value> | RA4<Value> | RA5<Value> | RA6<Value>,
44-
(
45-
| RA1<Value>
46-
| RA2<Value>
47-
| RA3<Value>
48-
| RA4<Value>
49-
| RA5<Value>
50-
| RA6<Value>
51-
| RA7<Value>
52-
),
53-
(
54-
| RA1<Value>
55-
| RA2<Value>
56-
| RA3<Value>
57-
| RA4<Value>
58-
| RA5<Value>
59-
| RA6<Value>
60-
| RA7<Value>
61-
| RA8<Value>
62-
),
10+
Tuple<1, Value>,
11+
Tuple<1 | 2, Value>,
12+
Tuple<1 | 2 | 3, Value>,
13+
Tuple<1 | 2 | 3 | 4, Value>,
14+
Tuple<1 | 2 | 3 | 4 | 5, Value>,
15+
Tuple<1 | 2 | 3 | 4 | 5 | 6, Value>,
16+
Tuple<1 | 2 | 3 | 4 | 5 | 6 | 7, Value>,
17+
Tuple<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, Value>,
6318
][Count];
6419

6520
export type ConditionalPropertyValue = {

0 commit comments

Comments
 (0)