Skip to content

Commit 548e234

Browse files
authored
Merge pull request #143 from crazy-max/trim-val
Trim tags and flavor inputs
2 parents 110426b + b69dce7 commit 548e234

File tree

4 files changed

+55
-26
lines changed

4 files changed

+55
-26
lines changed

__tests__/flavor.test.ts

+13
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,19 @@ describe('transform', () => {
152152
} as Flavor,
153153
false
154154
],
155+
[
156+
[
157+
`prefix= `,
158+
],
159+
{
160+
latest: "auto",
161+
prefix: "",
162+
prefixLatest: false,
163+
suffix: "",
164+
suffixLatest: false,
165+
} as Flavor,
166+
false
167+
]
155168
])('given %p attributes ', async (inputs: string[], expected: Flavor, invalid: boolean) => {
156169
try {
157170
const flavor = Transform(inputs);

dist/index.js

+21-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/flavor.ts

+14-9
Original file line numberDiff line numberDiff line change
@@ -25,39 +25,44 @@ export function Transform(inputs: string[]): Flavor {
2525
})[0];
2626
let onlatestfor = '';
2727
for (const field of fields) {
28-
const parts = field.toString().split('=', 2);
28+
const parts = field
29+
.toString()
30+
.split('=')
31+
.map(item => item.trim());
2932
if (parts.length == 1) {
3033
throw new Error(`Invalid flavor entry: ${input}`);
3134
}
32-
switch (parts[0]) {
35+
const key = parts[0].toLowerCase();
36+
const value = parts[1];
37+
switch (key) {
3338
case 'latest': {
34-
flavor.latest = parts[1];
39+
flavor.latest = value;
3540
if (!['auto', 'true', 'false'].includes(flavor.latest)) {
3641
throw new Error(`Invalid latest flavor entry: ${input}`);
3742
}
3843
break;
3944
}
4045
case 'prefix': {
41-
flavor.prefix = parts[1];
46+
flavor.prefix = value;
4247
onlatestfor = 'prefix';
4348
break;
4449
}
4550
case 'suffix': {
46-
flavor.suffix = parts[1];
51+
flavor.suffix = value;
4752
onlatestfor = 'suffix';
4853
break;
4954
}
5055
case 'onlatest': {
51-
if (!['true', 'false'].includes(parts[1])) {
52-
throw new Error(`Invalid value for onlatest attribute: ${parts[1]}`);
56+
if (!['true', 'false'].includes(value)) {
57+
throw new Error(`Invalid value for onlatest attribute: ${value}`);
5358
}
5459
switch (onlatestfor) {
5560
case 'prefix': {
56-
flavor.prefixLatest = /true/i.test(parts[1]);
61+
flavor.prefixLatest = /true/i.test(value);
5762
break;
5863
}
5964
case 'suffix': {
60-
flavor.suffixLatest = /true/i.test(parts[1]);
65+
flavor.suffixLatest = /true/i.test(value);
6166
break;
6267
}
6368
}

src/tag.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,15 @@ export function Parse(s: string): Tag {
9393

9494
const tag = new Tag();
9595
for (const field of fields) {
96-
const parts = field.toString().split('=', 2);
96+
const parts = field
97+
.toString()
98+
.split('=')
99+
.map(item => item.trim());
97100
if (parts.length == 1) {
98-
tag.attrs['value'] = parts[0].trim();
101+
tag.attrs['value'] = parts[0];
99102
} else {
100-
const key = parts[0].trim().toLowerCase();
101-
const value = parts[1].trim();
103+
const key = parts[0].toLowerCase();
104+
const value = parts[1];
102105
switch (key) {
103106
case 'type': {
104107
if (!Object.values(Type).includes(value)) {

0 commit comments

Comments
 (0)