abstract-things
Version:
Base for building libraries that interact with physical things, such as IoT-devices
32 lines (25 loc) • 660 B
JavaScript
;
const Thing = require('../thing');
const { duration } = require('../values');
const maxChangeTime = Symbol('maxChangeTime');
/**
* Marker for lights that support fading effects for dimming and color
* changing.
*/
module.exports = Thing.mixin(Parent => class extends Parent {
static get capability() {
return 'fading';
}
static availableAPI(builder) {
builder.action('maxChangeTime')
.description('Get the maximum duration a change can occur over')
.returns('duration')
.done();
}
maxChangeTime() {
return Promise.resolve(this[maxChangeTime]);
}
updateMaxChangeTime(t) {
this[maxChangeTime] = duration(t);
}
});