Skip to content

Commit

Permalink
js: rewrite event binding
Browse files Browse the repository at this point in the history
  • Loading branch information
zpl-zak committed Jun 17, 2023
1 parent 4bac965 commit 7f4154e
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 36 deletions.
14 changes: 7 additions & 7 deletions trackjs/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@ const prot = process.env.PROT_KIND || 'udp6';

track.init(prot)

track.event((user, event, props) => {
console.log(`Event: ${event} from [${user}]: ${props}`)
track.on('event', ({userId, event, properties}) => {
console.log(`Event: ${event} from [${userId}]: ${properties}`)
})


track.ident((user, traits) => {
console.log(`User: ${user} with traits: ${traits}`)
track.on('ident', ({userId, traits}) => {
console.log(`User: ${userId} with traits: ${traits}`)
})


track.group((user, group, traits) => {
console.log(`User: ${user}, group: ${group} with traits: ${traits}`)
track.on('group', ({userId, groupId, traits}) => {
console.log(`User: ${userId}, group: ${groupId} with traits: ${traits}`)
})

track.error((err, msg) => {
track.on('error', (err, msg) => {
console.error(err)
if (msg) console.error(msg)
})
Expand Down
41 changes: 12 additions & 29 deletions trackjs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const dgram = require('dgram')

module.exports = {
init: (type='udp6', ipv6_only=false) => {
module.callbacks = {}
module.sock = dgram.createSocket({type: type, ipv6Only: ipv6_only})

module.sock.on('error', err => {
Expand All @@ -13,26 +14,26 @@ module.exports = {

module.sock.on('message', (rmsg, rinfo) => {
const msg = rmsg.toString()
if (module.cb_log) module.cb_log(msg, rinfo)
if (module.callbacks["log"]) module.callbacks["log"](msg, rinfo)

try {
const payload = JSON.parse(msg)

// determine which callback to execute
if (payload.hasOwnProperty('userId') && payload.hasOwnProperty('event') && payload.hasOwnProperty('properties')) {
if (module.cb_event) module.cb_event(payload.userId, payload.event, payload.properties, payload)
if (module.callbacks["event"]) module.callbacks["event"](payload)
}
else if (payload.hasOwnProperty('userId') && payload.hasOwnProperty('groupId') && payload.hasOwnProperty('traits')) {
if (module.cb_group) module.cb_group(payload.userId, payload.groupId, payload.traits, payload)
if (module.callbacks["group"]) module.callbacks["group"](payload)
}
else if (payload.hasOwnProperty('userId') && payload.hasOwnProperty('traits')) {
if (module.cb_ident) module.cb_ident(payload.userId, payload.traits, payload)
if (module.callbacks["ident"]) module.callbacks["ident"](payload)
} else {
if (module.cb_unknown) module.cb_unknown(payload)
if (module.callbacks["unknown"]) module.callbacks["unknown"](payload)
}
}
catch (err) {
if (module.cb_error) module.cb_error(err, msg)
if (module.callbacks["error"]) module.callbacks["error"](err, msg)
}
})
},
Expand All @@ -41,33 +42,15 @@ module.exports = {
module.sock.close()
},

log: cb => {
module.cb_log = cb
},

bind: (port, host) => {
if (module.sock === null)
module.init()
throw "Make sure to call init first!"
module.sock.bind(port, host)
},

event: cb => {
module.cb_event = cb
},

ident: cb => {
module.cb_ident = cb
},

group: cb => {
module.cb_group = cb
},

unknown: cb => {
module.cb_unknown = cb
},

error: cb => {
module.cb_error = cb
on: (kind, cb) => {
if (module.sock === null)
throw "Make sure to call init first!"
module.callbacks[kind] = cb
}
}

0 comments on commit 7f4154e

Please sign in to comment.