fock-logger
Version:
Simple logger for your pet-project
44 lines (43 loc) • 1.71 kB
JavaScript
;
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;