UNPKG

fock-logger

Version:

Simple logger for your pet-project

44 lines (43 loc) 1.71 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Deleter = exports.pathFormat = void 0; const configurator_1 = __importDefault(require("../config/configurator")); const { config } = new configurator_1.default(); const data_1 = require("../data/data"); const path_1 = __importDefault(require("path")); const promises_1 = require("fs/promises"); const pathFormat = (...p) => path_1.default.resolve(path_1.default.join(...p)); exports.pathFormat = pathFormat; class Deleter { _dir = config.dir; constructor(dir) { this._dir = (0, exports.pathFormat)(dir); } async init() { const dir = await (0, promises_1.readdir)((0, exports.pathFormat)(this._dir, data_1.LOG_DIR_NAME)); for (const log of dir) { const { name } = path_1.default.parse((0, exports.pathFormat)(this._dir, data_1.LOG_DIR_NAME, log)); const date = name.match(data_1.FILTER); if (!date) continue; const time = date[0].split("."); const now = new Date().getTime(); const deleteTime = new Date(...time.map((t) => +t)).getTime() + data_1.DAY * config.deletion_interval * 1000; try { if (now > deleteTime) { (0, promises_1.unlink)((0, exports.pathFormat)(this._dir, data_1.LOG_DIR_NAME, log)); continue; } } catch { /* empty */ } } } } exports.Deleter = Deleter; exports.default = Deleter;