@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
JavaScript
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);
};
}