UNPKG

mybatis3

Version:
1,288 lines (1,082 loc) 93.3 kB
require("source-map-support").install(); (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define("library", [], factory); else if(typeof exports === 'object') exports["library"] = factory(); else root["library"] = factory(); })(global, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); /******/ }) /************************************************************************/ /******/ ({ /***/ "./src/config/index.js": /*!*****************************!*\ !*** ./src/config/index.js ***! \*****************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = ({ sql: { queryFormat: /:([\w_.()]+)/g, stringifyObjects: false, timezone: false }, log: { level: 'info', // 'fatal', 'error', 'warn', 'info', 'debug', 'trace' traceLinenumber: true, timeFormat: 'YYYY-MM-DD A hh:mm:ss', pretty: true, map: { mybatis3: 'fatal', '*': 'trace' } } }); /***/ }), /***/ "./src/index.js": /*!**********************!*\ !*** ./src/index.js ***! \**********************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty"); /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ "@babel/runtime/regenerator"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "@babel/runtime/helpers/asyncToGenerator"); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var xml2js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! xml2js */ "xml2js"); /* harmony import */ var xml2js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xml2js__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var node_eval__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! node-eval */ "node-eval"); /* harmony import */ var node_eval__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(node_eval__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! fs */ "fs"); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "lodash"); /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var bluebird__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! bluebird */ "bluebird"); /* harmony import */ var bluebird__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(bluebird__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./config */ "./src/config/index.js"); /* harmony import */ var sqlstring__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! sqlstring */ "sqlstring"); /* harmony import */ var sqlstring__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(sqlstring__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! path */ "path"); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_12__); // import $log from './log' var parser = new xml2js__WEBPACK_IMPORTED_MODULE_5___default.a.Parser({ trim: true, normalize: true, preserveChildrenOrder: true, explicitChildren: true, explicitCharkey: true, charsAsChildren: true }); // const log = $log.getInstance('mybatis3') var Mybatis3 = /*#__PURE__*/function () { function Mybatis3() { _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3___default()(this, Mybatis3); this.tablesRaw = []; this.tables = []; this.lastQuery = {}; this.sqlData = {}; // xml raw query this.references = []; // include가 정의된 array } _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4___default()(Mybatis3, [{ key: "setConnection", value: function setConnection(pool) { this.pool = pool; this.pool.getConnectionAsync = bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.promisify(this.pool.getConnection); } }, { key: "getConnection", value: function getConnection() { if (Object(lodash__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(this.pool)) { return this.pool(); } else { return this.pool; } } }, { key: "fnModel", value: function fnModel(name, conn) { var ctx = {}; var table = this.getQuery(name); var self = this; Object(lodash__WEBPACK_IMPORTED_MODULE_8__["forEach"])(table, function (fn, key) { if (key === 'lastQuery') { Object.defineProperty(ctx, key, { get: function get() { return self.lastQuery[name]; } }); } else { ctx[key] = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["partialRight"])(fn, conn); } }); return ctx; } }, { key: "transaction", value: function () { var _transaction = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee(execQuery) { var connection, rst; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return this.pool.getConnectionAsync(); case 3: connection = _context.sent; connection.table = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["partialRight"])(this.fnModel, connection).bind(this); _context.next = 7; return connection.beginTransaction(); case 7: _context.next = 9; return execQuery(connection); case 9: rst = _context.sent; _context.next = 12; return connection.commit(); case 12: connection.release(); _context.next = 21; break; case 15: _context.prev = 15; _context.t0 = _context["catch"](0); _context.next = 19; return connection.rollback(); case 19: connection.release(); throw _context.t0; case 21: return _context.abrupt("return", rst); case 22: case "end": return _context.stop(); } } }, _callee, this, [[0, 15]]); })); function transaction(_x) { return _transaction.apply(this, arguments); } return transaction; }() // loadQuery(path, idx) { }, { key: "loadQuery", value: function loadQuery(tableName, path, xmlFilenames) { var _this = this; Object(lodash__WEBPACK_IMPORTED_MODULE_8__["forEach"])(xmlFilenames, function (filename, idx) { _this.sqlData = idx === 0 ? {} : _this.sqlData; var ext = Object(path__WEBPACK_IMPORTED_MODULE_12__["extname"])(filename); var dir = ext ? Object(path__WEBPACK_IMPORTED_MODULE_12__["join"])(path, filename) : Object(path__WEBPACK_IMPORTED_MODULE_12__["join"])(path, filename + '.xml'); var xml = Object(fs__WEBPACK_IMPORTED_MODULE_7__["readFileSync"])(dir, 'utf-8'); // log.debug('xmls', xml) parser.parseString(xml, function (err, data) { if (err) { return console.error(err.stack || err); } var jsonData = data.query; _this.references = jsonData.sql; var commands = ['select', 'update', 'insert', 'delete']; Object(lodash__WEBPACK_IMPORTED_MODULE_8__["chain"])(commands).map(function (cmd) { return jsonData[cmd] || []; }).flatten().map(function (item) { return _this.sqlData[item.$.id] = item; }).value(); }); }); this.tablesRaw[tableName] = this.sqlData; delete this.tables[tableName]; // log.debug(this.sqlData) } }, { key: "table", value: function table(tableName, dir, xmls) { if (xmls) { this.loadQuery(tableName, dir, xmls); } else { return this.getQuery(tableName); } } }, { key: "model", value: function model() {} /** * query에 대한 function으로 반환 받기 */ }, { key: "getQuery", value: function getQuery(tableName) { var _this2 = this; if (this.tables[tableName]) return this.tables[tableName]; var self = this; var sqlData = this.tablesRaw[tableName]; var rst = { get lastQuery() { return self.lastQuery[tableName]; } }; Object(lodash__WEBPACK_IMPORTED_MODULE_8__["forEach"])(sqlData, function (sql, key) { rst[key] = /*#__PURE__*/function () { var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee2(params, conn) { var qry, _conn; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return _this2.process(sqlData[key], params).then(function (xml) { return _this2.processVariable(xml._, params); })["catch"](function (err) { return console.error(err.stack); }); case 2: qry = _context2.sent; self.lastQuery[tableName] = qry; if (!conn) { _context2.next = 8; break; } return _context2.abrupt("return", conn.query(qry)["finally"](function () { return conn.release(); })); case 8: _conn = _this2.getConnection(); if (!_conn) { _context2.next = 13; break; } return _context2.abrupt("return", _conn.query(qry)); case 13: return _context2.abrupt("return", qry); case 14: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x2, _x3) { return _ref.apply(this, arguments); }; }(); }); this.tables[tableName] = rst; return rst; } }, { key: "process", value: function () { var _process = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee5(xml, params) { var _this3 = this; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: return _context5.abrupt("return", bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.resolve(xml).then( /*#__PURE__*/function () { var _ref2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee4(xml) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: // process xml.$$ xml._ = ''; _context4.next = 3; return bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.each(xml.$$, /*#__PURE__*/function () { var _ref3 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee3(item) { var proc; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (!(item['#name'] === '__text__')) { _context3.next = 3; break; } _context3.next = 6; break; case 3: proc = "process".concat(_this3.capitalizeFirstLetter(item['#name'])); _context3.next = 6; return _this3[proc](item, params); case 6: case "end": return _context3.stop(); } } }, _callee3); })); return function (_x7) { return _ref3.apply(this, arguments); }; }()); case 3: // xml -> xml.$$ -> xml._ build _this3.merge_(xml); // log.debug(xml, 'processed') // log.debug(xml['$$'][1], 'processed') return _context4.abrupt("return", xml); case 5: case "end": return _context4.stop(); } } }, _callee4); })); return function (_x6) { return _ref2.apply(this, arguments); }; }())); case 1: case "end": return _context5.stop(); } } }, _callee5); })); function process(_x4, _x5) { return _process.apply(this, arguments); } return process; }() }, { key: "processInclude", value: function () { var _processInclude = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee6(item, params) { var id, t; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: // log.info('--- process include') id = item.$.refid; t = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["find"])(this.references, { $: { id: id } }); if (t) { _context6.next = 4; break; } throw new Error("There is no include id: ".concat(id)); case 4: _context6.next = 6; return this.processDeep(t, params); case 6: item._ = t._; case 7: case "end": return _context6.stop(); } } }, _callee6, this); })); function processInclude(_x8, _x9) { return _processInclude.apply(this, arguments); } return processInclude; }() }, { key: "processDeep", value: function () { var _processDeep = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee7(xml, params) { var keys; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: // log.info('--- process deep') // log.debug(xml) keys = Object.keys(xml).filter(function (key) { return !/_|\${1,2}|#name/.test(key); }); if (!(keys.length !== 0)) { _context7.next = 4; break; } _context7.next = 4; return this.process(xml, params); case 4: case "end": return _context7.stop(); } } }, _callee7, this); })); function processDeep(_x10, _x11) { return _processDeep.apply(this, arguments); } return processDeep; }() }, { key: "processIf", value: function () { var _processIf = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee8(item, params) { var test; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return this.processVariable(item.$.test, params).then(this.changeAndOr); case 2: test = _context8.sent; if (!node_eval__WEBPACK_IMPORTED_MODULE_6___default()(test)) { _context8.next = 11; break; } _context8.next = 6; return this.processDeep(item, params); case 6: _context8.next = 8; return this.processVariable(item._, params); case 8: item._ = _context8.sent; _context8.next = 12; break; case 11: item._ = ''; case 12: case "end": return _context8.stop(); } } }, _callee8, this); })); function processIf(_x12, _x13) { return _processIf.apply(this, arguments); } return processIf; }() }, { key: "processChoose", value: function () { var _processChoose = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee10(item, params) { var _this4 = this; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.each(item.$$, /*#__PURE__*/function () { var _ref4 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee9(_case) { var testStr, test; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: // log.debug(_case, '_case') testStr = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["get"])(_case, '$.test'); if (!testStr) { _context9.next = 15; break; } _context9.next = 4; return _this4.processVariable(testStr, params).then(_this4.changeAndOr); case 4: test = _context9.sent; if (!node_eval__WEBPACK_IMPORTED_MODULE_6___default()(test)) { _context9.next = 14; break; } _context9.next = 8; return _this4.processDeep(_case, params); case 8: _context9.next = 10; return _this4.processVariable(_case._, params); case 10: _case._ = _context9.sent; throw new bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.CancellationError('matched'); case 14: _case._ = ''; case 15: case "end": return _context9.stop(); } } }, _callee9); })); return function (_x16) { return _ref4.apply(this, arguments); }; }())["catch"](bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.CancellationError, function () { return ''; }); case 2: this.merge_(item, true); // log.debug(item, 'item') case 3: case "end": return _context10.stop(); } } }, _callee10, this); })); function processChoose(_x14, _x15) { return _processChoose.apply(this, arguments); } return processChoose; }() }, { key: "processTrim", value: function () { var _processTrim = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee12(item, params) { var _this5 = this; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.each(item.$$, /*#__PURE__*/function () { var _ref5 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee11(_case) { var testStr, test; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: // log.debug(_case, '_case') testStr = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["get"])(_case, '$.test'); if (!testStr) { _context11.next = 14; break; } _context11.next = 4; return _this5.processVariable(testStr, params).then(_this5.changeAndOr); case 4: test = _context11.sent; if (!node_eval__WEBPACK_IMPORTED_MODULE_6___default()(test)) { _context11.next = 13; break; } _context11.next = 8; return _this5.processDeep(_case, params); case 8: _context11.next = 10; return _this5.processVariable(_case._, params); case 10: _case._ = _context11.sent; _context11.next = 14; break; case 13: _case._ = ''; case 14: case "end": return _context11.stop(); } } }, _callee11); })); return function (_x19) { return _ref5.apply(this, arguments); }; }()); case 2: this.merge_(item); this.processFix(item, item); case 4: case "end": return _context12.stop(); } } }, _callee12, this); })); function processTrim(_x17, _x18) { return _processTrim.apply(this, arguments); } return processTrim; }() }, { key: "processWhere", value: function () { var _processWhere = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee14(item, params) { var _this6 = this; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: _context14.next = 2; return bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.each(item.$$, /*#__PURE__*/function () { var _ref6 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee13(_case) { var testStr, test; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: // log.debug(_case, '_case') testStr = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["get"])(_case, '$.test'); if (!testStr) { _context13.next = 14; break; } _context13.next = 4; return _this6.processVariable(testStr, params).then(_this6.changeAndOr); case 4: test = _context13.sent; if (!node_eval__WEBPACK_IMPORTED_MODULE_6___default()(test)) { _context13.next = 13; break; } _context13.next = 8; return _this6.processDeep(_case, params); case 8: _context13.next = 10; return _this6.processVariable(_case._, params); case 10: _case._ = _context13.sent; _context13.next = 14; break; case 13: _case._ = ''; case 14: case "end": return _context13.stop(); } } }, _callee13); })); return function (_x22) { return _ref6.apply(this, arguments); }; }()); case 2: this.merge_(item); this.processFix(item, { $: { prefixOverrides: 'and |or ', prefix: 'WHERE' } }); // log.debug(item, 'item') case 4: case "end": return _context14.stop(); } } }, _callee14, this); })); function processWhere(_x20, _x21) { return _processWhere.apply(this, arguments); } return processWhere; }() }, { key: "processSet", value: function () { var _processSet = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee16(item, params) { var _this7 = this; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: _context16.next = 2; return bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.each(item.$$, /*#__PURE__*/function () { var _ref7 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee15(_case) { var testStr, test; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: // log.debug(_case, '_case') testStr = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["get"])(_case, '$.test'); if (!testStr) { _context15.next = 14; break; } _context15.next = 4; return _this7.processVariable(testStr, params).then(_this7.changeAndOr); case 4: test = _context15.sent; if (!node_eval__WEBPACK_IMPORTED_MODULE_6___default()(test)) { _context15.next = 13; break; } _context15.next = 8; return _this7.processDeep(_case, params); case 8: _context15.next = 10; return _this7.processVariable(_case._, params); case 10: _case._ = _context15.sent; _context15.next = 14; break; case 13: _case._ = ''; case 14: case "end": return _context15.stop(); } } }, _callee15); })); return function (_x25) { return _ref7.apply(this, arguments); }; }()); case 2: this.merge_(item); this.processFix(item, { $: { suffixOverrides: ',', prefix: 'SET' } }); // log.debug(item, 'item') case 4: case "end": return _context16.stop(); } } }, _callee16, this); })); function processSet(_x23, _x24) { return _processSet.apply(this, arguments); } return processSet; }() }, { key: "processForeach", value: function () { var _processForeach = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee18(item, params) { var _this8 = this; var collection, processedArr; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: _context18.next = 2; return this.processDeep(item, params); case 2: collection = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["get"])(params, item.$.collection) || []; processedArr = []; // log.debug(collection, 'collection') _context18.next = 6; return bluebird__WEBPACK_IMPORTED_MODULE_9___default.a.each(collection, /*#__PURE__*/function () { var _ref8 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee17(col, idx) { var _this8$processVariabl; var qry; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _context17.next = 2; return _this8.processVariable(item._, (_this8$processVariabl = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_this8$processVariabl, item.$.item, col), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_this8$processVariabl, item.$.index, idx), _this8$processVariabl)); case 2: qry = _context17.sent; processedArr.push(qry); case 4: case "end": return _context17.stop(); } } }, _callee17); })); return function (_x28, _x29) { return _ref8.apply(this, arguments); }; }()); case 6: item._ = processedArr.join(item.$.separator); item.$.suffixOverrides = item.$.separator; item.$.prefix = item.$.open; item.$.suffix = item.$.close; this.processFix(item, item); // log.debug(item, 'item') case 11: case "end": return _context18.stop(); } } }, _callee18, this); })); function processForeach(_x26, _x27) { return _processForeach.apply(this, arguments); } return processForeach; }() }, { key: "processBind", value: function () { var _processBind = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee19(item, params) { var s; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee19$(_context19) { while (1) { switch (_context19.prev = _context19.next) { case 0: _context19.next = 2; return this.processVariable(item.$.value, params).then(this.changeAndOr); case 2: s = _context19.sent; params[item.$.name] = node_eval__WEBPACK_IMPORTED_MODULE_6___default()(s); case 4: case "end": return _context19.stop(); } } }, _callee19, this); })); function processBind(_x30, _x31) { return _processBind.apply(this, arguments); } return processBind; }() }, { key: "processVariable", value: function () { var _processVariable = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee20(qry, params) { var rst, escape, reg; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: if (!params) { rst = qry; } escape = sqlstring__WEBPACK_IMPORTED_MODULE_11___default.a.escape; reg = _config__WEBPACK_IMPORTED_MODULE_10__["default"].sql.queryFormat ? new RegExp(_config__WEBPACK_IMPORTED_MODULE_10__["default"].sql.queryFormat, 'g') : /#{([\w_.]+)}/g; rst = qry.replace(/\)/g, ' )').replace(/\( \)/g, '()').replace(reg, function (txt, key) { key = key.replace(/\(\)/g, ''); var val = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["get"])(params, key); if (Object(lodash__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(val)) { val = val(); } else if (Object(lodash__WEBPACK_IMPORTED_MODULE_8__["isObject"])(val) || Object(lodash__WEBPACK_IMPORTED_MODULE_8__["isArray"])(val)) { val = true; } return escape(val, _config__WEBPACK_IMPORTED_MODULE_10__["default"].sql.stringifyObjects, _config__WEBPACK_IMPORTED_MODULE_10__["default"].sql.timezone); }); return _context20.abrupt("return", rst.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ').replace(/NULL/g, 'undefined')); case 5: case "end": return _context20.stop(); } } }, _callee20); })); function processVariable(_x32, _x33) { return _processVariable.apply(this, arguments); } return processVariable; }() }, { key: "changeAndOr", value: function () { var _changeAndOr = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee21(str) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { case 0: return _context21.abrupt("return", str.replace(/ and /gi, ' && ').replace(/ or /gi, ' || ')); case 1: case "end": return _context21.stop(); } } }, _callee21); })); function changeAndOr(_x34) { return _changeAndOr.apply(this, arguments); } return changeAndOr; }() }, { key: "processFix", value: function processFix(item, xml) { if (xml.$.prefixOverrides) { var reg = new RegExp("^".concat(xml.$.prefixOverrides), 'gi'); item._ = item._.replace(reg, ''); } // log.debug('fix', item._) if (xml.$.suffixOverrides) { var _reg = new RegExp("".concat(xml.$.suffixOverrides, "$"), 'gi'); item._ = item._.replace(_reg, ''); } // log.debug('fix', '|' + item._ + '|') if (!Object(lodash__WEBPACK_IMPORTED_MODULE_8__["isEmpty"])(item._)) { item._ = "".concat(xml.$.prefix || '', " ").concat(item._, " ").concat(xml.$.suffix || ''); } // log.debug('fix', item._) } }, { key: "capitalizeFirstLetter", value: function capitalizeFirstLetter(str) { return str.charAt(0).toUpperCase() + str.slice(1); } }, { key: "merge_", value: function merge_(xml, choose) { var processedArr = []; Object(lodash__WEBPACK_IMPORTED_MODULE_8__["forEach"])(xml.$$, function (item) { if (item._) { processedArr.push(item._); if (choose) { return false; } } // item._ && processedArr.push(item._) }); xml._ = processedArr.join(' '); } }]); return Mybatis3; }(); /* harmony default export */ __webpack_exports__["default"] = (new Mybatis3()); /***/ }), /***/ "@babel/runtime/helpers/asyncToGenerator": /*!**********************************************************!*\ !*** external "@babel/runtime/helpers/asyncToGenerator" ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("@babel/runtime/helpers/asyncToGenerator"); /***/ }), /***/ "@babel/runtime/helpers/classCallCheck": /*!********************************************************!*\ !*** external "@babel/runtime/helpers/classCallCheck" ***! \********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("@babel/runtime/helpers/classCallCheck"); /***/ }), /***/ "@babel/runtime/helpers/createClass": /*!*****************************************************!*\ !*** external "@babel/runtime/helpers/createClass" ***! \*****************************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("@babel/runtime/helpers/createClass"); /***/ }), /***/ "@babel/runtime/helpers/defineProperty": /*!********************************************************!*\ !*** external "@babel/runtime/helpers/defineProperty" ***! \********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("@babel/runtime/helpers/defineProperty"); /***/ }), /***/ "@babel/runtime/regenerator": /*!*********************************************!*\ !*** external "@babel/runtime/regenerator" ***! \*********************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("@babel/runtime/regenerator"); /***/ }), /***/ "bluebird": /*!***************************!*\ !*** external "bluebird" ***! \***************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("bluebird"); /***/ }), /***/ "fs": /*!*********************!*\ !*** external "fs" ***! \*********************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("fs"); /***/ }), /***/ "lodash": /*!*************************!*\ !*** external "lodash" ***! \*************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("lodash"); /***/ }), /***/ "node-eval": /*!****************************!*\ !*** external "node-eval" ***! \****************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = require("node-eval"); /***/ }), /***/ "path": /*!**********