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  }