UNPKG

fakeit

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.

252 lines (189 loc) 7.91 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _lodash = require('lodash'); var _defaultOptions = require('./default-options'); var _defaultOptions2 = _interopRequireDefault(_defaultOptions); var _base = require('../base'); var _base2 = _interopRequireDefault(_base); var _couchbasePromises = require('couchbase-promises'); var _couchbasePromises2 = _interopRequireDefault(_couchbasePromises); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /// @name Couchbase /// @page api /// @description This is used to output data to the Couchbase var Couchbase = function (_Base) { (0, _inherits3.default)(Couchbase, _Base); ///# @name constructor ///# @arg {object} options - The base options ///# @arg {object} output_options - The output options function Couchbase() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var output_options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; (0, _classCallCheck3.default)(this, Couchbase); var _this = (0, _possibleConstructorReturn3.default)(this, (Couchbase.__proto__ || (0, _getPrototypeOf2.default)(Couchbase)).call(this, options)); _this.output_options = (0, _lodash.extend)({}, _defaultOptions2.default, output_options); _this.cluster = new _couchbasePromises2.default.Cluster(_this.output_options.server); var _this$output_options = _this.output_options, username = _this$output_options.username, password = _this$output_options.password; if (username || password) { _this.cluster.authenticate({ username: username || '', password: password || '' }); } _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, _createClass3.default)(Couchbase, [{ 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 _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var _this2 = this; var _output_options, server, bucket, timeout; return _regenerator2.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: _output_options = this.output_options, server = _output_options.server, bucket = _output_options.bucket, timeout = _output_options.timeout; return _context.abrupt('return', new _promise2.default(function (resolve, reject) { _this2.bucket = _this2.cluster.openBucket(bucket, function (err) { /* istanbul ignore if : to hard to test since this is a third party function */ if (err) return reject(err); _this2.log('verbose', 'Connection to \'' + bucket + '\' bucket at \'' + server + '\' was successful'); if (timeout) { _this2.bucket.operationTimeout = timeout; } _this2.prepared = true; _this2.bucket.connected = true; resolve(); }); })); case 4: case 'end': return _context.stop(); } } }, _callee, this); })); function setup() { return _ref.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 _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(id, data) { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!(this.prepared !== true)) { _context2.next = 4; break; } if (this.preparing == null) { this.prepare(); } _context2.next = 4; return this.preparing; case 4: return _context2.abrupt('return', this.bucket.upsertAsync(id, data)); case 5: case 'end': return _context2.stop(); } } }, _callee2, this); })); function output(_x3, _x4) { return _ref2.apply(this, arguments); } return output; }() ///# @name finalize ///# @description ///# This disconnect from couchbase if it's connected ///# @async }, { key: 'finalize', value: function () { var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() { return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (!(this.bucket || {}).connected) { _context3.next = 4; break; } _context3.next = 3; return this.bucket.disconnect(); case 3: this.bucket.connected = false; case 4: case 'end': return _context3.stop(); } } }, _callee3, this); })); function finalize() { return _ref3.apply(this, arguments); } return finalize; }() }]); return Couchbase; }(_base2.default); exports.default = Couchbase;