New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hyperdeck-js-lib

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hyperdeck-js-lib - npm Package Compare versions

Comparing version 1.1.3 to 1.1.4

src/logger.js

3

package.json
{
"name": "hyperdeck-js-lib",
"version": "1.1.3",
"version": "1.1.4",
"description": "A javascript library for communication with the Blackmagic Hyperdeck.",
"main": "src/index.js",
"dependencies": {
"js-logger": "^1.2.0",
"promise": "^7.1.1"

@@ -8,0 +9,0 @@ },

@@ -0,1 +1,3 @@

[![NPM](https://nodei.co/npm-dl/hyperdeck-js-lib.png?months=1)](https://nodei.co/npm/hyperdeck-js-lib/)
[![Build Status](https://travis-ci.org/LA1TV/Hyperdeck-JS-Lib.svg?branch=master)](https://travis-ci.org/LA1TV/Hyperdeck-JS-Lib)

@@ -69,4 +71,16 @@ [![npm version](https://badge.fury.io/js/hyperdeck-js-lib.svg)](https://badge.fury.io/js/hyperdeck-js-lib)

# API Documentation
The hyperdeck API documentation can be found at "https://www.blackmagicdesign.com/uk/manuals/HyperDeck/HyperDeck_Manual.pdf".
# Debugging
You can enable logging:
```javascript
var HyperdeckLib = require("hyperdeck-js-lib");
var Logger = HyperdeckLib.Logger;
Logger.setLevel(Logger.DEBUG);
Logger.setLevel(Logger.INFO);
Logger.setLevel(Logger.WARN);
Logger.setLevel(Logger.ERROR);
Logger.setLevel(Logger.OFF);
```

@@ -6,3 +6,6 @@ /*jshint latedef: false */

var events = require('events');
var Logger = require("../logger");
var logger = Logger.get("hyperdeck.HyperdeckCore");
/**

@@ -86,2 +89,13 @@ * Represents a Hyperdeck.

function isValidRequest(request) {
// requests must not contain new lines
return request.indexOf("\r") === -1 && request.indexOf("\n") === -1;
}
// write to the socket
function write(data) {
logger.debug("Writing to socket.", data);
client.write(data);
}
function ping() {

@@ -128,3 +142,3 @@ self.makeRequest("ping");

function handleResponse(response) {
//console.log("Got response. Resolving provided promise with response.");
logger.debug("Got response. Resolving provided promise with response.");
removeListeners();

@@ -150,3 +164,3 @@ if (response.success) {

function onConnectionLost() {
//console.log("Connection lost. Rejecting provided promise to signify failure.");
logger.debug("Connection lost. Rejecting provided promise to signify failure.");
removeListeners();

@@ -161,3 +175,3 @@ // null to signify connection loss

// don't even attempt the request
//console.log("Not attempting request because connection lost.");
logger.debug("Not attempting request because connection lost.");
onConnectionLost();

@@ -170,4 +184,4 @@ }

// fired at some point in the future.
//console.log("Making request: "+request);
client.write(request+"\n");
logger.info("Making request.", request);
write(request+"\n");
}

@@ -195,3 +209,3 @@ }

}, function() {
//console.log('Socket connected.');
logger.info('Socket connected.');
socketConnected = true;

@@ -202,4 +216,4 @@ // wait for the hyperdeck to confirm it's ready and connected.

client.setEncoding("utf8");
client.on("error", function(/*e*/) {
//console.warn("Socket error.", e);
client.on("error", function(e) {
logger.warn("Socket error.", e);
});

@@ -223,13 +237,17 @@ // when the connection closes handle this

this.makeRequest = function(requestToProcess) {
var completionPromise = new Promise(function(resolve, reject) {
requestCompletionPromises.push({
resolve: resolve,
reject: reject
});
if (!isValidRequest(requestToProcess)) {
throw new Error("Invalid request.");
}
var completionPromise = new Promise(function(resolve, reject) {
requestCompletionPromises.push({
resolve: resolve,
reject: reject
});
});
pendingRequests.push(requestToProcess);
//console.log("Queueing request: "+requestToProcess);
performNextRequest();
return completionPromise;
pendingRequests.push(requestToProcess);
logger.info("Queueing request.", requestToProcess);
performNextRequest();
return completionPromise;
};

@@ -287,4 +305,5 @@

}
logger.debug('Destroying...');
destroyed = true;
client.write('quit\n');
write('quit\n');
responseHandler.destroy();

@@ -291,0 +310,0 @@ client.destroy();

var events = require('events');
var Parser = require('./parser');
var Logger = require("../logger");
var logger = Logger.get("hyperdeck.ResponseHandler");
/**

@@ -31,2 +34,3 @@ * Handles responses from they hyperdeck.

}
logger.debug('Got data on socket.', rawData);
var data = Parser.parse(buffer);

@@ -63,2 +67,3 @@ // reset buffer

}
logger.debug('Destroying...');
destroyed = true;

@@ -65,0 +70,0 @@ clientSocket.removeListener('data', onData);

@@ -5,3 +5,4 @@ // Here we export what we want to be accessible from the library to the developer

Hyperdeck: require("./hyperdeck/hyperdeck"),
HyperdeckCore: require("./hyperdeck/hyperdeck-core")
};
HyperdeckCore: require("./hyperdeck/hyperdeck-core"),
Logger: require("./logger")
};

@@ -60,2 +60,14 @@ var proxyquire = require('proxyquire');

it('throws an exception if request contains a new line', function() {
(function() {
hyperdeck.makeRequest("something\r");
}).should.throw();
(function() {
hyperdeck.makeRequest("something\r");
}).should.throw();
(function() {
hyperdeck.makeRequest("something\r\n");
}).should.throw();
});
it('triggers asynchronousEvent when the responseHandler gets an async response message.', function(done) {

@@ -62,0 +74,0 @@ hyperdeck.getNotifier().once("asynchronousEvent", function(data) {

@@ -7,2 +7,10 @@ var index = require('../src/index');

});
it('should provide the HyperdeckCore class', function() {
index.HyperdeckCore.should.be.ok;
});
it('should provide the Logger class', function() {
index.Logger.should.be.ok;
});
});
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