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 }