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

@lwmqn/smartobject-watchify

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lwmqn/smartobject-watchify

An extension to make a Smart Object instance listenable to its resource changes

  • 0.9.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

smartobject-watchify

An extension to make a smartobject instance listenable to its resource changes

NPM

Travis branch npm PyPI npm Greenkeeper badge Coverage Status


1. Overview

This module is used make a smartobject instance able to listen to its resource changes, which could be helpful for creating a machine node responsive to any reosurce change within it.


2. Installation

$ npm install smartobject-watchify --save


3. Basic Usage

const SmartObject = require('@lwmqn/smartobject')
const soWatchify = require('@lwmqn/smartobject-watchify')

var so = new SmartObject()
so = soWatchify(so)

so.init('temperature', 0, { sensorValue: 31, units : 'C' })

// attach a listener to receive the change from resource 'temperature/0/sensorValue'
so.onChange('temperature/0/sensorValue', function (cVal, pVal) {
  console.log('A listener to this resource')
  console.log(cVal) // current value
  console.log(pVal) // previous value
})

so.onChange('temperature/0/sensorValue', function (cVal, pVal) {
  console.log('Another listener to this resource')
})

// Modify the sensorValue of the temperature sensor and the listener will be triggered
so.write('temperature', 0, 'sensorValue', 80, function (err, data) {
  if (err) console.log(err)
})

4. APIs



require('smartobject-watchify')(so)

smartobject-watchify exports a function that receives the smartobject instance as the parameter to be extended and returned.

Arguments:

  1. so (Object): The instance of SmartObject class.

Returns:

  • (Object) Watchified smartobject.

Examples:

const SmartObject = require('@lwmqn/smartobject')
const soWatchify = require('@lwmqn/smartobject-watchify')

const so = soWatchify(new SmartObject())



so.onChange(path, listener)

Attach a listener to observe a given resource for its change.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.
  2. listener (Function): function(cVal, pVal) {}, where cVal is the current value and pVal is the previous value before updated.

Returns:

  • (none)

Examples:

so.onChange('temperature/3/sensorValue', function (cVal, pVal) {
  // Listen to 'temperature/3/sensorValue' for its change
})



so.onChangeOnce(path, listener)

Attach an one-time listener to observe a given resource for its change.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.
  2. listener (Function): function(cVal, pVal) {}, where cVal is the current value and pVal is the previous value before updated.

Returns:

  • (Constructor) WatchifiedSmartObject

Examples:

so.onChangeOnce('presence/7/dInState', function (cVal, pVal) {
  // Listen to 'presence/7/dInState' only once for its change
})



so.removeListener(path, listener)

Remove a specified listener from listening to the given resource path.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.
  2. listener (Function): The listener function.

Returns:

  • (none)

Examples:

var presenceListener = function (cVal, pVal) {
  // Listen to 'presence/7/dInState' only once for its change
}

// attach listener
so.onChange('presence/7/dInState', presenceListener)

// remove listener
so.removeListener('presence/7/dInState', presenceListener)



so.removeAllListeners(path)

Remove all listeners from listening to the given resource path.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.

Returns:

  • (none)

Examples:

so.removeAllListeners('temperature/0/sensorValue')

## License

Licensed under MIT.

FAQs

Package last updated on 23 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

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