@satoshibits/cache-keys
Version:
Type-safe cache key generation with zero dependencies
67 lines • 3.08 kB
text/typescript
import type { ID } from '../types.mjs';
/**
* Campaign-related cache key factories
*/
export declare const campaignKeys: {
/**
* Campaign details key
* @example campaignKeys.details.key('campaign123')
* @returns 'campaign:details:campaign123'
*/
readonly details: import("../types.mjs").CacheKeyFactory<`campaign:details:${string}`, [id: string | number]>;
/**
* Campaign statistics key
* @example campaignKeys.stats.key('campaign123')
* @returns 'campaign:stats:campaign123'
*/
readonly stats: import("../types.mjs").CacheKeyFactory<`campaign:stats:${string}`, [id: string | number]>;
/**
* Campaign performance by date key
* @example campaignKeys.performance.key('campaign123', '2024-01-15')
* @returns 'campaign:performance:campaign123:2024-01-15'
*/
readonly performance: import("../types.mjs").CacheKeyFactory<`campaign:performance:${string}:${string}`, [campaignId: ID, date: string]>;
/**
* Campaign list by account paginated key
* @example campaignKeys.list.key('account123', 1, 20)
* @returns 'campaign:list:account123:page_1:limit_20'
*/
readonly list: import("../types.mjs").CacheKeyFactory<`campaign:list:${string}:page_${number}:limit_${number}`, [id: string | number, page: number, limit: number]>;
/**
* Campaign targeting rules key
* @example campaignKeys.targeting.key('campaign123')
* @returns 'campaign:targeting:campaign123'
*/
readonly targeting: import("../types.mjs").CacheKeyFactory<`campaign:targeting:${string}`, [id: string | number]>;
/**
* Campaign budget key
* @example campaignKeys.budget.key('campaign123')
* @returns 'campaign:budget:campaign123'
*/
readonly budget: import("../types.mjs").CacheKeyFactory<`campaign:budget:${string}`, [id: string | number]>;
/**
* Campaign segments relationship key
* @example campaignKeys.segments.key('campaign123', 'segment456')
* @returns 'campaign:segments:campaign123:segment456'
*/
readonly segments: import("../types.mjs").CacheKeyFactory<`campaign:segments:${string}:${string}`, [id1: string | number, id2: string | number]>;
/**
* Campaign creative assets key
* @example campaignKeys.creatives.key('campaign123')
* @returns 'campaign:creatives:campaign123'
*/
readonly creatives: import("../types.mjs").CacheKeyFactory<`campaign:creatives:${string}`, [id: string | number]>;
/**
* Campaign schedule key
* @example campaignKeys.schedule.key('campaign123')
* @returns 'campaign:schedule:campaign123'
*/
readonly schedule: import("../types.mjs").CacheKeyFactory<`campaign:schedule:${string}`, [id: string | number]>;
/**
* Campaign conversion tracking key
* @example campaignKeys.conversions.key('campaign123')
* @returns 'campaign:conversions:campaign123'
*/
readonly conversions: import("../types.mjs").CacheKeyFactory<`campaign:conversions:${string}`, [id: string | number]>;
};
//# sourceMappingURL=campaign.d.mts.map