Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 1.25 KB

README.md

File metadata and controls

44 lines (34 loc) · 1.25 KB

text-mesh-transformer

text-mesh-transformer

Install

npm i text-mesh-transformer

Description

Transformer for TextMesh Pro Rich Text tags.

Usage

const ansiStyles = await import('ansi-styles');
const transform = require('./dist/index.js').default;
const Tag = require('./dist/index.js').Tag;

const str = transform(`
  foo <color=red>test <color=blue><u><b>moo</b></u></color> bar
`, (openTag, content) => {
  switch (openTag.tag) {
    case Tag.Color: {
      if (openTag.value in ansiStyles) {
        return `${ansiStyles[openTag.value].open}${content}${ansiStyles[openTag.value].close}`;
      }
      break;
    }
    case Tag.Underline:
      return `${ansiStyles.modifier.underline.open}${content}${ansiStyles.modifier.underline.close}`;
    case Tag.Italic:
      return `${ansiStyles.modifier.italic.open}${content}${ansiStyles.modifier.italic.close}`;
    case Tag.Bold:
      return `${ansiStyles.modifier.bold.open}${content}${ansiStyles.modifier.bold.close}`;
  }

  return content;
});
  
console.log(str); //returns styled console.log string