@iotize/tap
Version:
IoTize Device client for Javascript
101 lines • 8.26 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { isCodeError } from '@iotize/common/error';
import { TapError } from '@iotize/tap';
import { ResultCode } from '@iotize/tap/client/api';
import { TapDataError } from '../../tap-data-error';
import { BLANK_CONVERTER } from '../../utility/blank-converter';
import { getConverterFromVariableType } from '../../utility/type-converter-factory';
import { AbstractVariable } from '../abstract-variable-stream';
export function createTapVariableFromConfig(variableService, key, value) {
return new TapVariable(key, {
variableService: variableService,
config: {
id: value.id,
dataType: value.dataType,
length: value.length,
},
converter: value.converter ||
(value.dataType !== undefined
? getConverterFromVariableType(value.dataType, value.length || 1)
: BLANK_CONVERTER),
});
}
export class TapVariable extends AbstractVariable {
constructor(
/**
* Variable name identifier.
*/
id, context) {
super();
this.id = id;
this.context = context;
}
get variableId() {
return this.context.config.id;
}
get converter() {
return this.context.converter || BLANK_CONVERTER;
}
get config() {
return this.context.config;
}
set converter(converter) {
this.context.converter = converter;
}
readRawInner() {
return __awaiter(this, void 0, void 0, function* () {
try {
let rawData = (yield this.context.variableService.getValue(this.context.config.id)).body();
if (this.context.subIndex) {
rawData = this.context.subIndex.reduce((acc, subIndex, index) => {
acc[index] = rawData[subIndex];
return acc;
}, new Uint8Array(this.context.subIndex.length));
}
return rawData;
}
catch (err) {
if (isCodeError(TapError.Code.ResponseStatusError, err)) {
switch (err.response.status) {
case ResultCode.NOT_FOUND:
throw TapDataError.variableNotConfigured(this.context.config, err);
}
}
throw err;
}
});
}
writeRaw(value) {
return __awaiter(this, void 0, void 0, function* () {
try {
if (this.context.subIndex) {
const existingData = (yield this.context.variableService.getValue(this.context.config.id)).body();
this.context.subIndex.forEach((subIndex, index) => {
existingData[subIndex] = value[index];
});
value = existingData;
}
(yield this.context.variableService.setValue(this.context.config.id, value)).body();
}
catch (err) {
if (isCodeError(TapError.Code.ResponseStatusError, err)) {
switch (err.response.status) {
case ResultCode.NOT_FOUND:
throw TapDataError.variableNotConfigured(this.context.config, err);
}
}
throw err;
}
});
}
}
// TODO add Sub variable data stream (IE read/write index )
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLXZhcmlhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGF0YS9zcmMvbGliL3RhcmdldC12YXJpYWJsZS90YXAtdmFyaWFibGUvdGFwLXZhcmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUcvRCxNQUFNLFVBQVUsMkJBQTJCLENBSXpDLGVBQWdDLEVBQ2hDLEdBQVksRUFDWixLQUFrQztJQUVsQyxPQUFPLElBQUksV0FBVyxDQUFvQixHQUFHLEVBQUU7UUFDN0MsZUFBZSxFQUFFLGVBQWU7UUFDaEMsTUFBTSxFQUFFO1lBQ04sRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtTQUNyQjtRQUNELFNBQVMsRUFDUCxLQUFLLENBQUMsU0FBUztZQUNmLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTO2dCQUMzQixDQUFDLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztnQkFDakUsQ0FBQyxDQUFDLGVBQWUsQ0FBQztLQUN2QixDQUFDLENBQUM7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