@ai-growth/n8n-nodes-wordpress
Version:
n8n node for WordPress integration with AI GROWTH - SEO WP plugin
171 lines (170 loc) • 5.99 kB
JavaScript
"use strict";
exports.__esModule = true;
exports.Logger = exports.LogLevel = void 0;
/**
* Níveis de log
*/
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["NONE"] = 0] = "NONE";
LogLevel[LogLevel["ERROR"] = 1] = "ERROR";
LogLevel[LogLevel["WARN"] = 2] = "WARN";
LogLevel[LogLevel["INFO"] = 3] = "INFO";
LogLevel[LogLevel["DEBUG"] = 4] = "DEBUG";
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
/**
* Classe para gerenciar logs da aplicação
*/
var Logger = /** @class */ (function () {
/**
* Construtor do logger
* @param options Opções de configuração
*/
function Logger(options) {
if (options === void 0) { options = {}; }
var _a, _b, _c;
this.level = (_a = options.level) !== null && _a !== void 0 ? _a : LogLevel.ERROR;
this.prefix = (_b = options.prefix) !== null && _b !== void 0 ? _b : '[WordPress API]';
this.timestamp = options.timestamp !== undefined ? options.timestamp : true;
this.logFn = (_c = options.logFn) !== null && _c !== void 0 ? _c : console.log;
}
/**
* Define o nível de log
* @param level Novo nível de log
*/
Logger.prototype.setLevel = function (level) {
this.level = level;
};
/**
* Formata a mensagem de log
* @param level Nível do log
* @param message Mensagem ou objeto a ser logado
* @returns Mensagem formatada
*/
Logger.prototype.format = function (level, message) {
var timestamp = this.timestamp ? "[".concat(new Date().toISOString(), "] ") : '';
var prefix = this.prefix ? "".concat(this.prefix, " ") : '';
// Formatar objetos
var formattedMessage = message;
if (typeof message === 'object') {
try {
formattedMessage = JSON.stringify(message, null, 2);
}
catch (error) {
formattedMessage = "[Object: ".concat(message.toString(), "]");
}
}
return "".concat(timestamp).concat(prefix).concat(level, ": ").concat(formattedMessage);
};
/**
* Registra um log de nível ERROR
* @param message Mensagem ou objeto a ser logado
* @param data Dados adicionais (opcional)
*/
Logger.prototype.error = function (message, data) {
if (this.level >= LogLevel.ERROR) {
this.logFn(this.format('ERROR', message));
if (data !== undefined) {
this.logFn(this.format('ERROR_DATA', data));
}
}
};
/**
* Registra um log de nível WARN
* @param message Mensagem ou objeto a ser logado
* @param data Dados adicionais (opcional)
*/
Logger.prototype.warn = function (message, data) {
if (this.level >= LogLevel.WARN) {
this.logFn(this.format('WARN', message));
if (data !== undefined) {
this.logFn(this.format('WARN_DATA', data));
}
}
};
/**
* Registra um log de nível INFO
* @param message Mensagem ou objeto a ser logado
* @param data Dados adicionais (opcional)
*/
Logger.prototype.info = function (message, data) {
if (this.level >= LogLevel.INFO) {
this.logFn(this.format('INFO', message));
if (data !== undefined) {
this.logFn(this.format('INFO_DATA', data));
}
}
};
/**
* Registra um log de nível DEBUG
* @param message Mensagem ou objeto a ser logado
* @param data Dados adicionais (opcional)
*/
Logger.prototype.debug = function (message, data) {
if (this.level >= LogLevel.DEBUG) {
this.logFn(this.format('DEBUG', message));
if (data !== undefined) {
this.logFn(this.format('DEBUG_DATA', data));
}
}
};
/**
* Registra uma requisição HTTP
* @param method Método HTTP
* @param url URL da requisição
* @param params Parâmetros da requisição (opcional)
* @param data Dados da requisição (opcional)
*/
Logger.prototype.request = function (method, url, params, data) {
if (this.level >= LogLevel.DEBUG) {
this.debug("".concat(method.toUpperCase(), " ").concat(url));
if (params) {
this.debug('Request params:', params);
}
if (data) {
this.debug('Request data:', data);
}
}
};
/**
* Registra uma resposta HTTP
* @param method Método HTTP da requisição
* @param url URL da requisição
* @param status Status HTTP da resposta
* @param data Dados da resposta (opcional)
*/
Logger.prototype.response = function (method, url, status, data) {
if (this.level >= LogLevel.DEBUG) {
this.debug("".concat(method.toUpperCase(), " ").concat(url, " => ").concat(status));
if (data) {
this.debug('Response data:', data);
}
}
};
/**
* Registra um erro HTTP
* @param method Método HTTP da requisição
* @param url URL da requisição
* @param error Erro ocorrido
*/
Logger.prototype.httpError = function (method, url, error) {
if (this.level >= LogLevel.ERROR) {
this.error("".concat(method.toUpperCase(), " ").concat(url, " => ERROR: ").concat(error.message || error));
if (error.response) {
this.error('Response error:', {
status: error.response.status,
statusText: error.response.statusText,
data: error.response.data
});
}
else if (error.request) {
this.error('Request error: No response received');
}
if (error.stack) {
this.error('Stack trace:', error.stack);
}
}
};
return Logger;
}());
exports.Logger = Logger;