UNPKG

perfrunner-core

Version:

Automated UI performance test tool to measure performance changes for the web apps and sites

42 lines (41 loc) 1.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Db = void 0; const FileSync_1 = __importDefault(require("lowdb/adapters/FileSync")); const lowdb_1 = __importDefault(require("lowdb")); const logger_1 = require("../logger"); class Db { constructor(connectpionString) { const adapter = new FileSync_1.default(connectpionString); (0, logger_1.debug)(`connecting to: ${connectpionString}`); this._db = (0, lowdb_1.default)(adapter); } write(data, purge) { const db = this._db; db.defaults({ profile: [], count: 0 }).write(); if (purge) { this.purge(); } db.get('profile').push(data).write(); db.update('count', (n) => n + 1).write(); return Promise.resolve(undefined); } read(url) { const data = this._db.get('profile').value(); const result = typeof url === 'string' ? data.filter((x) => x.runParams.url.toLowerCase() === url.toLowerCase()) : data; return Promise.resolve(result); } purge() { (0, logger_1.debug)(`clearing old data`); this._db .get('profile') .remove(() => true) .write(); this._db.update('count', (_) => 0).write(); return Promise.resolve(); } } exports.Db = Db;