Comparing version 3.0.3 to 3.0.4
@@ -96,40 +96,44 @@ import EventEmitter from './events.js'; | ||
} | ||
const { type, id, method } = packet; | ||
if (id) { | ||
if (type === 'callback') { | ||
const promised = this.calls.get(id); | ||
if (!promised) return; | ||
const [resolve, reject, timeout] = promised; | ||
this.calls.delete(id); | ||
clearTimeout(timeout); | ||
if (packet.error) { | ||
return void reject(new MetacomError(packet.error)); | ||
} | ||
resolve(packet.result); | ||
} else if (type === 'event') { | ||
const [unit, name] = method.split('/'); | ||
const metacomUnit = this.api[unit]; | ||
if (metacomUnit) metacomUnit.emit(name, packet.data); | ||
} else if (type === 'stream') { | ||
const { name, size, status } = packet; | ||
const stream = this.streams.get(id); | ||
if (name && typeof name === 'string' && Number.isSafeInteger(size)) { | ||
if (stream) { | ||
console.error(new Error(`Stream ${name} is already initialized`)); | ||
} else { | ||
const streamData = { id, name, size }; | ||
const stream = new MetaReadable(streamData); | ||
this.streams.set(id, stream); | ||
} | ||
} else if (!stream) { | ||
console.error(new Error(`Stream ${id} is not initialized`)); | ||
} else if (status === 'end') { | ||
await stream.close(); | ||
this.streams.delete(id); | ||
} else if (status === 'terminate') { | ||
await stream.terminate(); | ||
this.streams.delete(id); | ||
const { type, id, name } = packet; | ||
if (type === 'event') { | ||
const [unit, eventName] = name.split('/'); | ||
const metacomUnit = this.api[unit]; | ||
if (metacomUnit) metacomUnit.emit(eventName, packet.data); | ||
return; | ||
} | ||
if (!id) { | ||
console.error(new Error('Packet structure error')); | ||
return; | ||
} | ||
if (type === 'callback') { | ||
const promised = this.calls.get(id); | ||
if (!promised) return; | ||
const [resolve, reject, timeout] = promised; | ||
this.calls.delete(id); | ||
clearTimeout(timeout); | ||
if (packet.error) { | ||
return void reject(new MetacomError(packet.error)); | ||
} | ||
resolve(packet.result); | ||
} else if (type === 'stream') { | ||
const { name, size, status } = packet; | ||
const stream = this.streams.get(id); | ||
if (name && typeof name === 'string' && Number.isSafeInteger(size)) { | ||
if (stream) { | ||
console.error(new Error(`Stream ${name} is already initialized`)); | ||
} else { | ||
console.error(new Error('Stream packet structure error')); | ||
const streamData = { id, name, size }; | ||
const stream = new MetaReadable(streamData); | ||
this.streams.set(id, stream); | ||
} | ||
} else if (!stream) { | ||
console.error(new Error(`Stream ${id} is not initialized`)); | ||
} else if (status === 'end') { | ||
await stream.close(); | ||
this.streams.delete(id); | ||
} else if (status === 'terminate') { | ||
await stream.terminate(); | ||
this.streams.delete(id); | ||
} else { | ||
console.error(new Error('Stream packet structure error')); | ||
} | ||
@@ -161,7 +165,2 @@ } | ||
} | ||
methods.on('*', (event, data) => { | ||
const name = unit + '/' + event; | ||
const packet = { type: 'event', name, data }; | ||
this.send(JSON.stringify(packet)); | ||
}); | ||
this.api[unit] = methods; | ||
@@ -168,0 +167,0 @@ } |
@@ -100,37 +100,39 @@ 'use strict'; | ||
const metacomUnit = this.api[unit]; | ||
if (metacomUnit) metacomUnit.post(eventName, packet.data); | ||
if (metacomUnit) metacomUnit.emit(eventName, packet.data); | ||
return; | ||
} | ||
if (id) { | ||
if (type === 'callback') { | ||
const promised = this.calls.get(id); | ||
if (!promised) return; | ||
const [resolve, reject, timeout] = promised; | ||
this.calls.delete(id); | ||
clearTimeout(timeout); | ||
if (packet.error) { | ||
return void reject(new MetacomError(packet.error)); | ||
} | ||
resolve(packet.result); | ||
} else if (type === 'stream') { | ||
const { name, size, status } = packet; | ||
const stream = this.streams.get(id); | ||
if (name && typeof name === 'string' && Number.isSafeInteger(size)) { | ||
if (stream) { | ||
console.error(new Error(`Stream ${name} is already initialized`)); | ||
} else { | ||
const stream = new MetaReadable(id, name, size); | ||
this.streams.set(id, stream); | ||
} | ||
} else if (!stream) { | ||
console.error(new Error(`Stream ${id} is not initialized`)); | ||
} else if (status === 'end') { | ||
await stream.close(); | ||
this.streams.delete(id); | ||
} else if (status === 'terminate') { | ||
await stream.terminate(); | ||
this.streams.delete(id); | ||
if (!id) { | ||
console.error(new Error('Packet structure error')); | ||
return; | ||
} | ||
if (type === 'callback') { | ||
const promised = this.calls.get(id); | ||
if (!promised) return; | ||
const [resolve, reject, timeout] = promised; | ||
this.calls.delete(id); | ||
clearTimeout(timeout); | ||
if (packet.error) { | ||
return void reject(new MetacomError(packet.error)); | ||
} | ||
resolve(packet.result); | ||
} else if (type === 'stream') { | ||
const { name, size, status } = packet; | ||
const stream = this.streams.get(id); | ||
if (name && typeof name === 'string' && Number.isSafeInteger(size)) { | ||
if (stream) { | ||
console.error(new Error(`Stream ${name} is already initialized`)); | ||
} else { | ||
console.error(new Error('Stream packet structure error')); | ||
const stream = new MetaReadable(id, name, size); | ||
this.streams.set(id, stream); | ||
} | ||
} else if (!stream) { | ||
console.error(new Error(`Stream ${id} is not initialized`)); | ||
} else if (status === 'end') { | ||
await stream.close(); | ||
this.streams.delete(id); | ||
} else if (status === 'terminate') { | ||
await stream.terminate(); | ||
this.streams.delete(id); | ||
} else { | ||
console.error(new Error('Stream packet structure error')); | ||
} | ||
@@ -161,7 +163,2 @@ } | ||
} | ||
methods.on('*', (event, data) => { | ||
const name = unit + '/' + event; | ||
const packet = { type: 'event', name, data }; | ||
this.send(packet); | ||
}); | ||
this.api[unit] = methods; | ||
@@ -168,0 +165,0 @@ } |
@@ -232,11 +232,7 @@ 'use strict'; | ||
const packet = metautil.jsonParse(data) || {}; | ||
const { id, method, type } = packet; | ||
if (id && type === 'call' && method) { | ||
this.rpc(client, packet); | ||
} else if (id && type === 'stream') { | ||
this.stream(client, packet); | ||
} else { | ||
const error = new Error('Packet structure error'); | ||
client.error(500, { error, pass: true }); | ||
} | ||
const { id, type, method } = packet; | ||
if (type === 'call' && id && method) return void this.rpc(client, packet); | ||
else if (type === 'stream' && id) return void this.stream(client, packet); | ||
const error = new Error('Packet structure error'); | ||
client.error(500, { error, pass: true }); | ||
} | ||
@@ -243,0 +239,0 @@ |
{ | ||
"name": "metacom", | ||
"version": "3.0.3", | ||
"version": "3.0.4", | ||
"author": "Timur Shemsedinov <timur.shemsedinov@gmail.com>", | ||
@@ -5,0 +5,0 @@ "description": "Communication protocol for Metarhia stack with rpc, events, binary streams, memory and db access", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
54581
1607