@jsprismarine/color-parser
Version:
Parse minecraft color codes
21 lines (20 loc) • 2.19 kB
JavaScript
import { toConsole } from "./Colors.es.js";
//#region src/Parser.ts
/**
* Parses a string with color codes.
* @param {string} input - String to parse.
* @param {string} [prefix='§'] - The prefix to use for color codes.
* @param {boolean} [clearAtEnd=false] - Whether to clear the color at the end of the string.
* @returns {string} The parsed string.
* @example
* ```typescript
* const res = Parser('§cHello §eworld§r!');
* console.log(res); // 'Hello world!'
* ```
*/
var Parser = (input, prefix = "§", clearAtEnd = true) => `${input.replaceAll(new RegExp(`\\${prefix}[\\dabcdefklmnor]`, "gm"), (v) => {
return toConsole[v.slice(1)];
})}${clearAtEnd && toConsole.r || ""}`;
//#endregion
export { Parser as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VyLmVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9QYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29sb3JzIGZyb20gJy4vQ29sb3JzJztcblxuLyoqXG4gKiBQYXJzZXMgYSBzdHJpbmcgd2l0aCBjb2xvciBjb2Rlcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dCAtIFN0cmluZyB0byBwYXJzZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJlZml4PSfCpyddIC0gVGhlIHByZWZpeCB0byB1c2UgZm9yIGNvbG9yIGNvZGVzLlxuICogQHBhcmFtIHtib29sZWFufSBbY2xlYXJBdEVuZD1mYWxzZV0gLSBXaGV0aGVyIHRvIGNsZWFyIHRoZSBjb2xvciBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGFyc2VkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXMgPSBQYXJzZXIoJ8KnY0hlbGxvIMKnZXdvcmxkwqdyIScpO1xuICogY29uc29sZS5sb2cocmVzKTsgLy8gJ0hlbGxvIHdvcmxkISdcbiAqIGBgYFxuICovXG5jb25zdCBQYXJzZXIgPSAoaW5wdXQ6IHN0cmluZywgcHJlZml4ID0gJ8KnJywgY2xlYXJBdEVuZCA9IHRydWUpID0+XG4gICAgYCR7aW5wdXQucmVwbGFjZUFsbChuZXcgUmVnRXhwKGBcXFxcJHtwcmVmaXh9W1xcXFxkYWJjZGVma2xtbm9yXWAsICdnbScpLCAodikgPT4ge1xuICAgICAgICByZXR1cm4gY29sb3JzLnRvQ29uc29sZVt2LnNsaWNlKDEpXSBhcyBzdHJpbmc7XG4gICAgfSl9JHsoY2xlYXJBdEVuZCAmJiBjb2xvcnMudG9Db25zb2xlLnIpIHx8ICcnfWA7XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFjQSxJQUFNLFVBQVUsT0FBZSxTQUFTLEtBQUssYUFBYSxTQUN0RCxHQUFHLE1BQU0sV0FBVyxJQUFJLE9BQU8sS0FBSyxPQUFPLG9CQUFvQixJQUFJLElBQUksTUFBTTtDQUN6RSxPQUFPLFVBQWlCLEVBQUUsTUFBTSxDQUFDO0FBQ3JDLENBQUMsSUFBSyxjQUFBLFVBQStCLEtBQU0ifQ==