@satoshibits/cache-keys
Version:
Type-safe cache key generation with zero dependencies
68 lines • 2.68 kB
JavaScript
;
import { createSimpleKeyFactory, createKeyFactory, createPaginatedKeyFactory } from '../factory.mjs';
import { sanitizeKeyComponent, splitKeyComponents } from '../sanitizer.mjs';
/**
* User-related cache key factories
*/
export var userKeys = {
/**
* User profile key
* @example userKeys.profile.key('507f1f77bcf86cd799439011')
* @returns 'user:profile:507f1f77bcf86cd799439011'
*/
profile: createSimpleKeyFactory('user', 'profile'),
/**
* User settings key
* @example userKeys.settings.key('507f1f77bcf86cd799439011')
* @returns 'user:settings:507f1f77bcf86cd799439011'
*/
settings: createSimpleKeyFactory('user', 'settings'),
/**
* User session key
* @example userKeys.session.key('507f1f77bcf86cd799439011', 'session123')
* @returns 'user:session:507f1f77bcf86cd799439011:session123'
*/
session: createKeyFactory('user', 'session', function (userId, sessionId) {
return "".concat(sanitizeKeyComponent(String(userId)), ":").concat(sanitizeKeyComponent(sessionId));
}, function (suffix) {
var _a, _b;
var parts = splitKeyComponents(suffix, ':', true);
if (parts.length !== 2)
return null;
return {
userId: (_a = parts[0]) !== null && _a !== void 0 ? _a : '',
sessionId: (_b = parts[1]) !== null && _b !== void 0 ? _b : ''
};
}),
/**
* User permissions key
* @example userKeys.permissions.key('507f1f77bcf86cd799439011')
* @returns 'user:permissions:507f1f77bcf86cd799439011'
*/
permissions: createSimpleKeyFactory('user', 'permissions'),
/**
* User activity feed paginated key
* @example userKeys.activity.key('507f1f77bcf86cd799439011', 1, 20)
* @returns 'user:activity:507f1f77bcf86cd799439011:page_1:limit_20'
*/
activity: createPaginatedKeyFactory('user', 'activity'),
/**
* User preferences key
* @example userKeys.preferences.key('507f1f77bcf86cd799439011')
* @returns 'user:preferences:507f1f77bcf86cd799439011'
*/
preferences: createSimpleKeyFactory('user', 'preferences'),
/**
* User notification settings key
* @example userKeys.notifications.key('507f1f77bcf86cd799439011')
* @returns 'user:notifications:507f1f77bcf86cd799439011'
*/
notifications: createSimpleKeyFactory('user', 'notifications'),
/**
* User API token key
* @example userKeys.apiTokens.key('507f1f77bcf86cd799439011')
* @returns 'user:apiTokens:507f1f77bcf86cd799439011'
*/
apiTokens: createSimpleKeyFactory('user', 'apiTokens'),
};
//# sourceMappingURL=user.mjs.map