@typed/content-hash
Version:
Content hash a directory of HTML/JS/CSS files and other static assets
64 lines • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.debug = exports.error = exports.info = exports.logEntry = exports.levelToTextColor = exports.levelToIconColor = exports.levelToIcon = exports.LogLevel = void 0;
const tslib_1 = require("tslib");
const Env_1 = require("@typed/fp/Env");
const FxEnv_1 = require("@typed/fp/FxEnv");
const colors = (0, tslib_1.__importStar)(require("typed-colors"));
const figures = (0, tslib_1.__importStar)(require("typed-figures"));
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["Debug"] = 0] = "Debug";
LogLevel[LogLevel["Info"] = 1] = "Info";
LogLevel[LogLevel["Error"] = 2] = "Error";
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
const levelToIcon = (level) => {
switch (level) {
case LogLevel.Debug:
return figures.squareSmallFilled;
case LogLevel.Error:
return figures.warning;
case LogLevel.Info:
return figures.info;
}
};
exports.levelToIcon = levelToIcon;
const levelToIconColor = (level, message) => {
switch (level) {
case LogLevel.Debug:
return colors.white(message);
case LogLevel.Error:
return colors.red(message);
case LogLevel.Info:
return colors.blue(message);
}
};
exports.levelToIconColor = levelToIconColor;
const levelToTextColor = (level, message) => {
switch (level) {
case LogLevel.Debug:
return colors.dim(message);
case LogLevel.Error:
return colors.red(message);
case LogLevel.Info:
return colors.white(message);
}
};
exports.levelToTextColor = levelToTextColor;
function logEntry(entry) {
const eff = (0, FxEnv_1.Do)(function* (_) {
const { logLevel, logger, logPrefix } = yield* _((0, Env_1.ask)());
if (logLevel <= entry.level) {
yield* _(logger(`${logPrefix} ${(0, exports.levelToIconColor)(entry.level, (0, exports.levelToIcon)(entry.level))} ${(0, exports.levelToTextColor)(entry.level, entry.message)}`.trim()));
}
});
return eff;
}
exports.logEntry = logEntry;
const info = (message) => logEntry({ level: LogLevel.Info, message });
exports.info = info;
const error = (message) => logEntry({ level: LogLevel.Error, message });
exports.error = error;
const debug = (message) => logEntry({ level: LogLevel.Debug, message });
exports.debug = debug;
//# sourceMappingURL=logging.js.map