UNPKG

@riao/dbal

Version:
69 lines 2.29 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Repository = void 0; class Repository { constructor(options) { this.isReady = null; /* eslint-disable-next-line no-console */ this.logFn = console.log; this.logEnabled = false; } init(options) { this.setDriver(options.driver); } /** * Set the repository driver to run queries on * * @param driver Driver to set */ setDriver(driver) { this.driver = driver; } /** * Check if the database is ready, and throw an error if it's not */ readyCheck() { if (this.isReady === null) { throw new Error('Cannot query repository before database init()'); } else if (this.isReady === false) { throw new Error('Cannot query repository because database init() failed'); } } setLog(log) { this.logFn = log; } startLog() { this.logEnabled = true; return this; } stopLog() { this.logEnabled = false; return this; } /** * Check & query the database * * @param query Query to run */ query(query) { return __awaiter(this, void 0, void 0, function* () { this.readyCheck(); if (this.logEnabled) { this.logFn(query); } return this.driver.query(query); }); } } exports.Repository = Repository; //# sourceMappingURL=repository.js.map