UNPKG

@caidrive/shared

Version:

caidrive.shared.components

106 lines (105 loc) 3.82 kB
"use strict"; /** * */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.db = exports.pgdb = exports.pgp = void 0; /** * What it does. * * @param name - Parameter description. * @returns Type and description of the returned object. * * @example * ``` * Write me later. * ``` */ const pg_promise_1 = __importDefault(require("pg-promise")); const uuidv4_1 = require("uuidv4"); const pg_mem_1 = require("pg-mem"); const __1 = require("../../../"); const { POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_HOST, POSTGRES_PORT, POSTGRES_PORT_DEV, POSTGRES_DB_DEV, NODE_ENV, } = process.env; const initOptions = { receive(event) { const { command, fields, rows } = event.result; if (command === "INSERT" || command === "UPDATE") { const field = fields === null || fields === void 0 ? void 0 : fields.find((f) => (f.name = "reservation_id")); if (field) { const id = rows[0]["reservation_id"]; if (id) { __1.Dispatcher.dispatchAggregateEvents(new __1.UniqueId(id)); } } } }, }; const pgp = (0, pg_promise_1.default)(initOptions); exports.pgp = pgp; let pgdb; let db; if (process.env.JEST_WORKER_ID !== undefined || process.env.NODE_ENV === "test") { (() => __awaiter(void 0, void 0, void 0, function* () { exports.db = db = (0, pg_mem_1.newDb)(); db.public.registerFunction({ name: "uuid_generate_v4", returns: pg_mem_1.DataType.uuid, implementation: () => (0, uuidv4_1.uuid)(), }); exports.pgdb = pgdb = yield db.adapters.createPgPromise(); yield pgdb.connect(); }))(); } else { const pgCredentials = { development: { database: POSTGRES_DB, username: POSTGRES_USER, password: POSTGRES_PASSWORD, port: POSTGRES_PORT, host: POSTGRES_HOST, }, production: { database: POSTGRES_DB, username: POSTGRES_USER, password: POSTGRES_PASSWORD, port: POSTGRES_PORT, host: POSTGRES_HOST, }, }; /** * */ const { username, database, password, host, port } = pgCredentials[NODE_ENV || "development"]; /** * What it does. * * @param name - Parameter description. * @returns Type and description of the returned object. * * @example * ``` * Write me later. * ``` */ exports.pgdb = pgdb = pgp({ database: database === null || database === void 0 ? void 0 : database.toString(), user: username === null || username === void 0 ? void 0 : username.toString(), password: password === null || password === void 0 ? void 0 : password.toString(), port: port === null || port === void 0 ? void 0 : port.toString(), host: host === null || host === void 0 ? void 0 : host.toString(), }); }