Socket
Socket
Sign inDemoInstall

metacom

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

metacom - npm Package Compare versions

Comparing version 3.0.3 to 3.0.4

81

dist/metacom.js

@@ -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",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc