UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

101 lines 8.26 kB
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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