UNPKG

tm-text

Version:

Trackmania and Maniaplanet text parser and formatter

98 lines (97 loc) 2.44 kB
export const TOKEN = { BLOCK_END: 'BLOCK_END', BLOCK_START: 'BLOCK_START', BOLD: 'BOLD', COLOR: 'COLOR', HREF_CONTENT: 'HREF_CONTENT', HREF_START: 'HREF_START', HREF_END: 'HREF_END', ITALIC: 'ITALIC', LINK_EXTERNAL: 'LINK_EXTERNAL', LINK_INTERNAL: 'LINK_INTERNAL', LINK_INTERNAL_WITH_PARAMS: 'LINK_INTERNAL_WITH_PARAMS', NEWLINE: 'NEWLINE', RESET_ALL: 'RESET_ALL', RESET_COLOR: 'RESET_COLOR', SHADOW: 'SHADOW', TAB: 'TAB', UPPERCASE: 'UPPERCASE', WIDTH_NARROW: 'WIDTH_NARROW', WIDTH_NORMAL: 'WIDTH_NORMAL', WIDTH_WIDE: 'WIDTH_WIDE', WORD: 'WORD', }; export const TOKEN_TO_CHAR_MAP = { [TOKEN.BLOCK_END]: '>', [TOKEN.BLOCK_START]: '<', [TOKEN.BOLD]: 'o', [TOKEN.HREF_START]: '[', [TOKEN.HREF_END]: ']', [TOKEN.ITALIC]: 'i', [TOKEN.LINK_EXTERNAL]: 'l', [TOKEN.LINK_INTERNAL]: 'h', [TOKEN.LINK_INTERNAL_WITH_PARAMS]: 'p', [TOKEN.RESET_ALL]: 'z', [TOKEN.RESET_COLOR]: 'g', [TOKEN.SHADOW]: 's', [TOKEN.UPPERCASE]: 't', [TOKEN.WIDTH_NARROW]: 'n', [TOKEN.WIDTH_NORMAL]: 'm', [TOKEN.WIDTH_WIDE]: 'w', }; export const SYNTAX = { /** * Games that use this syntax: `Original`, `Sunrise`, `Nations` */ CLASSIC: 'CLASSIC', /** * Games that use this syntax: `United` */ UNITED: 'UNITED', /** * Games that use this syntax: `United Forever`, `Nations Forever` */ FOREVER: 'FOREVER', /** * Games that use this syntax: `Maniapanet`, `Turbo`, `2020` */ MANIAPLANET: 'MANIAPLANET', }; export const SYNTAX_CLASSIC = [ TOKEN.COLOR, TOKEN.ITALIC, TOKEN.RESET_ALL, TOKEN.RESET_COLOR, TOKEN.NEWLINE, TOKEN.SHADOW, TOKEN.TAB, TOKEN.UPPERCASE, TOKEN.WIDTH_NARROW, TOKEN.WIDTH_NORMAL, TOKEN.WIDTH_WIDE, TOKEN.WORD, ]; export const SYNTAX_UNITED = [ ...SYNTAX_CLASSIC, TOKEN.BOLD, TOKEN.HREF_CONTENT, TOKEN.HREF_START, TOKEN.HREF_END, TOKEN.LINK_EXTERNAL, TOKEN.LINK_INTERNAL, ]; export const SYNTAX_FOREVER = [ ...SYNTAX_UNITED, TOKEN.LINK_INTERNAL_WITH_PARAMS, ]; export const SYNTAX_MANIAPLANET = [ ...SYNTAX_FOREVER, TOKEN.BLOCK_END, TOKEN.BLOCK_START, ]; export const SYNTAX_MAP = { [SYNTAX.CLASSIC]: SYNTAX_CLASSIC, [SYNTAX.UNITED]: SYNTAX_UNITED, [SYNTAX.FOREVER]: SYNTAX_FOREVER, [SYNTAX.MANIAPLANET]: SYNTAX_MANIAPLANET, };