UNPKG

smoke-signal-js

Version:
148 lines (98 loc) 6.2 kB
![smoke-signal-js logo](https://raw.githubusercontent.com/Smoke3785/smoke-signal-js/main/docs/smokeSignal.png?token=GHSAT0AAAAAABT2Z44Z466E3WDWUICWF3C4YUGSZTQ) # smoke-signal-js A JavaScript port of Tobster's communication library, TobComm. Be aware - this implementation is functional, not class-based! This is because I am not Bri\*ish. # Installation `npm install smoke-signal-js` # Usage ```js // For ES6 imports import { smokeSignal } from 'smoke-signal-js'; // For commonJS const { smokeSignal } = require('smoke-signal-js'); ``` # Documentation [GitHub](https://github.com/Smoke3785/smoke-signal-js) **|** [NPM](https://www.npmjs.com/package/smoke-signal-js) **|** [View on Website](https://owenrossikeen.com/docs/smoke-signal-js) **|** [Donate](https://owenrossikeen.com/donate) ## Functions <dl> <dt><a href="#getSendObjectData">getSendObjectData({)</a><code>bytebuffer</code></dt> <dd><p>Encodes an object into a Tobject ( a bytebuffer prepended with metadata) to send data to a LaunchLike server.</p> </dd> <dt><a href="#getSendCommandData">getSendCommandData({lCommand,)</a><code>bytebuffer</code></dt> <dd><p>Encodes data required to send a command to a LaunchLike server.</p> </dd> <dt><a href="#getRequestObjectData">getRequestObjectData({lObject,)</a><code>bytebuffer</code></dt> <dd><p>Encodes data required to make an object request to a LaunchLike server.</p> </dd> <dt><a href="#sendCommand">sendCommand({lObject,)</a></dt> <dd><p>Requests a command from a LaunchLike server with the given code.</p> </dd> <dt><a href="#sendObject">sendObject({lObject,)</a></dt> <dd><p>Sends an object from a LaunchLike server with the given code and data.</p> </dd> <dt><a href="#requestObject">requestObject({cData})</a></dt> <dd><p>Requests an object from a LaunchLike server with the given code.</p> </dd> <dt><a href="#processBytes">processBytes(cData, context)</a></dt> <dd><p>Takes a Tobject and parses out a message type definition and length for the data. The function then calls a handler method of the context which was provided to it with the transcribed data.</p> </dd> </dl> <a name="getSendObjectData"></a> ## getSendObjectData({) ⇒ <code>bytebuffer</code> Encodes an object into a Tobject ( a bytebuffer prepended with metadata) to send data to a LaunchLike server. **Kind**: global function | Param | Type | Description | | ----- | ------------------- | ----------------------------------------- | | { | <code>object</code> | lObject, lInstanceNumber, lStart, cData } | <a name="getSendCommandData"></a> ## getSendCommandData({lCommand,) ⇒ <code>bytebuffer</code> Encodes data required to send a command to a LaunchLike server. **Kind**: global function | Param | Type | Description | | ---------- | ------------------- | ---------------- | | {lCommand, | <code>object</code> | lInstanceNumber} | <a name="getRequestObjectData"></a> ## getRequestObjectData({lObject,) ⇒ <code>bytebuffer</code> Encodes data required to make an object request to a LaunchLike server. **Kind**: global function | Param | Type | Description | | --------- | ------------------- | --------------------------------- | | {lObject, | <code>object</code> | lInstanceNumber, lStart, lLength} | <a name="sendCommand"></a> ## sendCommand({lObject,) ⇒ Requests a command from a LaunchLike server with the given code. **Kind**: global function **Returns**: Nothing. This calls a function within the class context provided to it. | Param | Type | Description | | --------- | ------------------- | ---------------- | | {lObject, | <code>object</code> | lInstanceNumber} | <a name="sendObject"></a> ## sendObject({lObject,) ⇒ Sends an object from a LaunchLike server with the given code and data. **Kind**: global function **Returns**: Nothing. This calls a function within the class context provided to it. | Param | Type | Description | | --------- | ------------------- | ------------------------------- | | {lObject, | <code>object</code> | lInstanceNumber, lStart, cData} | <a name="requestObject"></a> ## requestObject({cData}) ⇒ Requests an object from a LaunchLike server with the given code. **Kind**: global function **Returns**: Nothing. This calls a function within the class context provided to it. | Param | Type | Description | | ------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | {cData} | <code>object</code> | An object containing the request code, the instance number, the starting position, and the length. Generally only the data is provided. | <a name="processBytes"></a> ## processBytes(cData, context) ⇒ Takes a Tobject and parses out a message type definition and length for the data. The function then calls a handler method of the context which was provided to it with the transcribed data. **Kind**: global function **Returns**: Nothing. This calls a function within the class context provided to it. | Param | Type | Description | | ------- | ----------------------- | ---------------------------------------------------------- | | cData | <code>bytebuffer</code> | The data which you wish to decode | | context | <code>class</code> | The class context from which you're calling this function. | # Dependencies - [bytebuffer.js](https://www.npmjs.com/package/bytebuffer) - [smoke-machine-js](https://www.npmjs.com/package/smoke-machine-js) Huge shout-out to bytebuffer.js. This package powers several of my projects and is phenomenal. The developer of smoke-machine-js is remarkably handsome.