next
Version:
The React Framework
23 lines (22 loc) • 1.06 kB
JavaScript
import { getRequestMeta } from './request-meta';
import { stringify as stringifyQs } from 'querystring';
// since initial query values are decoded by querystring.parse
// we need to re-encode them here but still allow passing through
// values from rewrites/redirects
export const stringifyQuery = (req, query)=>{
const initialQuery = getRequestMeta(req, 'initQuery') || {};
const initialQueryValues = Object.values(initialQuery);
return stringifyQs(query, undefined, undefined, {
encodeURIComponent (value) {
if (value in initialQuery || initialQueryValues.some((initialQueryVal)=>{
// `value` always refers to a query value, even if it's nested in an array
return Array.isArray(initialQueryVal) ? initialQueryVal.includes(value) : initialQueryVal === value;
})) {
// Encode keys and values from initial query
return encodeURIComponent(value);
}
return value;
}
});
};
//# sourceMappingURL=server-route-utils.js.map