@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
93 lines • 7.25 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.shouldRotateFile = exports.FileWriter = void 0;
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
var utils_1 = require("../utils");
var writer_1 = require("./writer");
var FileWriter = /** @class */ (function (_super) {
__extends(FileWriter, _super);
function FileWriter(config) {
var _this = _super.call(this, config) || this;
_this.dateCreated = new Date();
_this.dirPath = config.dirPath;
_this.baseFilename = config.filename;
_this.sourceName = config.sourceName;
createLogDirIfNotExist(_this.dirPath);
_this.writeStream = createStream(_this.dirPath, getFullFilename(_this.baseFilename, _this.dateCreated));
return _this;
}
FileWriter.prototype.rotateFile = function () {
this.dateCreated = new Date();
this.writeStream = createStream(this.dirPath, getFullFilename(this.baseFilename, this.dateCreated));
};
FileWriter.prototype.log = function (message, level, options) {
if (!this.isLoggable(level)) {
return;
}
if (shouldRotateFile(this.dateCreated)) {
this.rotateFile();
}
var logMessage = getLogMessage(message, level, this.sourceName, options);
this.writeStream.write(logMessage);
};
return FileWriter;
}(writer_1.Writer));
exports.FileWriter = FileWriter;
function getFullFilename(baseName, date) {
return "".concat(baseName, ".").concat(date.toISOString().substring(0, 10), ".log");
}
//assume different date if the day of week OR day of month differs from dateCreated field
function shouldRotateFile(dateCreated) {
var now = new Date();
var createdDay = dateCreated.getUTCDay();
var createdDate = dateCreated.getUTCDate();
return createdDay !== now.getUTCDay() || createdDate !== now.getUTCDate();
}
exports.shouldRotateFile = shouldRotateFile;
function createLogDirIfNotExist(dirPath) {
if (!fs_1.default.existsSync(dirPath)) {
fs_1.default.mkdirSync(dirPath, { recursive: true });
}
}
function createStream(dirPath, filename) {
var filePath = path_1.default.resolve(dirPath, filename);
return fs_1.default
.createWriteStream(filePath, {
flags: 'a',
autoClose: true,
})
.on('error', function (error) {
// when file writer fails, print out error the console.
console.error('An error occurred while writing to log file.', error);
});
}
function getLogMessage(message, level, sourceName, options) {
var timestamp = (0, utils_1.getTimestampWithLogOptions)(options);
return (JSON.stringify({
ts: new Date(timestamp).toISOString(),
pid: process.pid.toString(),
sev: level.toString(),
sourceName: sourceName,
v: message.replace(/\r?\n/g, ' '),
}) + '\n');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbG9nZ2VyL3dyaXRlci9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUFvQztBQUNwQyw4Q0FBdUI7QUFJdkIsa0NBQXFEO0FBQ3JELG1DQUErQztBQVEvQztJQUFnQyw4QkFBTTtJQU9wQyxvQkFBWSxNQUF3QjtRQUFwQyxZQUNFLGtCQUFNLE1BQU0sQ0FBQyxTQU9kO1FBTkMsS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFBO1FBQzdCLEtBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtRQUM3QixLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUE7UUFDbkMsS0FBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBO1FBQ25DLHNCQUFzQixDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwQyxLQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxLQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxLQUFJLENBQUMsWUFBWSxFQUFFLEtBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBOztJQUNyRyxDQUFDO0lBRU8sK0JBQVUsR0FBbEI7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0lBRUQsd0JBQUcsR0FBSCxVQUFJLE9BQWUsRUFBRSxLQUFlLEVBQUUsT0FBb0I7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxD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