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
JavaScript
;
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;