UNPKG

@iotize/tap-scripts

Version:

IoTize Tap scripts

127 lines 9.72 kB
"use strict"; 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.__DEFINED_PROPERTY_GETTER_SCRIPTS_ = void 0; require("@iotize/tap/auth"); require("@iotize/tap/service/impl/device"); require("@iotize/tap/service/impl/interface"); const utility_1 = require("@iotize/common/utility"); const tap_1 = require("@iotize/tap"); const tap_scripts_1 = require("@iotize/tap-scripts"); const buffer_1 = require("buffer"); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); exports.__DEFINED_PROPERTY_GETTER_SCRIPTS_ = (0, tap_1.defineTapPropertyExtension)('scripts', (context) => new TapScriptExtension(context)); class TapScriptExtension { constructor(context) { this.context = context; } get tap() { return this.context.tap; } execute(scriptContentOrProgInstructions, options = {}) { try { let instructions; if (scriptContentOrProgInstructions instanceof buffer_1.Buffer) { scriptContentOrProgInstructions = scriptContentOrProgInstructions.toString(); } if (typeof scriptContentOrProgInstructions === 'string') { instructions = tap_scripts_1.GrammarHelper.toProgInstructions(scriptContentOrProgInstructions); } else { instructions = scriptContentOrProgInstructions; } const scriptRunner = new tap_scripts_1.ScriptRunner(options.io); if (!options.throwOnError) { scriptRunner.errorHandler = () => { }; } else { scriptRunner.errorHandler = err => { throw err; }; } return scriptRunner.run(instructions, this.tap).pipe((0, operators_1.share)()); } catch (err) { return (0, rxjs_1.throwError)(err); } } /** * Configure tap from scripts * @param scriptContentOrInstructions * @param options */ configure(scriptContentOrInstructions, options) { return new rxjs_1.Observable((emitter) => { let executeScriptSub; let cancelExec = false; (() => __awaiter(this, void 0, void 0, function* () { try { emitter.next({ type: 'factory-reset', progress: { loaded: 0, total: 1 } }); (yield this.tap.service.device.factoryReset()).successful(); emitter.next({ type: 'factory-reset', progress: { loaded: 1, total: 1 } }); if (cancelExec) return; yield (0, utility_1.sleep)((options === null || options === void 0 ? void 0 : options.waitTime) || 400); if (cancelExec) return; const obs = this.execute(scriptContentOrInstructions, { throwOnError: false, io: options === null || options === void 0 ? void 0 : options.io }) .pipe((0, operators_1.tap)((event) => { if (event.type === 'end') { if (event.resultCode !== 0) { throw tap_scripts_1.ScriptError.endWithErrorCode(event.resultCode); } } }), (0, operators_1.share)()); executeScriptSub = obs.subscribe(emitter); yield obs.toPromise(); if (cancelExec) return; yield (0, utility_1.sleep)((options === null || options === void 0 ? void 0 : options.waitTime) || 400); if (cancelExec) return; yield this.tap.auth.logout(); // this.sessionKey = undefined; } catch (err) { emitter.error(err); } }))(); return () => { cancelExec = true; executeScriptSub === null || executeScriptSub === void 0 ? void 0 : executeScriptSub.unsubscribe(); }; }).pipe((0, operators_1.share)()); } } // export function configureFromScript( // this: Tap, // scriptContentOrInstructions: string | ProgInstructions[] | Buffer, // options: ConfigureFromScriptOptions = {} // ): Observable<ConfigureFromScriptEvent> { // } // Tap.prototype.configureFromScript = configureFromScript; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLXNjcmlwdC1leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leHQvc3JjL3RhcC1zY3JpcHQtZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDRCQUEwQjtBQUMxQiwyQ0FBeUM7QUFDekMsOENBQTRDO0FBRTVDLG9EQUErQztBQUMvQyxxQ0FBOEQ7QUFDOUQscURBUTZCO0FBQzdCLG1DQUFnQztBQUNoQywrQkFBd0U7QUFDeEUsOENBQTRDO0FBMEIvQixRQUFBLGtDQUFrQyxHQUFHLElBQUEsZ0NBQTBCLEVBQ3hFLFNBQVMsRUFDVCxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FDL0MsQ0FBQztBQUdGLE1BQU0sa0JBQWtCO0lBS3BCLFlBQW1CLE9BQXFCO1FBQXJCLFlBQU8sR0FBUCxPQUFPLENBQWM7SUFFeEMsQ0FBQztJQUxELElBQVksR0FBRztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUtELE9BQU8sQ0FDSCwrQkFBcUUsRUFDckUsVUFBZ0MsRUFBRTtRQUVsQyxJQUFJO1lBQ0EsSUFBSSxZQUFnQyxDQUFDO1lBQ3JDLElBQUksK0JBQStCLFlBQVksZUFBTSxFQUFFO2dCQUNuRCwrQkFBK0IsR0FBRywrQkFBK0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNoRjtZQUNELElBQUksT0FBTywrQkFBK0IsS0FBSyxRQUFRLEVBQUU7Z0JBQ3JELFlBQVksR0FBRywyQkFBYSxDQUFDLGtCQUFrQixDQUMzQywrQkFBK0IsQ0FDbEMsQ0FBQzthQUNMO2lCQUFNO2dCQUNILFlBQVksR0FBRywrQkFBK0IsQ0FBQzthQUNsRDtZQUVELE1BQU0sWUFBWSxHQUFHLElBQUksMEJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE9BQU8s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