123456789101112131415161718192021222324252627282930313233343536373839404142 |
- "use strict";
- /**
- * Parse a HTTP token list.
- *
- * @param {string} str
- * @returns {string[]} tokens
- */
- function parseTokenList(str) {
- let end = 0;
- let start = 0;
- const list = [];
- // gather tokens
- for (let i = 0, len = str.length; i < len; i++) {
- switch (str.charCodeAt(i)) {
- case 0x20 /* */:
- if (start === end) {
- end = i + 1;
- start = end;
- }
- break;
- case 0x2c /* , */:
- if (start !== end) {
- list.push(str.substring(start, end));
- }
- end = i + 1;
- start = end;
- break;
- default:
- end = i + 1;
- break;
- }
- }
- // final token
- if (start !== end) {
- list.push(str.substring(start, end));
- }
- return list;
- }
- module.exports = parseTokenList;
|