Skip to content

Commit 6fc2c12

Browse files
committed
Remove trim
1 parent 5880db1 commit 6fc2c12

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

src/index.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,21 @@ export function parse(string: string | ContentTypeSource): ContentType {
7575
throw new TypeError("argument string is required to be a string");
7676
}
7777

78+
const len = header.length;
7879
const semiIndex = header.indexOf(";");
80+
const end = semiIndex !== -1 ? semiIndex : len;
81+
const valueStart = skipOWS(header, 0, end);
82+
const valueEnd = trailingOWS(header, valueStart, end);
7983
const type =
80-
semiIndex !== -1
81-
? header.slice(0, semiIndex).trim().toLowerCase()
82-
: header.trim().toLowerCase();
84+
valueStart === 0 && valueEnd === len
85+
? header.toLowerCase()
86+
: header.slice(valueStart, valueEnd).toLowerCase();
8387

8488
if (!TYPE_REGEXP.test(type)) {
8589
throw new TypeError("invalid media type");
8690
}
8791

88-
const parameters = parseParameters(header, semiIndex);
92+
const parameters = parseParameters(header, end, len);
8993

9094
return { type, parameters };
9195
}
@@ -109,11 +113,9 @@ function getcontenttype(obj: ContentTypeSource): string {
109113
function parseParameters(
110114
header: string,
111115
index: number,
116+
len: number,
112117
): Record<string, string> {
113118
const parameters = Object.create(null);
114-
if (index === -1) return parameters;
115-
116-
const len = header.length;
117119

118120
while (index < len) {
119121
// Skip `;` and OWS before parameter key.

0 commit comments

Comments
 (0)