UNPKG

fakeit-facet

Version:

Command-line utility that generates fake data which can be output as JSON, YAML, CSON, or CSV formats based on models defined in YAML.

224 lines (170 loc) 8.3 kB
"use strict"; var _keysInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/keys"); var _valuesInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/values"); var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct"); var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); _Object$defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator")); var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise")); var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map")); var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf")); var _lodash = require("lodash"); var _highlightEs = _interopRequireDefault(require("highlight-es")); var _cliTable = _interopRequireDefault(require("cli-table")); var _chalk = _interopRequireDefault(require("chalk")); var _defaultOptions = _interopRequireDefault(require("./default-options")); var _base = _interopRequireDefault(require("../base")); var _utils = require("../utils"); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /// @name Console /// @page api /// @description This is used to output data to the console var Console = /*#__PURE__*/function (_Base) { (0, _inherits2["default"])(Console, _Base); var _super = _createSuper(Console); /// # @name constructor /// # @arg {object} options - The base options /// # @arg {object} output_options - The output options function Console() { var _this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var output_options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; (0, _classCallCheck2["default"])(this, Console); _this = _super.call(this, options); _this.output_options = (0, _lodash.extend)({ highlight: true }, _defaultOptions["default"], output_options); _this.prepared = false; return _this; } /// # @name prepare /// # @description /// # This is used to prepare the saving functionality that is determined by the /// # options that were passed to the constructor. /// # It sets a variable of `this.preparing` that ultimately calls `this.setup` that returns a promise. /// # This way when you go to save data it, that function will know if the setup is complete or not and /// # wait for it to be done before it starts saving data. /// # @returns {promise} - The setup function that was called /// # @async (0, _createClass2["default"])(Console, [{ key: "prepare", value: function prepare() { this.preparing = true; this.preparing = this.setup(); return this.preparing; } /// # @name setup /// # @description /// # This is used to setup the saving function that will be used. }, { key: "setup", value: function () { var _setup = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var _this2 = this; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(this.preparing == null)) { _context.next = 2; break; } return _context.abrupt("return", this.prepare()); case 2: return _context.abrupt("return", new _promise["default"](function (resolve) { // theres noting to setup for the Console output // this is just here so that all the Outputters are setup the same process.nextTick(function () { _this2.prepared = true; resolve(); }); })); case 3: case "end": return _context.stop(); } } }, _callee, this); })); function setup() { return _setup.apply(this, arguments); } return setup; }() /// # @name output /// # @description /// # This is used to output the data that's passed to it /// # @arg {string} id - The id to use for this data /// # @arg {object, array, string} data - The data that you want to be saved /// # @async }, { key: "output", value: function () { var _output = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(id, data) { var _context2, table; return _regenerator["default"].wrap(function _callee2$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (!(this.prepared !== true)) { _context3.next = 4; break; } if (this.preparing == null) { this.prepare(); } _context3.next = 4; return this.preparing; case 4: if (!this.output_options.highlight) { _context3.next = 17; break; } if (!(this.output_options.format === 'csv')) { _context3.next = 15; break; } table = new _cliTable["default"](); _context3.next = 9; return _utils.parsers.csv.parse(data); case 9: data = _context3.sent; table.push((0, _map["default"])(_context2 = (0, _keysInstanceProperty(_lodash))(data[0])).call(_context2, function (key) { return _chalk["default"].bold(key); })); (0, _forEach["default"])(data).call(data, function (obj) { return table.push((0, _valuesInstanceProperty(_lodash))(obj)); }); data = table; _context3.next = 16; break; case 15: data = (0, _highlightEs["default"])(data); case 16: data += ''; case 17: return _context3.abrupt("return", data); case 18: case "end": return _context3.stop(); } } }, _callee2, this); })); function output(_x, _x2) { return _output.apply(this, arguments); } return output; }() }]); return Console; }(_base["default"]); exports["default"] = Console;