Skip to content

Commit d813545

Browse files
committed
Start using named captured groups instead of index groups
1 parent 0f8b80c commit d813545

File tree

11 files changed

+275
-183
lines changed

11 files changed

+275
-183
lines changed

.plop/regexps-strings.js

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -10,39 +10,39 @@ module.exports = {
1010
COLOR_REGEXP_STRINGS: {
1111
HEX: `
1212
^#(?:
13-
(${HEX_DIGIT})
14-
(${HEX_DIGIT})
15-
(${HEX_DIGIT})
16-
(${HEX_DIGIT})?
13+
(?<r>${HEX_DIGIT})
14+
(?<g>${HEX_DIGIT})
15+
(?<b>${HEX_DIGIT})
16+
(?<a>${HEX_DIGIT})?
1717
|
18-
(${HEX_DIGIT_DOUBLE})
19-
(${HEX_DIGIT_DOUBLE})
20-
(${HEX_DIGIT_DOUBLE})
21-
(${HEX_DIGIT_DOUBLE})?
18+
(?<rr>${HEX_DIGIT_DOUBLE})
19+
(?<gg>${HEX_DIGIT_DOUBLE})
20+
(?<bb>${HEX_DIGIT_DOUBLE})
21+
(?<aa>${HEX_DIGIT_DOUBLE})?
2222
)$
2323
`,
2424
RGB: `
2525
^rgba?${SPACE}\\(
2626
${SPACE}
2727
(?:
28-
(${NUMBER_WITH_DECIMALS}%?)
28+
(?<r_legacy>${NUMBER_WITH_DECIMALS}%?)
2929
${COMMA}
30-
(${NUMBER_WITH_DECIMALS}%?)
30+
(?<g_legacy>${NUMBER_WITH_DECIMALS}%?)
3131
${COMMA}
32-
(${NUMBER_WITH_DECIMALS}%?)
32+
(?<b_legacy>${NUMBER_WITH_DECIMALS}%?)
3333
(?:
3434
${COMMA}
35-
(${NUMBER_WITH_DECIMALS})
36-
)?
35+
(?<a_legacy>${NUMBER_WITH_DECIMALS})
36+
)?
3737
|
38-
(${NUMBER_WITH_DECIMALS}%?)
38+
(?<r>${NUMBER_WITH_DECIMALS}%?)
3939
${SPACE}
40-
(${NUMBER_WITH_DECIMALS}%?)
40+
(?<g>${NUMBER_WITH_DECIMALS}%?)
4141
${SPACE}
42-
(${NUMBER_WITH_DECIMALS}%?)
42+
(?<b>${NUMBER_WITH_DECIMALS}%?)
4343
(?:
4444
${SLASH}
45-
(${NUMBER_WITH_DECIMALS}%?)
45+
(?<a>${NUMBER_WITH_DECIMALS}%?)
4646
)?
4747
)
4848
${SPACE}
@@ -52,24 +52,24 @@ module.exports = {
5252
^hsla?${SPACE}\\(
5353
${SPACE}
5454
(?:
55-
(-?${NUMBER_WITH_DECIMALS}${HSL_DEGREES_UNITS})
55+
(?<h_legacy>-?${NUMBER_WITH_DECIMALS}${HSL_DEGREES_UNITS})
5656
${COMMA}
57-
(${NUMBER_WITH_DECIMALS})%
57+
(?<s_legacy>${NUMBER_WITH_DECIMALS})%
5858
${COMMA}
59-
(${NUMBER_WITH_DECIMALS})%
59+
(?<l_legacy>${NUMBER_WITH_DECIMALS})%
6060
(?:
6161
${COMMA}
62-
(${NUMBER_WITH_DECIMALS})
62+
(?<a_legacy>${NUMBER_WITH_DECIMALS})
6363
)?
6464
|
65-
(-?${NUMBER_WITH_DECIMALS}${HSL_DEGREES_UNITS})
65+
(?<h>-?${NUMBER_WITH_DECIMALS}${HSL_DEGREES_UNITS})
6666
${SPACE}
67-
(${NUMBER_WITH_DECIMALS})%
67+
(?<s>${NUMBER_WITH_DECIMALS})%
6868
${SPACE}
69-
(${NUMBER_WITH_DECIMALS})%
69+
(?<l>${NUMBER_WITH_DECIMALS})%
7070
(?:
7171
${SLASH}
72-
(${NUMBER_WITH_DECIMALS}%?)
72+
(?<a>${NUMBER_WITH_DECIMALS}%?)
7373
)?
7474
)
7575
${SPACE}
@@ -79,14 +79,14 @@ module.exports = {
7979
^lab${SPACE}\\(
8080
${SPACE}
8181
(?:
82-
(${NUMBER_WITH_DECIMALS}%?)
82+
(?<L>${NUMBER_WITH_DECIMALS}%?)
8383
${SPACE}
84-
(-?${NUMBER_WITH_DECIMALS}%?)
84+
(?<a>-?${NUMBER_WITH_DECIMALS}%?)
8585
${SPACE}
86-
(-?${NUMBER_WITH_DECIMALS}%?)
86+
(?<b>-?${NUMBER_WITH_DECIMALS}%?)
8787
(?:
8888
${SLASH}
89-
(${NUMBER_WITH_DECIMALS}%?)
89+
(?<A>${NUMBER_WITH_DECIMALS}%?)
9090
)?
9191
)
9292
${SPACE}
@@ -97,35 +97,35 @@ module.exports = {
9797
${SPACE}
9898
\\(${SPACE}
9999
(?:
100-
(${NUMBER_WITH_DECIMALS}%?)
100+
(?<c_legacy>${NUMBER_WITH_DECIMALS}%?)
101101
${COMMA}
102-
(${NUMBER_WITH_DECIMALS}%?)
102+
(?<m_legacy>${NUMBER_WITH_DECIMALS}%?)
103103
${COMMA}
104-
(${NUMBER_WITH_DECIMALS}%?)
104+
(?<y_legacy>${NUMBER_WITH_DECIMALS}%?)
105105
${COMMA}
106-
(${NUMBER_WITH_DECIMALS}%?)
106+
(?<k_legacy>${NUMBER_WITH_DECIMALS}%?)
107107
(?:
108108
${COMMA}
109-
(${NUMBER_WITH_DECIMALS})
109+
(?<a_legacy>${NUMBER_WITH_DECIMALS})
110110
)?
111111
|
112-
(${NUMBER_WITH_DECIMALS}%?)
112+
(?<c>${NUMBER_WITH_DECIMALS}%?)
113113
${SPACE}
114-
(${NUMBER_WITH_DECIMALS}%?)
114+
(?<m>${NUMBER_WITH_DECIMALS}%?)
115115
${SPACE}
116-
(${NUMBER_WITH_DECIMALS}%?)
116+
(?<y>${NUMBER_WITH_DECIMALS}%?)
117117
${SPACE}
118-
(${NUMBER_WITH_DECIMALS}%?)
118+
(?<k>${NUMBER_WITH_DECIMALS}%?)
119119
(?:
120120
${SLASH}
121-
(${NUMBER_WITH_DECIMALS}%?)
121+
(?<a>${NUMBER_WITH_DECIMALS}%?)
122122
)?
123123
)
124124
${SPACE}
125125
\\)$
126126
`
127127
},
128-
HSL_HUE: new RegExp(`^(-?${NUMBER_WITH_DECIMALS})(${HSL_DEGREES_UNITS})$`),
128+
HSL_HUE: new RegExp(`^(?<number>-?${NUMBER_WITH_DECIMALS})(?<units>${HSL_DEGREES_UNITS})$`),
129129
toRegExp: function (str, caseInsensitive = false) {
130130
const stringWithoutSpaces = str.replace(/\s*/gm, '');
131131
return caseInsensitive

.plop/regexps.hbs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// START REGEXPS
22
export const COLORREGS = {
3-
[ColorModel.HEX] : {{ HEX }},
4-
[ColorModel.RGB] : {{ RGB }},
5-
[ColorModel.HSL] : {{ HSL }},
6-
[ColorModel.CIELab] : {{ CIELab }},
7-
[ColorModel.CMYK] : {{ CMYK }}
3+
[ColorModel.HEX] : {{{ HEX }}},
4+
[ColorModel.RGB] : {{{ RGB }}},
5+
[ColorModel.HSL] : {{{ HSL }}},
6+
[ColorModel.CIELab] : {{{ CIELab }}},
7+
[ColorModel.CMYK] : {{{ CMYK }}}
88
};
99

10-
export const HSL_HUE = {{ HSL_HUE }};
10+
export const HSL_HUE = {{{ HSL_HUE }}};
1111
// END REGEXPS

plopfile.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
const { COLOR_REGEXP_STRINGS, HSL_HUE, toRegExp } = require('./.plop/regexps-strings');
1+
const {
2+
COLOR_REGEXP_STRINGS,
3+
HSL_HUE,
4+
toRegExp
5+
} = require('./.plop/regexps-strings');
26

37
module.exports = (plop) => {
48
plop.setGenerator('Compile RegExps', {

src/@types/index.ts

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,76 @@ export type HSLOutput = string | HSLObject;
8888
export type CMYKOutput = string | CMYKObject;
8989
export type ColorOutput = HEXOutput | RGBOutput | HSLOutput | CIELabOutput;
9090

91+
export interface HEXRegExpMatchArray extends RegExpMatchArray {
92+
groups: {
93+
r: string;
94+
g: string;
95+
b: string;
96+
a: string | undefined;
97+
rr: string;
98+
gg: string;
99+
bb: string;
100+
aa: string | undefined;
101+
}
102+
}
103+
104+
export interface RGBRegExpMatchArray extends RegExpMatchArray {
105+
groups: {
106+
r_legacy: string;
107+
g_legacy: string;
108+
b_legacy: string;
109+
a_legacy: string | undefined;
110+
r: string;
111+
g: string;
112+
b: string;
113+
a: string | undefined;
114+
}
115+
}
116+
117+
export interface HSLRegExpMatchArray extends RegExpMatchArray {
118+
groups: {
119+
h_legacy: string;
120+
s_legacy: string;
121+
l_legacy: string;
122+
a_legacy: string | undefined;
123+
h: string;
124+
s: string;
125+
l: string;
126+
a: string | undefined;
127+
}
128+
}
129+
130+
export interface CIELabRegExpMatchArray extends RegExpMatchArray {
131+
groups: {
132+
L: string;
133+
a: string;
134+
b: string;
135+
A: string | undefined;
136+
}
137+
}
138+
139+
export interface CMYKRegExpMatchArray extends RegExpMatchArray {
140+
groups: {
141+
c_legacy: string;
142+
m_legacy: string;
143+
y_legacy: string;
144+
k_legacy: string;
145+
a_legacy: string | undefined;
146+
c: string;
147+
m: string;
148+
y: string;
149+
k: string;
150+
a: string | undefined;
151+
}
152+
}
153+
154+
export interface AngleUnitRegExpMatchArray extends RegExpMatchArray {
155+
groups: {
156+
number: string;
157+
units: string;
158+
}
159+
}
160+
91161
export interface ObjectProps<T> {
92162
[key: string]: T;
93163
}

src/color/css.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
import {
2-
HEXObject,
3-
RGBObject,
4-
HSLObject,
2+
AnglesUnitEnum,
53
CIELabObject,
64
CMYKObject,
75
Color,
6+
ColorUnitEnum,
7+
HEXObject,
8+
HSLObject,
89
NumberOrString,
910
Options,
10-
AnglesUnitEnum,
11-
ColorUnitEnum
11+
RGBObject
1212
} from '@types';
1313
import {
14+
COLOR_PROPS,
1415
ColorModel,
1516
TEMPLATE_VAR,
16-
COLOR_PROPS,
1717
VALID_COLOR_OBJECTS
1818
} from '#constants';
1919
import {
20-
toHEX,
21-
round,
22-
percent,
23-
getOrderedArrayString,
24-
from255NumberToPercent,
2520
from125NumberToPercent,
21+
from255NumberToPercent,
22+
getOrderedArrayString,
23+
percent,
24+
round,
25+
toHEX,
2626
translateDegrees
2727
} from '#helpers';
2828

src/color/translators.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {
2-
ColorArray,
3-
RGBObject,
42
CIELabObject,
5-
HSLObject,
63
CMYKObject,
4+
ColorArray,
5+
HSLObject,
6+
RGBObject,
77
RYBObject
88
} from '@types';
9-
import { round, minmax } from '#helpers';
9+
import { minmax, round } from '#helpers';
1010

1111
const MATRIX_LRGB_XYZ_D50: [ColorArray, ColorArray, ColorArray] = [
1212
[0.4360747, 0.3850649, 0.1430804],

0 commit comments

Comments
 (0)