UNPKG

@sodacore/discord

Version:

Sodacore Discord is a plugin that offers Discord SSO/OAuth2 support and the ability to create bots in a similar controller pattern.

39 lines (38 loc) 1.62 kB
import { Utils } from '@sodacore/di'; export function Command(builder) { return (target) => { Utils.setMeta('type', 'autowire')(target, 'controller'); Utils.setMeta('type', 'discord')(target, 'command'); Utils.setMeta('builder', 'discord')(target, builder); const services = Utils.getMeta('services', 'controller')(target, undefined, []); services.push('discord'); Utils.setMeta('services', 'controller')(target, services); }; } export function ContextMenu() { return (target) => { Utils.setMeta('type', 'autowire')(target, 'controller'); Utils.setMeta('type', 'discord')(target, 'contextmenu'); const services = Utils.getMeta('services', 'controller')(target, undefined, []); services.push('discord'); Utils.setMeta('services', 'controller')(target, services); }; } export function Event() { return (target) => { Utils.setMeta('type', 'autowire')(target, 'controller'); Utils.setMeta('type', 'discord')(target, 'event'); const services = Utils.getMeta('services', 'controller')(target, undefined, []); services.push('discord'); Utils.setMeta('services', 'controller')(target, services); }; } export function Handler() { return (target) => { Utils.setMeta('type', 'autowire')(target, 'controller'); Utils.setMeta('type', 'discord')(target, 'event'); const services = Utils.getMeta('services', 'controller')(target, undefined, []); services.push('discord'); Utils.setMeta('services', 'controller')(target, services); }; }