MCPcopy Create free account
hub / github.com/Devographics/Monorepo / getGenericCacheKey

Function getGenericCacheKey

api/src/compute/generic.ts:165–205  ·  view source on GitHub ↗
({
    edition,
    question,
    subField = ResultsSubFieldEnum.RESPONSES,
    selectedEditionId,
    editionCount,
    parameters,
    filters,
    facet,
    prefix = 'generic'
}: {
    edition: EditionApiObject
    question: QuestionApiObject
    subField: ResultsSubFieldEnum
    selectedEditionId: string
    editionCount: number
    parameters?: ResponsesParameters
    filters?: Filters
    facet?: string
    prefix?: string
})

Source from the content-addressed store, hash-verified

163}
164
165export const getGenericCacheKey = ({
166 edition,
167 question,
168 subField = ResultsSubFieldEnum.RESPONSES,
169 selectedEditionId,
170 editionCount,
171 parameters,
172 filters,
173 facet,
174 prefix = 'generic'
175}: {
176 edition: EditionApiObject
177 question: QuestionApiObject
178 subField: ResultsSubFieldEnum
179 selectedEditionId: string
180 editionCount: number
181 parameters?: ResponsesParameters
182 filters?: Filters
183 facet?: string
184 prefix?: string
185}) => {
186 const cacheKeyOptions: any = {
187 editionId: selectedEditionId || `allEditions(${edition.id})`,
188 questionId: question.id,
189 editionCount,
190 subField
191 }
192 if (!isEmpty(parameters)) {
193 const { enableCache, ...cacheKeyParameters } = parameters
194 if (!isEmpty(cacheKeyParameters)) {
195 cacheKeyOptions.parameters = { parameters: cacheKeyParameters }
196 }
197 }
198 if (!isEmpty(filters)) {
199 cacheKeyOptions.filters = { filters }
200 }
201 if (!isEmpty(facet)) {
202 cacheKeyOptions.facet = { facet }
203 }
204 return computeKey(prefix, cacheKeyOptions)
205}
206
207export type GenericComputeOptions = {
208 context: RequestContext

Callers 4

getDynamicOptionsFunction · 0.90
getResolverMapFunction · 0.90
allEditionsResolverFunction · 0.90
getAppearsInResponsesFunction · 0.90

Calls 2

computeKeyFunction · 0.90
isEmptyFunction · 0.85

Tested by

no test coverage detected