UNPKG

shyft-storage-connector

Version:
114 lines (85 loc) 3.17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.quote = exports.asyncForEach = exports.getLimit = exports.invertDirection = exports.generateIndexName = exports.SYSTEM_NAME_MAX_LENGTH = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _crypto = _interopRequireDefault(require("crypto")); // postgres limitation var SYSTEM_NAME_MAX_LENGTH = 63; exports.SYSTEM_NAME_MAX_LENGTH = SYSTEM_NAME_MAX_LENGTH; var generateIndexName = function generateIndexName(entityName, attributes) { var suffix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '_idx'; var ret = "".concat(entityName, "_").concat(suffix, "_"); var attributesChain = (attributes || []).join('_'); var attributesSortedChain = (attributes || []).sort().join('__'); var hashLength = 10; var hash = _crypto["default"].createHash('sha256').update(attributesSortedChain).digest('hex').substr(0, hashLength); var shortendAttributesChain = attributesChain.substr(0, SYSTEM_NAME_MAX_LENGTH - hashLength - ret.length - 1); ret = "".concat(entityName, "_").concat(shortendAttributesChain, "_").concat(hash, "_").concat(suffix); return ret; }; exports.generateIndexName = generateIndexName; var invertDirection = function invertDirection(direction) { return direction === 'DESC' ? 'ASC' : 'DESC'; }; exports.invertDirection = invertDirection; var getLimit = function getLimit(first, last) { if (first >= 0) { return first; } else if (last >= 0) { return last; } return 10; }; exports.getLimit = getLimit; var asyncForEach = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(array, callback) { var index; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: index = 0; case 1: if (!(index < array.length)) { _context.next = 7; break; } _context.next = 4; return callback(array[index], index, array); case 4: index++; _context.next = 1; break; case 7: case "end": return _context.stop(); } } }, _callee); })); return function asyncForEach(_x, _x2) { return _ref.apply(this, arguments); }; }(); exports.asyncForEach = asyncForEach; var quote = function quote(item) { if (!item) { throw new Error('quote() requires an input'); } if (item.includes('.')) { var arr = item.split('.'); arr[1] = quote(arr[1]); return arr.join('.'); } // special care for json pointers if (item.includes('->')) { var _arr = item.split('->'); _arr[0] = quote(_arr[0]); return _arr.join('->'); } return "\"".concat(item, "\""); }; exports.quote = quote;