Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 2x 2x 2x 41x 2x 55x 55x 55x 97x 2x 69x 2x 16x | import { VisitorData } from '../global' import { GetOptions } from '@fingerprintjs/fingerprintjs-pro' export const CACHE_KEY_PREFIX = '@fpjs@client@' export const MAX_CACHE_LIFE = 60 * 60 * 24 // 24 hours export const DEFAULT_CACHE_LIFE = 60 * 60 // 1 hour export const DEFAULT_NOW_PROVIDER = () => Date.now() export type CacheEntry<TExtended extends boolean = false> = VisitorData<TExtended> export type Cacheable<TExtended extends boolean = false> = WrappedCacheEntry<TExtended> export type WrappedCacheEntry<TExtended extends boolean = false> = { body: CacheEntry<TExtended> expiresAt: number } export class CacheKey<TExtended extends boolean> { public tag public linkedId public extendedResult constructor(options: GetOptions<TExtended>) { this.tag = options.tag || null this.linkedId = options.linkedId || null this.extendedResult = options.extendedResult ?? false } /** * Converts this `CacheKey` instance into a string for use in a cache * @returns A string representation of the key */ toKey(): string { return `${JSON.stringify(this.tag)}__${JSON.stringify(this.linkedId)}__${this.extendedResult}` } } export function getKeyWithPrefix(key: string, prefix: string) { return `${prefix}__${key}` } export function removePrefixFromKey(key: string, prefix: string) { return key.replace(`${prefix}__`, '') } export type MaybePromise<T> = Promise<T> | T export interface ICache { set<T = WrappedCacheEntry>(key: string, entry: T): MaybePromise<void> get<T = WrappedCacheEntry>(key: string): MaybePromise<T | undefined> remove(key: string): MaybePromise<void> allKeys(): MaybePromise<string[]> } |