UNPKG

@iotize/cli

Version:
134 lines 6.22 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; 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 }); const clime_1 = require("clime"); const fs_1 = require("fs"); const operators_1 = require("rxjs/operators"); const in_list_1 = require("../../../../cli/validators/in-list"); const inversify_config_1 = require("../../../../inversify.config"); const types_1 = require("../../../../types"); const ui_1 = require("../../../../ui"); const device_1 = require("../../../options/device"); const ALLOWED_OUTPUT_FORMAT = ['text', 'json']; class MyOptions extends device_1.DeviceOptions { } __decorate([ clime_1.option({ flag: 'f', description: 'Output format', required: false, default: 'text', validator: new in_list_1.InListValidator(ALLOWED_OUTPUT_FORMAT) }), __metadata("design:type", String) ], MyOptions.prototype, "outputFormat", void 0); __decorate([ clime_1.option({ flag: 'o', description: 'Output file', required: false }), __metadata("design:type", String) ], MyOptions.prototype, "output", void 0); exports.MyOptions = MyOptions; let ConfigReadCommand = class ConfigReadCommand extends clime_1.Command { constructor() { super(...arguments); this.command = 'config read'; this.help = 'Read tap configuration'; } execute(options) { return __awaiter(this, void 0, void 0, function* () { const tap = yield options.getDevice(true, false); if (!options.credentials) { ui_1.display.warn(`Use --credentials option to read configuration as an admin user`); } yield this.run({ tap }, { options }); }); } run(context, params) { return __awaiter(this, void 0, void 0, function* () { const { tap } = context; const { options } = params; const schemaConfigEngine = inversify_config_1.container.get(types_1.TYPES.SchemaTapConfigurator); const obs = schemaConfigEngine.read(tap).pipe(operators_1.tap({ next: event => { switch (event.type) { // case 'ERROR': // display.error(`${event.type} ${event.message}`); // break; default: ui_1.display.infonl(`${event.type} ${event.message}`); } }, complete: () => { var _a, _b, _c, _d; let configContent; switch ((_a = options) === null || _a === void 0 ? void 0 : _a.outputFormat) { case 'json': default: configContent = JSON.stringify(schemaConfigEngine.schema, null, 4); break; // default: // configContent = prettyjson.render( // schemaConfigEngine.schema, // { // noColor: true // // emptyArrayMsg: '' // } // ); } if ((_b = options) === null || _b === void 0 ? void 0 : _b.output) { fs_1.writeFileSync(options.output, configContent); ui_1.display.success(`Saved configuration in "${(_c = options) === null || _c === void 0 ? void 0 : _c.output}"`); } else { switch ((_d = options) === null || _d === void 0 ? void 0 : _d.outputFormat) { case 'json': ui_1.display.message(configContent); break; default: ui_1.display.pretty(schemaConfigEngine.schema); } } }, error: err => { ui_1.display.error(err, err); } })); yield obs.toPromise(); }); } }; __decorate([ clime_1.metadata, __metadata("design:type", Function), __metadata("design:paramtypes", [MyOptions]), __metadata("design:returntype", Promise) ], ConfigReadCommand.prototype, "execute", null); ConfigReadCommand = __decorate([ clime_1.command({ description: 'Read Tap configuration' }) ], ConfigReadCommand); exports.default = ConfigReadCommand; //# sourceMappingURL=read.js.map