UNPKG

shyft-storage-connector

Version:
763 lines (612 loc) 32.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.StorageTypePostgres = exports.extendWithFromStateCheck = exports.preMutationPermissionCheckQueryGenerator = exports.transformFilterAttributeName = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _shyft = require("shyft"); var _storageDataTypes = require("./storageDataTypes"); var _dataloader = _interopRequireDefault(require("dataloader")); var _util = require("./util"); var _filter = require("./filter"); var _permission = require("./permission"); var _helpers = require("./helpers"); var _i18n = require("./i18n"); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var processOrmError = function processOrmError(err, storageInstance, qBuilder, constraints) { if (String(err.code) === '23505') { var meta; if (constraints) { var constraintName = err.constraint; if (constraintName) { meta = constraints.unique[constraintName]; } } throw new _shyft.CustomError('Uniqueness constraint violated', 'UniqueConstraintError', null, meta); } else if (String(err.code) === '23503') { throw new _shyft.CustomError('Foreign key not found', 'ForeignKeyConstraintError'); } else if (String(err.code) === '22P02') { throw new _shyft.CustomError(err.message, 'InvalidInputSyntaxError'); } else if (String(err.code) === '23502') { throw new _shyft.CustomError(err.message, 'NotNullConstraintViolationError'); } else if (String(err.code) === '42703') { throw new _shyft.CustomError(err.message, 'UndefinedColumnError'); } storageInstance.logger.logQueryError(err.message, qBuilder.getSql()); throw new _shyft.CustomError('Undefined server error', 'UndefinedServerError', 500); }; var transformFilterAttributeName = function transformFilterAttributeName(context, entity, modelRegistry) { return (0, _i18n.i18nTransformFilterAttributeName)(context, entity, modelRegistry); }; exports.transformFilterAttributeName = transformFilterAttributeName; var createDataLoader = function createDataLoader(context, entity, StorageTypePostgres) { var storageInstance = StorageTypePostgres.getStorageInstance(); var modelRegistry = StorageTypePostgres.getStorageModels(); var manager = storageInstance.manager; var loader = new _dataloader["default"]( /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ids) { var entityName, _modelRegistry$entity, filterShaper, storageTableName, _entity$getPrimaryAtt, primaryAttributeName, permissionWhere, baseWhere, where, qBuilder, rows, data; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: entityName = entity.name; _modelRegistry$entity = modelRegistry[entityName], filterShaper = _modelRegistry$entity.filterShaper, storageTableName = _modelRegistry$entity.storageTableName; _entity$getPrimaryAtt = entity.getPrimaryAttribute(), primaryAttributeName = _entity$getPrimaryAtt.name; _context.next = 5; return (0, _permission.handlePermission)(context, entity, _permission.PERMISSION_TYPES.read); case 5: permissionWhere = _context.sent; if (permissionWhere) { permissionWhere = filterShaper(permissionWhere); } baseWhere = { $and: [] }; if (ids.length === 1) { baseWhere.$and.push((0, _defineProperty2["default"])({}, primaryAttributeName, ids[0])); } else { baseWhere.$and.push((0, _defineProperty2["default"])({}, primaryAttributeName, { $in: ids })); } where = (0, _permission.applyPermission)(baseWhere, permissionWhere); qBuilder = manager.createQueryBuilder(storageTableName, storageTableName); (0, _filter.buildWhereQuery)(qBuilder, where, entityName, modelRegistry, true); _context.prev = 12; _context.next = 15; return qBuilder.getMany(); case 15: rows = _context.sent; data = (0, _helpers.parseValuesMap)(entity, rows, modelRegistry[entityName], context); // reorder results to match requested IDs order // https://github.com/facebook/dataloader/issues/66 return _context.abrupt("return", (0, _shyft.sortDataByKeys)(ids, data, primaryAttributeName)); case 20: _context.prev = 20; _context.t0 = _context["catch"](12); processOrmError(_context.t0, storageInstance, qBuilder); case 23: return _context.abrupt("return", null); case 24: case "end": return _context.stop(); } } }, _callee, null, [[12, 20]]); })); return function (_x) { return _ref.apply(this, arguments); }; }()); return loader; }; var buildInstanceNotFoundError = function buildInstanceNotFoundError(id) { return new _shyft.CustomError("Instance with ID '".concat(id, "' not found"), 'InstanceNotFound'); }; var buildInstanceNotFoundOrAccessDeniedError = function buildInstanceNotFoundOrAccessDeniedError(id) { return new _shyft.CustomError("Instance with ID '".concat(id, "' not found or access denied"), 'InstanceNotFoundOrAccessDenied'); }; var buildMutationDeniedError = function buildMutationDeniedError(mutationName) { return new _shyft.CustomError("Mutation '".concat(mutationName, "' denied"), 'PermissionError', 403); }; var preMutationPermissionCheckQueryGenerator = function preMutationPermissionCheckQueryGenerator(StorageTypePostgres, permissionWhere, entityName, modelRegistry) { var storageInstance = StorageTypePostgres.getStorageInstance(); var manager = storageInstance.manager; var qBuilder = manager.createQueryBuilder().select().from(''); (0, _filter.buildWhereQuery)(qBuilder, permissionWhere, entityName, modelRegistry); var _qBuilder$getQueryAnd = qBuilder.getQueryAndParameters(), _qBuilder$getQueryAnd2 = (0, _slicedToArray2["default"])(_qBuilder$getQueryAnd, 2), query = _qBuilder$getQueryAnd2[0], queryParams = _qBuilder$getQueryAnd2[1]; return [query.replace(/ \* FROM WHERE /, ' ') + ' AS found', queryParams]; }; exports.preMutationPermissionCheckQueryGenerator = preMutationPermissionCheckQueryGenerator; var extendWithFromStateCheck = function extendWithFromStateCheck(where, entity, entityMutation) { var fromState = entityMutation.fromState; var states = entity.getStates(); if (!fromState || !states) { return; } var fromStates = (0, _shyft.isArray)(fromState) ? fromState : [fromState]; var stateIds = fromStates.map(function (stateName) { return states[stateName]; }); where.$and.push({ state: { $in: stateIds } }); }; exports.extendWithFromStateCheck = extendWithFromStateCheck; var StorageTypePostgres = new _shyft.StorageType({ name: 'StorageTypePostgres', description: 'Postgres database storage type', findOne: function findOne(entity, id, args, context) { var entityName = entity.name; context.loaders = context.loaders || {}; var loaders = context.loaders; var loader = loaders[entityName]; if (!loader) { loader = loaders[entityName] = createDataLoader(context, entity, this); } return loader.load(id); }, findOneByValues: function findOneByValues(entity, args, context) { var _this = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { var storageInstance, manager, modelRegistry, entityName, loaders, loader, _modelRegistry$entity2, filterShaper, storageTableName, _entity$getPrimaryAtt2, primaryAttributeName, permissionWhere, baseWhere, where, qBuilder, transformFn, result; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: storageInstance = _this.getStorageInstance(); manager = storageInstance.manager; modelRegistry = _this.getStorageModels(); entityName = entity.name; context.loaders = context.loaders || {}; loaders = context.loaders; loader = loaders[entityName]; _modelRegistry$entity2 = modelRegistry[entityName], filterShaper = _modelRegistry$entity2.filterShaper, storageTableName = _modelRegistry$entity2.storageTableName; _entity$getPrimaryAtt2 = entity.getPrimaryAttribute(), primaryAttributeName = _entity$getPrimaryAtt2.name; if (!loader) { loader = loaders[entityName] = createDataLoader(context, entity, _this); } _context2.next = 12; return (0, _permission.handlePermission)(context, entity, _permission.PERMISSION_TYPES.find); case 12: permissionWhere = _context2.sent; if (permissionWhere) { permissionWhere = filterShaper(permissionWhere); } baseWhere = { $and: [args] }; where = (0, _permission.applyPermission)(baseWhere, permissionWhere); qBuilder = manager.createQueryBuilder(storageTableName, storageTableName); transformFn = transformFilterAttributeName(context, entity, modelRegistry); (0, _filter.buildWhereQuery)(qBuilder, where, entityName, modelRegistry, false, transformFn); _context2.prev = 19; _context2.next = 22; return qBuilder.getOne(); case 22: result = _context2.sent; _context2.next = 28; break; case 25: _context2.prev = 25; _context2.t0 = _context2["catch"](19); processOrmError(_context2.t0, storageInstance, qBuilder); case 28: if (result) { loader.prime(result[primaryAttributeName], result); } return _context2.abrupt("return", (0, _helpers.parseValues)(entity, result, modelRegistry[entityName], context)); case 30: case "end": return _context2.stop(); } } }, _callee2, null, [[19, 25]]); }))(); }, find: function find(entity, args, context, parentConnection) { var _this2 = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var storageInstance, manager, modelRegistry, entityName, _modelRegistry$entity3, dataShaperMap, filterShaper, storageTableName, primaryAttributeName, loaders, loader, reverseOrder, permissionWhere, pageInfo, limit, offset, baseWhere, where, qBuilder, transformFn, result, orderedResults, data; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: storageInstance = _this2.getStorageInstance(); manager = storageInstance.manager; modelRegistry = _this2.getStorageModels(); entityName = entity.name; _modelRegistry$entity3 = modelRegistry[entityName], dataShaperMap = _modelRegistry$entity3.dataShaperMap, filterShaper = _modelRegistry$entity3.filterShaper, storageTableName = _modelRegistry$entity3.storageTableName; if (entity.getPrimaryAttribute()) { primaryAttributeName = entity.getPrimaryAttribute().name; } context.loaders = context.loaders || {}; loaders = context.loaders; loader = loaders[entityName]; reverseOrder = !!args.last; if (args.skipPermissions) { _context3.next = 15; break; } _context3.next = 13; return (0, _permission.handlePermission)(context, entity, _permission.PERMISSION_TYPES.find); case 13: permissionWhere = _context3.sent; if (permissionWhere) { permissionWhere = filterShaper(permissionWhere); } case 15: pageInfo = { hasNextPage: false, hasPreviousPage: false }; limit = null; if (args.all) { _context3.next = 22; break; } limit = (0, _util.getLimit)(args.first, args.last); if (!(limit === 0)) { _context3.next = 21; break; } return _context3.abrupt("return", { data: [], pageInfo: pageInfo }); case 21: limit += 1; // ask for 1 more to determine if there is a next page case 22: offset = args.offset; baseWhere = { $and: [_objectSpread({}, (0, _filter.processAndConvertFilter)(entity, filterShaper, args, _this2)), _objectSpread({}, (0, _shyft.processCursors)(entity, args))] }; where = args.skipPermissions ? baseWhere : (0, _permission.applyPermission)(baseWhere, permissionWhere); if (parentConnection) { where.$and.push((0, _defineProperty2["default"])({}, parentConnection.attribute, parentConnection.id)); } qBuilder = manager.createQueryBuilder(storageTableName, storageTableName).offset(offset); if (limit) { qBuilder.limit(limit); } if (args.orderBy) { args.orderBy.map(function (_ref2) { var attribute = _ref2.attribute, direction = _ref2.direction; if (!dataShaperMap[attribute]) { throw new _shyft.CustomError("Unknown sorting attribute: ".concat(attribute), 'UnknownSortingAttributeError'); } qBuilder.addOrderBy((0, _util.quote)(dataShaperMap[attribute]), reverseOrder ? (0, _util.invertDirection)(direction) : direction); }); } transformFn = transformFilterAttributeName(context, entity, modelRegistry); (0, _filter.buildWhereQuery)(qBuilder, where, entityName, modelRegistry, true, transformFn); _context3.prev = 31; _context3.next = 34; return qBuilder.getMany(); case 34: result = _context3.sent; _context3.next = 40; break; case 37: _context3.prev = 37; _context3.t0 = _context3["catch"](31); processOrmError(_context3.t0, storageInstance, qBuilder); case 40: if (entity.getPrimaryAttribute()) { if (!loader) { loader = loaders[entityName] = createDataLoader(context, entity, _this2); } result.map(function (row) { loader.prime(row[primaryAttributeName], row); }); } if (limit) { // remove the 1 extra row if it exists if (result.length >= limit) { result = result.slice(0, limit - 1); if (reverseOrder) { pageInfo.hasPreviousPage = true; } else { pageInfo.hasNextPage = true; } } } orderedResults = reverseOrder ? result.reverse() : result; data = (0, _helpers.parseValuesMap)(entity, orderedResults, modelRegistry[entityName], context); return _context3.abrupt("return", { data: data, pageInfo: pageInfo }); case 45: case "end": return _context3.stop(); } } }, _callee3, null, [[31, 37]]); }))(); }, count: function count(entity, args, context, parentConnection) { var _this3 = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var storageInstance, manager, modelRegistry, entityName, _modelRegistry$entity4, filterShaper, storageTableName, permissionWhere, baseWhere, where, qBuilder, transformFn, result; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: storageInstance = _this3.getStorageInstance(); manager = storageInstance.manager; modelRegistry = _this3.getStorageModels(); entityName = entity.name; _modelRegistry$entity4 = modelRegistry[entityName], filterShaper = _modelRegistry$entity4.filterShaper, storageTableName = _modelRegistry$entity4.storageTableName; _context4.next = 7; return (0, _permission.handlePermission)(context, entity, _permission.PERMISSION_TYPES.find); case 7: permissionWhere = _context4.sent; if (permissionWhere) { permissionWhere = filterShaper(permissionWhere); } baseWhere = { $and: [_objectSpread({}, (0, _filter.processAndConvertFilter)(entity, filterShaper, args, _this3, context))] }; where = (0, _permission.applyPermission)(baseWhere, permissionWhere); if (parentConnection) { where.$and.push((0, _defineProperty2["default"])({}, parentConnection.attribute, parentConnection.id)); } qBuilder = manager.createQueryBuilder(storageTableName, storageTableName).select('COUNT(*)'); transformFn = transformFilterAttributeName(context, entity, modelRegistry); (0, _filter.buildWhereQuery)(qBuilder, where, entityName, modelRegistry, true, transformFn); _context4.prev = 15; _context4.next = 18; return qBuilder.getRawOne(); case 18: result = _context4.sent; _context4.next = 24; break; case 21: _context4.prev = 21; _context4.t0 = _context4["catch"](15); processOrmError(_context4.t0, storageInstance, qBuilder); case 24: return _context4.abrupt("return", parseInt(result.count, 10)); case 25: case "end": return _context4.stop(); } } }, _callee4, null, [[15, 21]]); }))(); }, mutate: function mutate(entity, id, args, entityMutation, context) { var _this4 = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var entityName, modelRegistry, storageInstance, _modelRegistry$entity5, dataShaper, dataShaperMap, filterShaper, storageTableName, constraints, _entity$getPrimaryAtt3, primaryAttributeName, data, knownAttributes, manager, permissionWhere, result, _preMutationPermissio, _preMutationPermissio2, query, queryParams, preMutationPermissionCheck, qBuilder, _result, baseWhere, where, i18nSerialized, _qBuilder, rowCount, _ref5, _result2, _baseWhere, _where, _qBuilder2, _rowCount; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: if (entityMutation) { _context5.next = 2; break; } throw new _shyft.CustomError('Invalid mutation', 'InvalidMutationError'); case 2: entityName = entity.name; modelRegistry = _this4.getStorageModels(); storageInstance = _this4.getStorageInstance(); _modelRegistry$entity5 = modelRegistry[entityName], dataShaper = _modelRegistry$entity5.dataShaper, dataShaperMap = _modelRegistry$entity5.dataShaperMap, filterShaper = _modelRegistry$entity5.filterShaper, storageTableName = _modelRegistry$entity5.storageTableName, constraints = _modelRegistry$entity5.constraints; _entity$getPrimaryAtt3 = entity.getPrimaryAttribute(), primaryAttributeName = _entity$getPrimaryAtt3.name; data = entityMutation.type !== _shyft.MUTATION_TYPE_DELETE ? (0, _helpers.serializeValues)(entity, entityMutation, args, modelRegistry[entityName], context) : null; if (data) { (0, _shyft.deleteUndefinedProps)(data); knownAttributes = Object.keys(dataShaperMap); Object.keys(data).forEach(function (key) { return !knownAttributes.includes(key) && delete data[key]; }); } manager = storageInstance.manager; _context5.next = 12; return (0, _permission.handlePermission)(context, entity, _permission.PERMISSION_TYPES.mutation, entityMutation, data); case 12: permissionWhere = _context5.sent; if (permissionWhere) { permissionWhere = filterShaper(permissionWhere); } if (!(entityMutation.type === _shyft.MUTATION_TYPE_CREATE)) { _context5.next = 35; break; } if (!(permissionWhere && permissionWhere.$or)) { _context5.next = 22; break; } _preMutationPermissio = preMutationPermissionCheckQueryGenerator(_this4, permissionWhere, entityName, modelRegistry), _preMutationPermissio2 = (0, _slicedToArray2["default"])(_preMutationPermissio, 2), query = _preMutationPermissio2[0], queryParams = _preMutationPermissio2[1]; _context5.next = 19; return manager.query(query, queryParams); case 19: preMutationPermissionCheck = _context5.sent; if (preMutationPermissionCheck[0].found) { _context5.next = 22; break; } throw buildMutationDeniedError(entityMutation.name); case 22: qBuilder = manager.createQueryBuilder().insert().into(storageTableName).values(data).returning('*'); _context5.prev = 23; _context5.next = 26; return qBuilder.execute(); case 26: result = _context5.sent; _context5.next = 32; break; case 29: _context5.prev = 29; _context5.t0 = _context5["catch"](23); processOrmError(_context5.t0, storageInstance, qBuilder, constraints); case 32: return _context5.abrupt("return", (0, _helpers.parseValues)(entity, dataShaper(result.raw[0]), modelRegistry[entityName], context)); case 35: if (!(entityMutation.type === _shyft.MUTATION_TYPE_UPDATE)) { _context5.next = 59; break; } baseWhere = { $and: [(0, _defineProperty2["default"])({}, primaryAttributeName, id)] }; extendWithFromStateCheck(baseWhere, entity, entityMutation); where = (0, _permission.applyPermission)(baseWhere, permissionWhere); if ((0, _shyft.isMap)(data.i18n, true)) { i18nSerialized = JSON.stringify(data.i18n).replace(/\'/g, "''"); data.i18n = function () { return "merge_translations(i18n, '".concat(i18nSerialized, "')"); }; } else { delete data.i18n; } _qBuilder = manager.createQueryBuilder().update(storageTableName).set(data).returning('*'); (0, _filter.buildWhereQuery)(_qBuilder, where, entityName, modelRegistry); _context5.prev = 42; _context5.next = 45; return _qBuilder.execute(); case 45: _result = _context5.sent; _context5.next = 51; break; case 48: _context5.prev = 48; _context5.t1 = _context5["catch"](42); processOrmError(_context5.t1, storageInstance, _qBuilder, constraints); case 51: rowCount = _result.raw.length; if (!(rowCount < 1)) { _context5.next = 56; break; } if (!permissionWhere) { _context5.next = 55; break; } throw buildInstanceNotFoundOrAccessDeniedError(id); case 55: throw buildInstanceNotFoundError(id); case 56: return _context5.abrupt("return", (0, _helpers.parseValues)(entity, dataShaper(_result.raw[0]), modelRegistry[entityName], context)); case 59: if (!(entityMutation.type === _shyft.MUTATION_TYPE_DELETE)) { _context5.next = 80; break; } _baseWhere = { $and: [(0, _defineProperty2["default"])({}, primaryAttributeName, id)] }; extendWithFromStateCheck(_baseWhere, entity, entityMutation); _where = (0, _permission.applyPermission)(_baseWhere, permissionWhere); _qBuilder2 = manager.createQueryBuilder()["delete"]().from(storageTableName).returning('*'); (0, _filter.buildWhereQuery)(_qBuilder2, _where, entityName, modelRegistry); _context5.prev = 65; _context5.next = 68; return _qBuilder2.execute(); case 68: _result2 = _context5.sent; _context5.next = 74; break; case 71: _context5.prev = 71; _context5.t2 = _context5["catch"](65); processOrmError(_context5.t2, storageInstance, _qBuilder2, constraints); case 74: _rowCount = _result2.raw.length; if (!(_rowCount < 1)) { _context5.next = 79; break; } if (!permissionWhere) { _context5.next = 78; break; } throw buildInstanceNotFoundOrAccessDeniedError(id); case 78: throw buildInstanceNotFoundError(id); case 79: return _context5.abrupt("return", (_ref5 = { deleteRowCount: _rowCount }, (0, _defineProperty2["default"])(_ref5, primaryAttributeName, id), (0, _defineProperty2["default"])(_ref5, "rows", _result2.raw.map(dataShaper)), _ref5)); case 80: return _context5.abrupt("return", null); case 81: case "end": return _context5.stop(); } } }, _callee5, null, [[23, 29], [42, 48], [65, 71]]); }))(); }, checkLookupPermission: function checkLookupPermission(entity, filter) { var _this5 = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { var storageInstance, manager, modelRegistry, entityName, _modelRegistry$entity6, filterShaper, storageTableName, permissionWhere, qBuilder, result; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: storageInstance = _this5.getStorageInstance(); manager = storageInstance.manager; modelRegistry = _this5.getStorageModels(); entityName = entity.name; _modelRegistry$entity6 = modelRegistry[entityName], filterShaper = _modelRegistry$entity6.filterShaper, storageTableName = _modelRegistry$entity6.storageTableName; permissionWhere = filterShaper(filter); qBuilder = manager.createQueryBuilder(storageTableName, storageTableName).select('COUNT(*) > 0 AS found'); (0, _filter.buildWhereQuery)(qBuilder, permissionWhere, entityName, modelRegistry, true); _context6.prev = 8; _context6.next = 11; return qBuilder.getRawOne(); case 11: result = _context6.sent; _context6.next = 17; break; case 14: _context6.prev = 14; _context6.t0 = _context6["catch"](8); processOrmError(_context6.t0, storageInstance, qBuilder); case 17: return _context6.abrupt("return", result.found); case 18: case "end": return _context6.stop(); } } }, _callee6, null, [[8, 14]]); }))(); } }); exports.StorageTypePostgres = StorageTypePostgres; var _default = StorageTypePostgres; exports["default"] = _default; StorageTypePostgres.addDataTypeMap(_shyft.DataTypeID, _storageDataTypes.StorageDataTypeBigInt); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeInteger, _storageDataTypes.StorageDataTypeInteger); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeBigInt, _storageDataTypes.StorageDataTypeBigInt); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeFloat, _storageDataTypes.StorageDataTypeNumeric); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeBoolean, _storageDataTypes.StorageDataTypeBoolean); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeString, _storageDataTypes.StorageDataTypeText); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeJson, _storageDataTypes.StorageDataTypeJSON); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeTimestamp, _storageDataTypes.StorageDataTypeTimestamp); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeTimestampTz, _storageDataTypes.StorageDataTypeTimestampTz); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeDate, _storageDataTypes.StorageDataTypeDate); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeTime, _storageDataTypes.StorageDataTypeTime); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeTimeTz, _storageDataTypes.StorageDataTypeTimeTz); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeUUID, _storageDataTypes.StorageDataTypeUUID); StorageTypePostgres.addDataTypeMap(_shyft.DataTypeI18n, _storageDataTypes.StorageDataTypeI18n); StorageTypePostgres.addDynamicDataTypeMap(_shyft.isDataTypeEnum, _storageDataTypes.StorageDataTypeInteger); StorageTypePostgres.addDynamicDataTypeMap(_shyft.isDataTypeState, _storageDataTypes.StorageDataTypeInteger); StorageTypePostgres.addDynamicDataTypeMap(_shyft.isObjectDataType, _storageDataTypes.StorageDataTypeJSON); StorageTypePostgres.addDynamicDataTypeMap(_shyft.isListDataType, _storageDataTypes.StorageDataTypeJSON);