fock-logger
Version:
Simple logger for your pet-project
51 lines • 2.1 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const configurator_1 = __importDefault(require("../config/configurator"));
const { config } = new configurator_1.default();
const f_formatter_1 = __importDefault(require("f-formatter"));
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const day = 60 * 60 * 24;
const format = "*&0000.00.00";
const filter = new RegExp(format.replace("*", "[a-zA-Z]?").replace("&", "[!@#$%^&*()-+]?").replaceAll("0", "[0-9]"), "gi");
const formatter = new f_formatter_1.default();
const pathFormat = (...p) => path_1.default.resolve(path_1.default.join(...p));
class Deleter {
_dir = config.dir;
constructor(dir) {
this._dir = pathFormat(dir);
}
init() {
for (const log of fs_1.default.readdirSync(pathFormat(this._dir, "log"))) {
const name = path_1.default.parse(pathFormat(this._dir, "log", log)).name;
const date = name.match(filter);
if (!date)
continue;
const currentTime = formatter.date.Date(new Date(), "dd.MM.yyyy").split(".").reverse();
const time = date[0].split(".");
const now = formatter.date.Timestamp({
year: Number(currentTime[0]),
month: Number(currentTime[1]),
day: Number(currentTime[2])
}, "seconds");
const fileTime = formatter.date.Timestamp({
year: Number(time[0]),
month: Number(time[1]),
day: Number(time[2])
}, "seconds") +
day * config.deletion_interval;
try {
if (now > fileTime) {
fs_1.default.unlinkSync(pathFormat(this._dir, "log", log));
continue;
}
}
catch { }
}
}
}
exports.default = Deleter;
//# sourceMappingURL=deleter.logger.js.map
;