import { CallRequestDTO } from '../CallRequestDTO' import stringify from 'fast-json-stable-stringify' import sortKeys from './sort-keys' const CACHE_KEY_DELIMITER = '::' export const makeCallRequestKey = (request: CallRequestDTO): string => { const baseKey = `${request.scope ?? ''}${CACHE_KEY_DELIMITER}${request.procedure ?? ''}${CACHE_KEY_DELIMITER}${request.version ?? ''}` if (!request.args) return baseKey return `${baseKey}${CACHE_KEY_DELIMITER}${stringify( sortKeys(request.args || {}, { deep: true }), )}` }