github.com/grafana/pyroscope@v1.18.0/public/app/util/updateRequests.ts (about) 1 // TODO: figure out the correct types 2 3 export function buildRenderURL( 4 state: { 5 from: string; 6 until: string; 7 query: string; 8 refreshToken?: string; 9 maxNodes?: string | number; 10 groupBy?: string; 11 groupByValue?: string; 12 aggregation?: string; 13 }, 14 fromOverride?: string, 15 untilOverride?: string 16 ) { 17 const params = new URLSearchParams(); 18 params.set('query', state.query); 19 params.set('from', fromOverride || state.from); 20 params.set('until', untilOverride || state.until); 21 state.refreshToken && params.set('refreshToken', state.refreshToken); 22 if (state.maxNodes && state.maxNodes !== '0') { 23 params.set('max-nodes', String(state.maxNodes)); 24 } 25 state.groupBy && params.set('groupBy', state.groupBy); 26 state.groupByValue && params.set('groupByValue', state.groupByValue); 27 state.aggregation && params.set('aggregation', state.aggregation); 28 29 return `/render?${params}`; 30 } 31 32 export function buildMergeURLWithQueryID(state: { 33 queryID: string; 34 refreshToken?: string; 35 maxNodes?: string | number; 36 aggregation?: string; 37 }) { 38 const params = new URLSearchParams(); 39 params.set('queryID', state.queryID); 40 state.refreshToken && params.set('refreshToken', state.refreshToken); 41 if (state.maxNodes && state.maxNodes !== '0') { 42 params.set('max-nodes', String(state.maxNodes)); 43 } 44 state.aggregation && params.set('aggregation', state.aggregation); 45 46 return `/merge?${params}`; 47 }