UNPKG

@satoshibits/cache-keys

Version:
80 lines 3.08 kB
"use strict"; import { createSimpleKeyFactory, createKeyFactory, createDualKeyFactory, createPaginatedKeyFactory } from '../factory.mjs'; import { sanitizeKeyComponent, splitKeyComponents } from '../sanitizer.mjs'; /** * Campaign-related cache key factories */ export var campaignKeys = { /** * Campaign details key * @example campaignKeys.details.key('campaign123') * @returns 'campaign:details:campaign123' */ details: createSimpleKeyFactory('campaign', 'details'), /** * Campaign statistics key * @example campaignKeys.stats.key('campaign123') * @returns 'campaign:stats:campaign123' */ stats: createSimpleKeyFactory('campaign', 'stats'), /** * Campaign performance by date key * @example campaignKeys.performance.key('campaign123', '2024-01-15') * @returns 'campaign:performance:campaign123:2024-01-15' */ performance: createKeyFactory('campaign', 'performance', function (campaignId, date) { return "".concat(sanitizeKeyComponent(String(campaignId)), ":").concat(sanitizeKeyComponent(date)); }, function (suffix) { var _a, _b; var parts = splitKeyComponents(suffix, ':', true); if (parts.length !== 2) return null; return { campaignId: (_a = parts[0]) !== null && _a !== void 0 ? _a : '', date: (_b = parts[1]) !== null && _b !== void 0 ? _b : '' }; }), /** * Campaign list by account paginated key * @example campaignKeys.list.key('account123', 1, 20) * @returns 'campaign:list:account123:page_1:limit_20' */ list: createPaginatedKeyFactory('campaign', 'list'), /** * Campaign targeting rules key * @example campaignKeys.targeting.key('campaign123') * @returns 'campaign:targeting:campaign123' */ targeting: createSimpleKeyFactory('campaign', 'targeting'), /** * Campaign budget key * @example campaignKeys.budget.key('campaign123') * @returns 'campaign:budget:campaign123' */ budget: createSimpleKeyFactory('campaign', 'budget'), /** * Campaign segments relationship key * @example campaignKeys.segments.key('campaign123', 'segment456') * @returns 'campaign:segments:campaign123:segment456' */ segments: createDualKeyFactory('campaign', 'segments', 'campaignId', 'segmentId'), /** * Campaign creative assets key * @example campaignKeys.creatives.key('campaign123') * @returns 'campaign:creatives:campaign123' */ creatives: createSimpleKeyFactory('campaign', 'creatives'), /** * Campaign schedule key * @example campaignKeys.schedule.key('campaign123') * @returns 'campaign:schedule:campaign123' */ schedule: createSimpleKeyFactory('campaign', 'schedule'), /** * Campaign conversion tracking key * @example campaignKeys.conversions.key('campaign123') * @returns 'campaign:conversions:campaign123' */ conversions: createSimpleKeyFactory('campaign', 'conversions'), }; //# sourceMappingURL=campaign.mjs.map