{{!--
Handle parameters when building an API request

@param this a CodegenSchemaUsage
@param dest the name of the URLSearchParams to use
@param encoding the CodegenParameterEncoding (or compatible) to use
@param var the name of the variable containing the property
--}}
if ({{{var}}} !== undefined) {
{{#if (isArray)}}
{{#ifeq encoding.style 'form'}}
{{#if encoding.explode}}
	/* array form exploded */
	for (const localVarArrayElement of {{{var}}}) {
		if (localVarArrayElement !== undefined) {
			{{{dest}}}.append('{{serializedName}}', localVarArrayElement !== null ? {{>frag/schemaToString schema.component value='localVarArrayElement' parameter=. indent='			'}} : '');
		}
	}
{{else}}
	/* array form */
	{{{dest}}}.append('{{serializedName}}', {{>frag/arrayToString value=var parameter=. separator=',' indent='		'}});
{{/if}}
{{else ifeq encoding.style 'spaceDelimited'}}
	/* array space delimited */
	{{{dest}}}.append('{{serializedName}}', {{>frag/arrayToString value=var parameter=. separator=' ' indent='		'}});
{{else ifeq encoding.style 'pipeDelimited'}}
	/* array pipe delimited */
	{{{dest}}}.append('{{serializedName}}', {{>frag/arrayToString value=var parameter=. separator='|' indent='		'}});
{{else ifeq encoding.style 'simple'}}
	/* array simple */
	{{{dest}}}.append('{{serializedName}}', {{>frag/arrayToString value=var parameter=. separator=',' indent='		'}});
{{else}}
	throw new Error("Unsupported parameter encoding");
	{{warn (concat 'Array encoding style ' encoding.style ' not supported')}}
{{/ifeq}}
{{else if (isObject)}}
{{#ifeq encoding.style 'form'}}
{{#if encoding.explode}}
	/* object form exploded */
{{#each (allProperties schema)}}
	if ({{{concat ../var '["' serializedName '"]'}}} !== undefined) {
		{{{../dest}}}.append('{{serializedName}}', {{{concat ../var '["' serializedName '"]'}}} !== null ? {{>frag/schemaToString value=(concat ../var '["' serializedName '"]') parameter=.. indent='			'}} : '');
	}
{{/each}}
{{else}}
	/* object form */
	{{{dest}}}.append('{{serializedName}}', {{>frag/objectToString value=var parameter=. separator=',' keyValueSeparator=',' indent='		'}});
{{/if}}
{{else ifeq encoding.style 'spaceDelimited'}}
	/* object space delimited */
	{{{dest}}}.append('{{serializedName}}', {{>frag/objectToString value=var parameter=. separator=' ' keyValueSeparator=' ' indent='		'}});
{{else ifeq encoding.style 'pipeDelimited'}}
	/* object pipe delimited */
	{{{dest}}}.append('{{serializedName}}', {{>frag/objectToString value=var parameter=. separator='|' keyValueSeparator='|' indent='		'}});
{{else ifeq encoding.style 'deepObject'}}
	/* object deepObject */
{{#each (allProperties schema)}}
	if ({{{concat ../var '["' serializedName '"]'}}} !== undefined) {
		{{{../dest}}}.append('{{../serializedName}}[{{serializedName}}]', {{{concat ../var '["' serializedName '"]'}}} !== null ? {{>frag/schemaToString value=(concat ../var '["' serializedName '"]') parameter=.. indent='			'}} : '');
	}
{{/each}}
{{else ifeq encoding.style 'simple'}}
{{#if encoding.explode}}
	/* object simple exploded */
	{{{dest}}}.append('{{serializedName}}', {{>frag/objectToString value=var parameter=. separator=',' keyValueSeparator='=' indent='		'}});
{{else}}
	/* object simple */
	{{{dest}}}.append('{{serializedName}}', {{>frag/objectToString value=var parameter=. separator=',' keyValueSeparator=',' indent='		'}});
{{/if}}
{{else}}
	throw new Error("Unsupported parameter encoding");
	{{warn (concat 'Object encoding style ' encoding.style ' not supported')}}
{{/ifeq}}
{{else}}
	{{{dest}}}.append('{{serializedName}}', {{>frag/schemaToString value=var parameter=. separator=',' indent='					'}});
{{/if}}
}
