UNPKG

sequelize-log-syntax-colors

Version:

Colors for sequilize console output. Supporting basic MySQL syntax.

42 lines 2.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var chalk_1 = __importDefault(require("chalk")); var keywords_1 = require("./keywords"); function highlightSQL(text, _a) { var _b = _a === void 0 ? {} : _a, _c = _b.capitalizeKeywords, capitalizeKeywords = _c === void 0 ? false : _c; // just store original // to compare for var newText = text; // first we need to find keywords used in string var presentKeywords = (0, keywords_1.extractKeywords)(text); // regex time // looking for defaults newText = newText.replace(/Executing \(default\): /g, ""); // strings - text inside single quotes and backticks newText = newText.replace(/(['`].*?['`])/g, chalk_1.default.green("$1")); // numbers - same color as strings newText = newText.replace(/ (\d+)/g, " " + chalk_1.default.green("$1")); // special chars newText = newText.replace(/(=|%|\/|\*|-|,|;|:|\+|<|>)/g, chalk_1.default.yellow("$1")); // functions - any string followed by a '(' newText = newText.replace(/(\w*?)\(/g, chalk_1.default.red("$1") + "("); // brackets - same as special chars // eslint-disable-next-line newText = newText.replace(/([\(\)])/g, chalk_1.default.yellow("$1")); // reserved mysql keywords present in string for (var _i = 0, presentKeywords_1 = presentKeywords; _i < presentKeywords_1.length; _i++) { var keyWord = presentKeywords_1[_i]; var replace = keyWord; // regex pattern will be formulated based on the array values surrounded by word boundaries. since the replace function does not accept a string as a regex pattern, we will use a regex object this time if (capitalizeKeywords && keywords_1.keywordsMap[keyWord]) { replace = keywords_1.keywordsMap[keyWord]; } newText = newText.replace(keywords_1.regexMap[keyWord], chalk_1.default.magenta(replace)); } return newText; } exports.default = highlightSQL; //# sourceMappingURL=index.js.map