tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

stringify_params.js (1388B)


      1 /**
      2 * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
      3 **/import { assert } from '../../util/util.js';import { badParamValueChars, paramKeyIsPublic } from '../params_utils.js';
      4 
      5 import { stringifyParamValue, stringifyParamValueUniquely } from './json_param_value.js';
      6 import { kParamKVSeparator, kParamSeparator, kWildcard } from './separators.js';
      7 
      8 export function stringifyPublicParams(p, addWildcard = false) {
      9  const parts = Object.keys(p).
     10  filter((k) => paramKeyIsPublic(k)).
     11  map((k) => stringifySingleParam(k, p[k]));
     12 
     13  if (addWildcard) parts.push(kWildcard);
     14 
     15  return parts.join(kParamSeparator);
     16 }
     17 
     18 /**
     19 * An _approximately_ unique string representing a CaseParams value.
     20 */
     21 export function stringifyPublicParamsUniquely(p) {
     22  const keys = Object.keys(p).sort();
     23  return keys.
     24  filter((k) => paramKeyIsPublic(k)).
     25  map((k) => stringifySingleParamUniquely(k, p[k])).
     26  join(kParamSeparator);
     27 }
     28 
     29 export function stringifySingleParam(k, v) {
     30  return `${k}${kParamKVSeparator}${stringifySingleParamValue(v)}`;
     31 }
     32 
     33 function stringifySingleParamUniquely(k, v) {
     34  return `${k}${kParamKVSeparator}${stringifyParamValueUniquely(v)}`;
     35 }
     36 
     37 function stringifySingleParamValue(v) {
     38  const s = stringifyParamValue(v);
     39  assert(
     40    !badParamValueChars.test(s),
     41    `JSON.stringified param value must not match ${badParamValueChars} - was ${s}`
     42  );
     43  return s;
     44 }