All files serializer.js

100% Statements 14/14
100% Branches 7/7
100% Functions 1/1
100% Lines 14/14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  1x   1x 27x   27x 2x     25x 27x 27x 27x   27x 7x 7x     27x     25x    
"use strict";
const { solelyContainsHTTPTokenCodePoints } = require("./utils.js");
 
module.exports = (mimeType, excludeParameters = false) => {
  let serialization = `${mimeType.type}/${mimeType.subtype}`;
 
  if (excludeParameters || mimeType.parameters.size === 0) {
    return serialization;
  }
 
  for (let [name, value] of mimeType.parameters) {
    serialization += ";";
    serialization += name;
    serialization += "=";
 
    if (!solelyContainsHTTPTokenCodePoints(value)) {
      value = value.replace(/(["\\])/g, "\\$1");
      value = `"${value}"`;
    }
 
    serialization += value;
  }
 
  return serialization;
};