UNPKG

nudbclient

Version:

Universal Realtime Database for Node.js and Browser

1 lines 13 kB
{"version":3,"file":"index.cjs","sources":["../src/core.js","../src/node.js","../src/browser.js","../src/index.js"],"sourcesContent":["export class NuDBCore {\n constructor(wsUrl, options = {}) {\n this.wsUrl = wsUrl;\n this.options = options;\n this.socket = null;\n this.listeners = {};\n this.dataCallbacks = {};\n this.queue = [];\n this.headers = options.headers || {};\n this.connect();\n }\n\n // ... existing code ...\n\n _handleMessage(data) {\n try {\n const msg = JSON.parse(data);\n if (msg.type === \"update\" && this.listeners[msg.path]) {\n this.listeners[msg.path].forEach(callback => callback(msg.data));\n }\n if (msg.type === \"data\" && this.dataCallbacks[msg.path]) {\n this.dataCallbacks[msg.path].forEach(callback => callback(msg.data));\n delete this.dataCallbacks[msg.path];\n }\n } catch (err) {\n console.error(\"Message handling error:\", err);\n }\n }\n\n _handleClose() {\n console.log(\"WebSocket disconnected, reconnecting...\");\n setTimeout(() => this.connect(), 3000);\n }\n\n // ... rest of your existing code ...\n\n _generateId() {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let str = \"\";\n for (let i = 0; i < 17; i++) {\n str += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return `${Date.now()}${str}`;\n }\n\n setHeader(key, value) {\n this.headers[key] = value;\n return this;\n }\n\n sendMessage(msg) {\n const fullMsg = {\n ...msg,\n headers: this.headers,\n };\n\n if (this.socket?.readyState === 1) {\n this.socket.send(JSON.stringify(fullMsg));\n } else {\n this.queue.push(fullMsg);\n }\n return this;\n }\n\n subscribe(path) {\n this.sendMessage({ type: \"subscribe\", path });\n return this;\n }\n\n on(path, callback) {\n if (!this.listeners[path]) {\n this.listeners[path] = [];\n this.subscribe(path);\n }\n this.listeners[path].push(callback);\n return this;\n }\n\n get(path, callback) {\n if (!this.dataCallbacks[path]) {\n this.dataCallbacks[path] = [];\n }\n this.dataCallbacks[path].push(callback);\n this.sendMessage({ type: \"get\", path });\n return this;\n }\n\n set(path, data) {\n this.sendMessage({ type: \"set\", path, data });\n return this;\n }\n\n push(path, data) {\n const id = this._generateId();\n const fullPath = `${path}/${id}`;\n this.set(fullPath, data);\n return id;\n }\n\n update(path, data) {\n this.sendMessage({ type: \"update\", path, data });\n return this;\n }\n\n delete(path) {\n this.sendMessage({ type: \"delete\", path });\n return this;\n }\n\n close() {\n if (this.socket) {\n this.socket.close();\n }\n return this;\n }\n}","import { NuDBCore } from './core.js';\nimport WebSocket from 'isomorphic-ws';\n\nexport class NuDB extends NuDBCore {\n constructor(wsUrl, options = {}) {\n super(wsUrl, options);\n }\n\n connect() {\n this.socket = new WebSocket(this.wsUrl);\n\n this.socket.on('open', () => {\n console.log(\"🟢 NuDB WebSocket connected\");\n this._processQueue();\n this._resubscribe();\n });\n\n // Use arrow functions to maintain 'this' context\n this.socket.on('message', (data) => this._handleMessage(data));\n this.socket.on('close', () => this._handleClose());\n this.socket.on('error', (err) => {\n console.error(\"NuDB WebSocket error:\", err);\n });\n }\n\n _processQueue() {\n while (this.queue.length > 0) {\n const action = this.queue.shift();\n this.socket.send(JSON.stringify(action));\n }\n }\n\n _resubscribe() {\n Object.keys(this.listeners).forEach((path) => {\n this.sendMessage({ type: \"subscribe\", path });\n });\n }\n}","import { NuDBCore } from './core.js';\n\nexport class NuDB extends NuDBCore {\n constructor(wsUrl, options = {}) {\n super(wsUrl, options);\n }\n\n connect() {\n this.socket = new WebSocket(this.wsUrl);\n\n this.socket.onopen = () => {\n console.log(\"🟢 NuDB WebSocket connected\");\n this._processQueue();\n this._resubscribe();\n };\n\n this.socket.onmessage = this._handleMessage.bind(this);\n this.socket.onclose = this._handleClose.bind(this);\n }\n\n _processQueue() {\n while (this.queue.length > 0) {\n const action = this.queue.shift();\n this.socket.send(JSON.stringify(action));\n }\n }\n\n _resubscribe() {\n Object.keys(this.listeners).forEach((path) => {\n this.sendMessage({ type: \"subscribe\", path });\n });\n }\n\n _handleMessage(event) {\n try {\n const msg = JSON.parse(event.data);\n console.log(\"📩 NuDB received:\", msg);\n\n if (msg.type === \"update\" && this.listeners[msg.path]) {\n this.listeners[msg.path].forEach((callback) => callback(msg.data));\n }\n\n if (msg.type === \"data\" && this.dataCallbacks[msg.path]) {\n this.dataCallbacks[msg.path].forEach((callback) => callback(msg.data));\n delete this.dataCallbacks[msg.path];\n }\n } catch (err) {\n console.error(\"NuDB message parse error:\", err);\n }\n }\n\n _handleClose() {\n console.warn(\"🔴 NuDB WebSocket disconnected. Reconnecting...\");\n setTimeout(() => this.connect(), 3000);\n }\n}","import { NuDB as NodeNuDB } from './node.js';\nimport { NuDB as BrowserNuDB } from './browser.js';\n\nexport const NuDB = typeof window !== 'undefined' ? BrowserNuDB : NodeNuDB;\nexport default NuDB;"],"names":["NuDB","WebSocket","BrowserNuDB","NodeNuDB"],"mappings":"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"}