UNPKG

libpiggy

Version:

Use a PostgreSQL database like a JSON document store.

74 lines (51 loc) 1.86 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _shortid = require('shortid'); var _shortid2 = _interopRequireDefault(_shortid); var _isUndefined = require('lodash/isUndefined'); var _isUndefined2 = _interopRequireDefault(_isUndefined); var _createClient = require('./create-client'); var _createClient2 = _interopRequireDefault(_createClient); var _get = require('./get'); var _get2 = _interopRequireDefault(_get); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const set = (() => { var _ref = (0, _asyncToGenerator3.default)(function* ({ store, client, table, key, not, val, options, generateKeyFn }, globals) { generateKeyFn = generateKeyFn || _shortid2.default.generate; let clientCreated = false; try { if (!client) { client = yield (0, _createClient2.default)(options, globals); clientCreated = true; } const { columnNames } = store.settings; key = (0, _isUndefined2.default)(key) ? generateKeyFn() : key; const text = ` INSERT INTO "${table}" ("${columnNames.key}", "${columnNames.val}", "${columnNames.createdAt}", "${columnNames.updatedAt}") VALUES ('${key}', $1, current_timestamp, current_timestamp);`; const values = [val]; yield client.query({ text, values }); return (0, _get2.default)({ store, client, table, key, not }); } catch (error) { throw error; } finally { if (clientCreated) { client.close(); } } }); return function set(_x, _x2) { return _ref.apply(this, arguments); }; })(); exports.default = set;