this repo has no description
1import { MarkdownRule, Ruleset, SlateRule } from "@moonlight-mod/types/coreExtensions/markdown"; 2 3export const rules: Record<string, (rules: Record<string, MarkdownRule>) => MarkdownRule> = {}; 4export const slateRules: Record<string, (rules: Record<string, SlateRule>) => SlateRule> = {}; 5export const slateDecorators: Record<string, string> = {}; 6export const ruleBlacklists: Record<Ruleset, Record<string, boolean>> = { 7 RULES: {}, 8 CHANNEL_TOPIC_RULES: {}, 9 VOICE_CHANNEL_STATUS_RULES: {}, 10 EMBED_TITLE_RULES: {}, 11 INLINE_REPLY_RULES: {}, 12 GUILD_VERIFICATION_FORM_RULES: {}, 13 GUILD_EVENT_RULES: {}, 14 PROFILE_BIO_RULES: {}, 15 AUTO_MODERATION_SYSTEM_MESSAGE_RULES: {}, 16 NATIVE_SEARCH_RESULT_LINK_RULES: {} 17}; 18 19export function addRule( 20 name: string, 21 markdown: (rules: Record<string, MarkdownRule>) => MarkdownRule, 22 slate: (rules: Record<string, SlateRule>) => SlateRule, 23 decorator?: string 24) { 25 rules[name] = markdown; 26 slateRules[name] = slate; 27 if (decorator != null) slateDecorators[name] = decorator; 28} 29 30export function blacklistFromRuleset(ruleset: Ruleset, name: string) { 31 if (ruleBlacklists[ruleset] == null) ruleBlacklists[ruleset] = {}; 32 ruleBlacklists[ruleset][name] = true; 33} 34 35export function _addRules(originalRules: Record<string, MarkdownRule>) { 36 for (const name in rules) { 37 originalRules["__moonlight_" + name] = rules[name](originalRules); 38 } 39 40 return originalRules; 41} 42 43export function _addSlateRules(originalRules: Record<string, SlateRule>) { 44 for (const name in slateRules) { 45 originalRules["__moonlight_" + name] = slateRules[name](originalRules); 46 } 47 48 return originalRules; 49} 50 51export function _addSlateDecorators(originalRules: Record<string, string>) { 52 for (const name in slateDecorators) { 53 originalRules["__moonlight_" + name] = slateDecorators[name]; 54 } 55 56 return originalRules; 57} 58 59export function _applyRulesetBlacklist(rulesets: Record<Ruleset, Record<string, MarkdownRule>>) { 60 for (const ruleset of Object.keys(rulesets) as Ruleset[]) { 61 if (ruleset === "RULES") continue; 62 63 const rules = rulesets[ruleset]; 64 for (const rule in ruleBlacklists[ruleset] || {}) { 65 delete rules["__moonlight_" + rule]; 66 } 67 } 68}