Added SChat code support, used in Letters board. Shielding style methods from empty inputs.
This commit is contained in:
parent
5ec5711288
commit
6c3c442652
|
@ -22,7 +22,7 @@ const games = new Map();
|
||||||
function getBoard(context) {
|
function getBoard(context) {
|
||||||
const game = games.get(context.room.id);
|
const game = games.get(context.room.id);
|
||||||
|
|
||||||
return `${style.grey('[')}${game.word.split('').concat(Array.from({ length: config.letters.length - game.word.length })).map((letter) => style.bold(letter?.toUpperCase()) || ' ').join(style.grey('|'))}${style.grey(']')}`; // eslint-disable-line no-irregular-whitespace
|
return `${style.grey(style.code('['))}${game.word.split('').concat(Array.from({ length: config.letters.length - game.word.length })).map((letter) => style.bold(style.code(letter?.toUpperCase() || ' '))).join(style.grey(style.code('|')))}${style.grey(style.code(']'))}`; // eslint-disable-line no-irregular-whitespace
|
||||||
}
|
}
|
||||||
|
|
||||||
function countLetters(word) {
|
function countLetters(word) {
|
||||||
|
|
|
@ -15,6 +15,10 @@ function schatColor(text, color) {
|
||||||
return `{${color}}(${text})`;
|
return `{${color}}(${text})`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function schatCode(text) {
|
||||||
|
return `\`${text}\``;
|
||||||
|
}
|
||||||
|
|
||||||
function curate(fn) {
|
function curate(fn) {
|
||||||
return (text) => {
|
return (text) => {
|
||||||
if (text) {
|
if (text) {
|
||||||
|
@ -29,16 +33,24 @@ function bypass(text) {
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function shieldMethods(methods) {
|
||||||
|
return Object.fromEntries(Object.entries(methods).map(([key, method]) => [key, curate(method)]));
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = (() => {
|
module.exports = (() => {
|
||||||
if (config.platform === 'irc') {
|
if (config.platform === 'irc') {
|
||||||
return styles;
|
return shieldMethods({
|
||||||
|
...styles,
|
||||||
|
code: bypass,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.platform === 'schat') {
|
if (config.platform === 'schat') {
|
||||||
const methods = {
|
const methods = {
|
||||||
bold: curate(schatBold),
|
bold: schatBold,
|
||||||
italic: curate(schatItalic),
|
italic: schatItalic,
|
||||||
...Object.fromEntries(Object.entries(config.schatColors).map(([color, value]) => [color, curate((text) => schatColor(text, value))])),
|
code: schatCode,
|
||||||
|
...Object.fromEntries(Object.entries(config.schatColors).map(([color, value]) => [color, (text) => schatColor(text, value)])),
|
||||||
};
|
};
|
||||||
|
|
||||||
const handler = {
|
const handler = {
|
||||||
|
@ -47,7 +59,9 @@ module.exports = (() => {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return new Proxy(methods, handler);
|
const shieldedMethods = shieldMethods(methods);
|
||||||
|
|
||||||
|
return new Proxy(shieldedMethods, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
Loading…
Reference in New Issue