@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
34 lines • 3.94 kB
JavaScript
import { Subject } from 'rxjs';
import { shareReplay } from 'rxjs/operators';
export class LwM2MEditableDataStream {
tap;
config;
_values = new Subject();
/**
* Values observable
*/
values = this._values.asObservable().pipe(shareReplay(1));
constructor(tap, config) {
this.tap = tap;
this.config = config;
}
/**
* Read value.
* It may also trigger a value changed event
*/
async read() {
const result = await this.tap.lwm2m.execute(this.config.readCallFactory());
const body = result.body();
this._values.next(body);
return body;
}
/**
* Write given value
* @param value
*/
async write(value) {
const result = await this.tap.lwm2m.execute(this.config.writeCallFactory(value));
result.successful();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tZGF0YS1zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvZGF0YS1zdHJlYW0vc3JjL2xpYi9sd20ybS1kYXRhLXN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83QyxNQUFNLE9BQU8sdUJBQXVCO0lBV3hCO0lBQ0E7SUFURixPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztJQUU1Qzs7T0FFRztJQUNILE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxRCxZQUNVLEdBQVEsRUFDUixNQUFxQztRQURyQyxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1IsV0FBTSxHQUFOLE1BQU0sQ0FBK0I7SUFDNUMsQ0FBQztJQUVKOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWlCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUNwQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VDYWxsVHlwZSwgVGFwIH0gZnJvbSAnQGlvdGl6ZS90YXAnO1xuaW1wb3J0IHsgRWRpdGFibGVEYXRhU3RyZWFtSW50ZXJmYWNlIH0gZnJvbSAnLi9hcGkvZGF0YS1zb3VyY2UtcHJvdmlkZXItaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbnRlcmZhY2UgTHdNMk1FZGl0YWJsZURhdGFTdHJlYW1Db25maWcge1xuICByZWFkQ2FsbEZhY3RvcnkoKTogU2VydmljZUNhbGxUeXBlPFVpbnQ4QXJyYXk+O1xuICB3cml0ZUNhbGxGYWN0b3J5KGRhdGE6IFVpbnQ4QXJyYXkpOiBTZXJ2aWNlQ2FsbFR5cGU8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBMd00yTUVkaXRhYmxlRGF0YVN0cmVhbVxuICBpbXBsZW1lbnRzIEVkaXRhYmxlRGF0YVN0cmVhbUludGVyZmFjZTxVaW50OEFycmF5Plxue1xuICBwcml2YXRlIF92YWx1ZXMgPSBuZXcgU3ViamVjdDxVaW50OEFycmF5PigpO1xuXG4gIC8qKlxuICAgKiBWYWx1ZXMgb2JzZXJ2YWJsZVxuICAgKi9cbiAgdmFsdWVzID0gdGhpcy5fdmFsdWVzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFwOiBUYXAsXG4gICAgcHJpdmF0ZSBjb25maWc6IEx3TTJNRWRpdGFibGVEYXRhU3RyZWFtQ29uZmlnXG4gICkge31cblxuICAvKipcbiAgICogUmVhZCB2YWx1ZS5cbiAgICogSXQgbWF5IGFsc28gdHJpZ2dlciBhIHZhbHVlIGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIGFzeW5jIHJlYWQoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy50YXAubHdtMm0uZXhlY3V0ZSh0aGlzLmNvbmZpZy5yZWFkQ2FsbEZhY3RvcnkoKSk7XG4gICAgY29uc3QgYm9keSA9IHJlc3VsdC5ib2R5KCk7XG4gICAgdGhpcy5fdmFsdWVzLm5leHQoYm9keSk7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgZ2l2ZW4gdmFsdWVcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBhc3luYyB3cml0ZSh2YWx1ZTogVWludDhBcnJheSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy50YXAubHdtMm0uZXhlY3V0ZShcbiAgICAgIHRoaXMuY29uZmlnLndyaXRlQ2FsbEZhY3RvcnkodmFsdWUpXG4gICAgKTtcbiAgICByZXN1bHQuc3VjY2Vzc2Z1bCgpO1xuICB9XG59XG4iXX0=