Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

lwmqn-util

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lwmqn-util - npm Package Compare versions

Comparing version 0.2.2 to 0.3.0

4

package.json
{
"name": "lwmqn-util",
"version": "0.2.2",
"version": "0.3.0",
"description": "Utility for LWMQN mqtt-shepherd server and mqtt-node client libraries",

@@ -26,3 +26,3 @@ "main": "index.js",

"dependencies": {
"lwm2m-id": "^1.4.0"
"lwm2m-id": "^1.6.0"
},

@@ -29,0 +29,0 @@ "devDependencies": {

@@ -9,562 +9,17 @@ # lwmqn-util

<br />
## Documentation
## Table of Contents
Please visit the [Wiki](https://github.com/lwmqn/lwmqn-util/wiki).
1. [Overiew](#Overiew)
2. [Installation](#Installation)
3. [APIs](#APIs)
<br />
## Overview
<a name="Overiew"></a>
## 1. Overview
**lwmqn-util** is a utility for Lightweight Mqtt Machine Network Server([mqtt-shepherd](https://github.com/lwmqn/mqtt-shepherd)) and Client([mqtt-node](https://github.com/lwmqn/mqtt-node)) modules. This utility provides some common methods of getting identifiers in string or in number, getting command ids, getting response codes, and tackling the path of resource alloaction.
<a name="Installation"></a>
## 2. Installation
## Installation
> $ npm install lwmqn-util --save
<a name="APIs"></a>
## 3. APIs
## License
* [.getOid()](#API_getOid)
* [.oidKey()](#API_oidKey)
* [.oidNum()](#API_oidNum)
* [.getRid()](#API_getRid)
* [.ridKey()](#API_ridKey)
* [.ridNum()](#API_ridNum)
* [.getRspCode()](#API_getRspCode)
* [.rspCodeKey()](#API_rspCodeKey)
* [.rspCodeNum()](#API_rspCodeNum)
* [.getCmd()](#API_getCmd)
* [.cmdKey()](#API_cmdKey)
* [.cmdNum()](#API_cmdNum)
* [.createPath()](#API_createPath)
* [.slashPath()](#API_slashPath)
* [.dotPath()](#API_dotPath)
* [.pathItems()](#API_pathItems)
* [.buildPathValuePairs()](#API_buildPathValuePairs)
* [.isGoodResponse()](#API_isGoodResponse)
* [.getAccessCtrl()](#API_getAccessCtrl)
* [.jsonify()](#API_jsonify)
********************************************
<a name="API_getOid"></a>
### .getOid(oid)
> Returns an item of the Object identifier.
**Arguments**
1. oid (*_String_ | _Number_*): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_Object_ | _Undefined_): Returns an item of `{ key: 'sampleId', value: 1234 }`, otherwise returns `undefined` if not found.
**Example**
```js
var ut = require('lwmqn-util');
ut.getOid('temperature'); // { key: 'temperature', value: 3303 }
ut.getOid(3303); // { key: 'temperature', value: 3303 }
ut.getOid('3303'); // { key: 'temperature', value: 3303 }
ut.getOid('xxxx'); // undefined
ut.getOid('9999'); // undefined
ut.getOid(9999); // undefined
```
********************************************
<a name="API_oidKey"></a>
### .oidKey(oid)
> Returns the string of an Object identifier.
**Arguments**
1. oid (*_String_ | _Number_*): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_String_): Returns the id string, otherwise returns the argument `'oid'` ifself if not found.
**Example**
```js
ut.oidKey('temperature'); // 'temperature'
ut.oidKey(3303); // 'temperature'
ut.oidKey('3303'); // 'temperature'
ut.oidKey('xxxx'); // 'xxxx' (returns the argument itself if id not found)
ut.oidKey('9999'); // '9999'
ut.oidKey(9999); // 9999
```
********************************************
<a name="API_oidNum"></a>
### .oidNum(oid)
> Returns the number of an Object identifier.
**Arguments**
1. oid (*_String_ | _Number_*): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_Number_): Returns the id number, otherwise returns the argument `'oid'` ifself if not found.
**Example**
```js
ut.oidNum('temperature'); // 3303
ut.oidNum(3303); // 3303
ut.oidNum('3303'); // 3303
ut.oidKey('xxxx'); // 'xxxx' (returns the argument itself if id not found)
ut.oidKey('9999'); // 9999
ut.oidKey(9999); // 9999
```
********************************************
<a name="API_getRid"></a>
### .getRid([oid,] rid)
> Returns an item of the Resource identifier.
> To query a **Resource id specific to an Object**, both `oid` and `rid` should be given.
> To query an **unique Resource id**, only the single argument `rid` is needed.
**Arguments**
1. oid (*_String_ | _Number_*, optional): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
2. rid (*_String_ | _Number_*): `rid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_Object_ | _Undefined_): Returns an item of `{ key: 'sampleId', value: 1234 }`, otherwise returns `undefined` if not found.
**Example**
```js
// get a Resource id specific to an Object
ut.getRid('location', 'lon'); // { key: 'lon', value: 1 }
ut.getRid(6, 1); // { key: 'lon', value: 1 }
ut.getRid('temperature', 'sensorValue'); // { key: 'sensorValue', value: 5700 }
ut.getRid(3303, 5700); // { key: 'sensorValue', value: 5700 }
ut.getRid('temperature', '5700'); // { key: 'sensorValue', value: 5700 }
// get an unqiue Resource id
ut.getRid('appType'); // { key: 'appType', value: 5750 }
ut.getRid(5750); // { key: 'appType', value: 5700 }
ut.getRid('5750'); // { key: 'appType', value: 5750 }
```
********************************************
<a name="API_ridKey"></a>
### .ridKey([oid ,] rid)
> Returns the string of an Resource identifier.
**Arguments**
1. oid (*_String_ | _Number_*, optional): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
2. rid (*_String_ | _Number_*): `rid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_String_): Returns the Resource id in string, otherwise returns the argument `'rid'` ifself if not found.
**Example**
```js
// get a Resource id specific to an Object
ut.ridKey('location', 'lon'); // 'lon'
ut.ridKey(6, 1); // 'lon'
ut.ridKey('temperature', 'sensorValue'); // 'sensorValue'
ut.ridKey(3303, 5700); // 'sensorValue'
ut.ridKey('temperature', '5700'); // 'sensorValue'
// get an unqiue Resource id
ut.ridKey('appType'); // 'appType'
ut.ridKey(5750); // 'appType'
ut.ridKey('5750'); // 'appType'
// returns rid itself if not found
ut.ridKey('no_such_rid'); // 'no_such_rid'
ut.ridKey(3303, 'no_such_id'); // 'no_such_id'
```
********************************************
<a name="API_ridNum"></a>
### .ridNum([oid ,] rid)
> Returns the number of an Resource identifier.
**Arguments**
1. oid (*_String_ | _Number_*, optional): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
2. rid (*_String_ | _Number_*): `rid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_Number_): Returns the Resource id in number, otherwise returns the argument `'rid'` ifself if not found.
**Example**
```js
// get a Resource id specific to an Object
ut.ridNum('location', 'lon'); // 1
ut.ridNum(6, 1); // 1
ut.ridNum('temperature', 'sensorValue'); // 5700
ut.ridNum(3303, 5700); // 5700
ut.ridNum('temperature', '5700'); // 5700
// get an unqiue Resource id
ut.ridNum('appType'); // 5750
ut.ridNum(5750); // 5750
ut.ridNum('5750'); // 5750
// returns rid itself if not found
ut.ridNum('no_such_rid'); // 'no_such_rid'
ut.ridNum('99999'); // 99999 (no such rid)
ut.ridNum(99999); // 99999 (no such rid)
ut.ridNum(3303, 7654); // 7654 (no such rid)
```
********************************************
<a name="API_getRspCode"></a>
### .getRspCode(code)
> Returns an item of the Response code.
**Arguments**
1. code (*_String_ | _Number_*): `code` can be given with a string or a number.
**Returns:**
* (_Object_ | _Undefined_): Returns an item in the form of `{ key: 'Created', value: 201 }`, otherwise returns `undefined` if not found.
**Example**
```js
ut.getRspCode('BadRequest'); // { key: 'BadRequest', value: 400 }
ut.getRspCode(400); // { key: 'BadRequest', value: 400 }
ut.getRspCode(302); // undefined
```
********************************************
<a name="API_rspCodeKey"></a>
### .rspCodeKey(code)
> Returns the string of an Response code.
**Arguments**
1. code (*_String_ | _Number_*): `code` can be given with a string or a number.
**Returns:**
* (_String_ | _Undefined_): Returns the string of an Response code, otherwise returns `undefined` if not found.
**Example**
```js
ut.rspCodeKey('BadRequest'); // 'BadRequest'
ut.rspCodeKey(400); // 'BadRequest'
ut.rspCodeKey(302); // undefined
```
********************************************
<a name="API_rspCodeNum"></a>
### .rspCodeNum(code)
> Returns the number of an Response code.
**Arguments**
1. code (*_String_ | _Number_*): `code` can be given with a string or a number.
**Returns:**
* (_Number_ | _Undefined_): Returns the number of an Response code, otherwise returns `undefined` if not found.
**Example**
```js
ut.rspCodeKey('BadRequest'); // 400
ut.rspCodeKey(400); // 400
ut.rspCodeKey(302); // undefined
```
********************************************
<a name="API_getCmd"></a>
### .getCmd(cmd)
> Returns an item of the command idetifier.
**Arguments**
1. code (*_String_ | _Number_*): `cmd` can be given with a string or a number.
**Returns:**
* (_Object_ | _Undefined_): Returns an item in the form of `{ key: 'discover', value: 2 }`, otherwise returns `undefined` if not found.
**Example**
```js
ut.getCmd('read'); // { key: 'read', value: 0 }
ut.getCmd('write'); // { key: 'write', value: 1 }
ut.getCmd('discover'); // { key: 'discover', value: 2 }
ut.getCmd('writeAttrs'); // { key: 'writeAttrs', value: 3 }
ut.getCmd('execute'); // { key: 'execute', value: 4 }
ut.getCmd('observe'); // { key: 'observe', value: 5 }
ut.getCmd('notify'); // { key: 'execute', value: 6 }
ut.getCmd(0); // { key: 'read', value: 0 }
ut.getCmd(1); // { key: 'write', value: 1 }
ut.getCmd(2); // { key: 'discover', value: 2 }
ut.getCmd(3); // { key: 'writeAttrs', value: 3 }
ut.getCmd(4); // { key: 'execute', value: 4 }
ut.getCmd(5); // { key: 'observe', value: 5 }
ut.getCmd(6); // { key: 'execute', value: 6 }
```
********************************************
<a name="API_cmdKey"></a>
### .cmdKey(cmd)
> Returns the string of an command identifier.
**Arguments**
1. code (*_String_ | _Number_*): `cmd` can be given with a string or a number.
**Returns:**
* (_String_ | _Undefined_): Returns the string of an command id, otherwise returns `undefined` if unrecognized.
**Example**
```js
ut.cmdKey('read'); // 'read'
ut.cmdKey(4); // 'execute'
ut.cmdKey('no_such_cmd'); // undefined
ut.cmdKey(22); // undefined
```
********************************************
<a name="API_cmdNum"></a>
### .cmdNum(cmd)
> Returns the number of an command identifier.
**Arguments**
1. code (*_String_ | _Number_*): `cmd` can be given with a string or a number.
**Returns:**
* (_Number_ | _Undefined_): Returns the number of an command id, otherwise returns `undefined` if unrecognized.
**Example**
```js
ut.cmdKey('read'); // 0
ut.cmdKey(4); // 4
ut.cmdKey('no_such_cmd'); // undefined
ut.cmdKey(22); // undefined
```
********************************************
<a name="API_createPath"></a>
### .createPath(cnnt, ...)
> Returns a path string in conjunction of the given connector.
**Arguments**
1. cnt (*_String_|_Number_*): The connector, can be `'.'` or `'/'`
2. ... (*_String_, variadic*): Words to be connected
**Returns:**
* (_String_): Returns the combined result.
**Example**
```js
ut.createPath('.', 'dev', 0, 'sensor'); // 'dev.0.sensor'
ut.createPath('/', 'dev', 0, 'sensor', 'value'); // 'dev/0/sensor/value'
```
********************************************
<a name="API_slashPath"></a>
### .slashPath(path)
> Returns a path with '/' separator.
**Arguments**
1. path (*_String_*): The path string
**Returns:**
* (_String_): Returns the result. The first and last character will be ignored if they are `'.'` or `'/'`.
**Example**
```js
ut.slashPath('dev.0.sensor.value'); // 'dev/0/sensor/value'
ut.slashPath('.dev.0.sensor.value'); // 'dev/0/sensor/value'
ut.slashPath('/dev.0.sensor/value/'); // 'dev/0/sensor/value'
ut.slashPath('/dev/0/sensor/value/'); // 'dev/0/sensor/value'
```
********************************************
<a name="API_dotPath"></a>
### .dotPath(path)
> Returns a path with '.' separator.
**Arguments**
1. path (*_String_*): The path string
**Returns:**
* (_String_): Returns the result. The first and last character will be ignored if they are `'.'` or `'/'`.
**Example**
```js
ut.dotPath('dev.0.sensor.value'); // 'dev.0.sensor.value'
ut.dotPath('.dev.0.sensor.value'); // 'dev.0.sensor.value'
ut.dotPath('/dev.0.sensor/value/'); // 'dev.0.sensor.value'
ut.dotPath('/dev/0/sensor/value/'); // 'dev.0.sensor.value'
```
********************************************
<a name="API_pathItems"></a>
### .pathItems(path)
> Returns an array of words that are separated by `'.'` or `'/'`.
**Arguments**
1. path (*_String_*): The path string
**Returns:**
* (_Array_): Returns the words in an array.
**Example**
```js
ut.pathItems('dev.0.sensor.value'); // [ 'dev', '0', 'sensor', 'value' ]
ut.pathItems('.dev.0.sensor.value'); // [ 'dev', '0', 'sensor', 'value' ]
ut.pathItems('/dev.0.sensor/value/'); // [ 'dev', '0', 'sensor', 'value' ]
ut.pathItems('/dev/0/sensor/value/'); // [ 'dev', '0', 'sensor', 'value' ]
```
********************************************
<a name="API_buildPathValuePairs"></a>
### .buildPathValuePairs(rootPath, obj)
> Returns an object in path-value pair.
**Arguments**
1. rootPath (*_String_*): The path where the `obj` attachs to
2. obj (*_Object_*): The object to be built from
**Returns:**
* (_Object_): Returns a new object that is orginized in path-vale pair.
**Example**
```js
var myObj = {
a: {
a1: {
a11: 1,
a12: 'hi',
},
a2: 'foo'
},
b: 'hello',
c: 3
};
var newObj = ut.buildPathValuePairs('/', myObj);
// newObj = {
// 'a.a1.a11': 1,
// 'a.a1.a12': 'hi',
// 'a.a2': 'foo',
// 'b': 'hello',
// 'c': 3
// }
var newObj = ut.buildPathValuePairs('/dev/0', myObj);
// newObj = {
// 'dev.0.a.a1.a11': 1,
// 'dev.0.a.a1.a12': 'hi',
// 'dev.0.a.a2': 'foo',
// 'dev.0.b': 'hello',
// 'dev.0.c': 3
// }
```
********************************************
<a name="API_isGoodResponse"></a>
### .isGoodResponse(status)
> Check if a status code is a good response. The good responses are those with status codes in either one of
> 200, 201, 202, 204, and 205.
**Arguments**
1. status (*_String_ | _Number_*): `status` can be given with a string or a number.
**Returns:**
* (_Boolean_): Returns true if status is a good response, otherwise returns false.
**Example**
```js
ut.isGoodResponse(200); // true
ut.isGoodResponse('Deleted'); // true
ut.isGoodResponse('NotFound'); // false
ut.isGoodResponse(409); // false
```
********************************************
<a name="API_getAccessCtrl"></a>
### .getAccessCtrl()
> Get the access control flag of an Resource. Please refer to [lwm2m-id documentation](https://github.com/simenkid/lwm2m-id#getrdefoid-rid).
**Arguments**
1. oid (*_String_ | _Number_*, optional): `oid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
2. rid (*_String_ | _Number_*): `rid` can be given with a string or a number. Notice that a numbered string will be recognized as a number, e.g. '128' is equal to 128.
**Returns:**
* (_String_ | _Null_ | _Undefined_): Returns the access control flag which can be 'R' (read-only), 'W' (write-only), 'RW', 'E' (executable), and null (cannot access). Returns undfined if the Resource is not found.
**Example**
```js
ut.getAccessCtrl('temperature', 'sensorValue'); // 'R'
ut.getAccessCtrl('lightCtrl', 5850); // 'RW'
ut.getAccessCtrl('xxxx', 1234); // undfined
```
********************************************
<a name="API_jsonify"></a>
### .jsonify(str)
> Jsonify a string into a Javascript object.
**Arguments**
1. str (*_String_*): The string to be jsonified.
**Returns:**
* (_Object_ | _String_): Returns an object if the string can be jsonified, otherwise returns the string itself.
**Example**
```js
ut.jsonify('{"x": 3, "y": 'hi'}'); // { x: 3, y: 'hi' }
ut.jsonify('hello there'); // 'hello there'
```
Licensed under [MIT](https://github.com/lwmqn/lwmqn-util/blob/master/LICENSE).

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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