UNPKG

@jadl/cmd

Version:
29 lines (28 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Targets = void 0; const Decorators_1 = require("../../utils/Decorators"); const v9_1 = require("discord-api-types/v9"); // eslint-disable-next-line @typescript-eslint/explicit-function-return-type const createTargetDecorator = (prop) => { return Decorators_1.Decorators.createParameterDecorator(() => { return (int) => { const resolved = int.data.resolved; if (int.data.type !== v9_1.ApplicationCommandType.Message && int.data.type !== v9_1.ApplicationCommandType.User) { throw new Error("Used an @Target decorator when the command type doesn't support targets"); } if (!int.data.target_id) throw new Error('Used @Target and no target_id was provided'); if (!resolved) throw new Error('Used @Target and no objects were resolved'); const resolvedTarget = prop in resolved ? resolved?.[prop]?.[int.data.target_id] : undefined; return resolvedTarget; }; }); }; exports.Targets = { User: createTargetDecorator('users'), Member: createTargetDecorator('members'), Message: createTargetDecorator('messages') };