@klastra/ksync
Version:
Real-time sync engine for modern applications with 300k+ ops/sec performance
34 lines • 1.07 kB
JavaScript
// Generate unique IDs
export function generateId() {
return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
}
// Generate client ID (persistent across sessions)
export function getClientId() {
if (typeof window !== 'undefined') {
let clientId = localStorage.getItem('ksync-client-id');
if (!clientId) {
clientId = generateId();
localStorage.setItem('ksync-client-id', clientId);
}
return clientId;
}
// Server-side or Node.js
return `server-${generateId()}`;
}
// Simple logger
export function createLogger(debug = false) {
return {
log: (...args) => debug && console.log('[kSync]', ...args),
error: (...args) => console.error('[kSync]', ...args),
warn: (...args) => debug && console.warn('[kSync]', ...args),
};
}
// Deep clone utility
export function deepClone(obj) {
return JSON.parse(JSON.stringify(obj));
}
// Check if running in browser
export function isBrowser() {
return typeof window !== 'undefined';
}
//# sourceMappingURL=utils.js.map