typescript-scaffolder
Version:
 
66 lines (65 loc) • 2.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = exports.LogTag = exports.LogLevel = void 0;
const util_1 = __importDefault(require("util"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
var LogLevel;
(function (LogLevel) {
LogLevel["Debug"] = "debug";
LogLevel["Info"] = "info";
LogLevel["Warn"] = "warn";
LogLevel["Error"] = "error";
})(LogLevel || (exports.LogLevel = LogLevel = {}));
var LogTag;
(function (LogTag) {
LogTag["Debug"] = "[DEBUG]";
LogTag["Info"] = "[INFO]";
LogTag["Warn"] = "[WARN]";
LogTag["Error"] = "[ERROR]";
})(LogTag || (exports.LogTag = LogTag = {}));
class Logger {
static prefix = '[codegen]';
static logDir = path_1.default.resolve(process.cwd(), 'logs');
static logFile = path_1.default.join(Logger.logDir, `${new Date().toISOString().split('T')[0]}-codegen.log`);
static {
if (!fs_1.default.existsSync(Logger.logDir)) {
fs_1.default.mkdirSync(Logger.logDir, { recursive: true });
}
}
static append(level, funcTag, message) {
const entry = `${new Date().toISOString()} ${level} ${funcTag} ${message}\n`;
fs_1.default.appendFileSync(Logger.logFile, entry, 'utf8');
}
static info(funcName, ...args) {
const funcTag = `[${funcName}]`;
const msg = util_1.default.format(...args);
console.log(`${Logger.prefix} ${LogTag.Info} ${funcTag}`, msg);
Logger.append(LogLevel.Info, funcTag, msg);
}
static warn(funcName, ...args) {
const funcTag = `[${funcName}]`;
const msg = util_1.default.format(...args);
console.warn(`${Logger.prefix} ${LogTag.Warn} ${funcTag}`, msg);
Logger.append(LogLevel.Warn, funcTag, msg);
}
static error(funcName, ...args) {
const funcTag = `[${funcName}]`;
const msg = util_1.default.format(...args);
console.error(`${Logger.prefix} ${LogTag.Error} ${funcTag}`, msg);
Logger.append(LogLevel.Error, funcTag, msg);
throw new Error(`[${funcName}]${funcTag}: ${msg}`);
}
static debug(funcName, ...args) {
const funcTag = `[${funcName}]`;
if (process.env.DEBUG === 'true') {
const msg = util_1.default.format(...args);
console.debug(`${Logger.prefix} ${LogTag.Debug} ${funcTag}`, msg);
Logger.append(LogLevel.Debug, funcTag, msg);
}
}
}
exports.Logger = Logger;