sugar-djs 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types.d.ts +8 -1
- package/dist/wrapper.d.ts +17 -21
- package/dist/wrapper.js +13 -17
- package/dist/wrapper.js.map +1 -1
- package/package.json +8 -2
package/dist/types.d.ts
CHANGED
|
@@ -23,7 +23,14 @@ export type AnyInteraction<Cached extends CacheType = CacheType> = AnyCommandInt
|
|
|
23
23
|
/**
|
|
24
24
|
* ビルダーからインターフェースへ変換
|
|
25
25
|
*/
|
|
26
|
-
export type
|
|
26
|
+
export type inferInteraction<Builder extends AnyBuilder, CommandType extends ApplicationCommandType = ApplicationCommandType> = Builder extends ButtonBuilder ? ButtonInteraction : Builder extends ModalBuilder ? ModalSubmitInteraction : Builder extends StringSelectMenuBuilder ? StringSelectMenuInteraction : Builder extends UserSelectMenuBuilder ? UserSelectMenuInteraction : Builder extends RoleSelectMenuBuilder ? RoleSelectMenuInteraction : Builder extends MentionableSelectMenuBuilder ? MentionableSelectMenuInteraction : Builder extends ChannelSelectMenuBuilder ? ChannelSelectMenuInteraction : Builder extends SlashCommandBuilder ? ChatInputCommandInteraction : Builder extends ContextMenuCommandBuilder ? inferCommandType<CommandType> : never;
|
|
27
|
+
/**
|
|
28
|
+
* コマンドビルダーからコマンドタイプへ変換
|
|
29
|
+
*/
|
|
30
|
+
export type inferInteractionType<T extends AnyCommandBuilder> = T extends SlashCommandBuilder ? ApplicationCommandType.ChatInput : T extends ContextMenuCommandBuilder ? T['type'] : never;
|
|
31
|
+
/**
|
|
32
|
+
* コマンドタイプからコンテキストメニューインタラクションへ変換
|
|
33
|
+
*/
|
|
27
34
|
export type inferCommandType<CommandType extends ApplicationCommandType> = CommandType extends ApplicationCommandType.User ? UserContextMenuCommandInteraction : CommandType extends ApplicationCommandType.Message ? MessageContextMenuCommandInteraction : never;
|
|
28
35
|
export type MiddlewarePayload<T extends AnyInteraction = AnyInteraction<any>, U extends any = {}> = {
|
|
29
36
|
interaction: T;
|
package/dist/wrapper.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ApplicationCommandType, AutocompleteInteraction } from 'discord.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { AnyBuilder, AnyCommandBuilder, AnyCommandInteraction, AnyComponentBuilder, AnyComponentInteraction, AnyInteraction, MaybePromise, Middleware, MiddlewarePayload, UnwrapOrDefault,
|
|
3
|
+
import { AnyBuilder, AnyCommandBuilder, AnyCommandInteraction, AnyComponentBuilder, AnyComponentInteraction, AnyInteraction, MaybePromise, Middleware, MiddlewarePayload, UnwrapOrDefault, inferInteraction, inferInteractionType } from './types';
|
|
4
4
|
interface BaseWrapperReturnData<T extends AnyInteraction = AnyInteraction<any>> {
|
|
5
5
|
middlewares: Middleware<T>[];
|
|
6
6
|
execute: (input: MiddlewarePayload<T>) => void;
|
|
@@ -26,11 +26,16 @@ interface CommandBuilderDef<TParms extends CommandBuilderParms> {
|
|
|
26
26
|
middlewares: Middleware<TParms['_interaction']>[];
|
|
27
27
|
type: ApplicationCommandType;
|
|
28
28
|
}
|
|
29
|
-
type CommandBuilder = <T extends AnyCommandBuilder = AnyCommandBuilder>(command: T) => AutocompleteRegister<{
|
|
29
|
+
type CommandBuilder = <T extends AnyCommandBuilder = AnyCommandBuilder>(command: T) => inferInteractionType<T> extends ApplicationCommandType.ChatInput ? AutocompleteRegister<{
|
|
30
30
|
_builder: T;
|
|
31
|
-
_builderType:
|
|
32
|
-
_processInputData: MiddlewarePayload<
|
|
33
|
-
_interaction:
|
|
31
|
+
_builderType: inferInteractionType<T>;
|
|
32
|
+
_processInputData: MiddlewarePayload<inferInteraction<T>>;
|
|
33
|
+
_interaction: inferInteraction<T>;
|
|
34
|
+
}> : CommandProcessRegister<{
|
|
35
|
+
_builder: T;
|
|
36
|
+
_builderType: inferInteractionType<T>;
|
|
37
|
+
_processInputData: MiddlewarePayload<inferInteraction<T>>;
|
|
38
|
+
_interaction: inferInteraction<T>;
|
|
34
39
|
}>;
|
|
35
40
|
/**
|
|
36
41
|
* コマンドの処理を登録する関数集
|
|
@@ -68,18 +73,6 @@ interface CommandData<TParms extends CommandBuilderParms> extends BaseWrapperRet
|
|
|
68
73
|
execute(input: TParms['_processInputData']): void;
|
|
69
74
|
}
|
|
70
75
|
export type AnyCommandData = CommandData<any>;
|
|
71
|
-
type ContextBuilder = <T extends ContextMenuCommandBuilder = ContextMenuCommandBuilder>(command: T) => ContextMenuCommandTypeRegister;
|
|
72
|
-
/**
|
|
73
|
-
* コンテキストメニューコマンドのタイプを登録する関数
|
|
74
|
-
*/
|
|
75
|
-
interface ContextMenuCommandTypeRegister {
|
|
76
|
-
setType<T extends ContextMenuCommandType>(type: T): CommandProcessRegister<{
|
|
77
|
-
_builder: ContextMenuCommandBuilder;
|
|
78
|
-
_builderType: T;
|
|
79
|
-
_processInputData: MiddlewarePayload<inferCommandType<T>>;
|
|
80
|
-
_interaction: inferCommandType<T>;
|
|
81
|
-
}>;
|
|
82
|
-
}
|
|
83
76
|
interface ComponentBuilderParms<Schema = any, Args extends z.ZodArray<z.ZodString> = z.ZodArray<z.ZodString>, Builder extends AnyComponentBuilder = AnyComponentBuilder, ComponentType extends 'function' | 'builder' = 'function' | 'builder', Interaction extends AnyComponentInteraction = AnyComponentInteraction<any>> extends BaseBuilderParms<Builder, Interaction> {
|
|
84
77
|
_schema: Schema;
|
|
85
78
|
_args: Args | undefined;
|
|
@@ -99,8 +92,8 @@ type ComponentBuilder = <T extends AnyComponentBuilder | ((input: V) => AnyCompo
|
|
|
99
92
|
_builder: UnwrapBuilderFC<T>;
|
|
100
93
|
_componentType: inferComponentType<T>;
|
|
101
94
|
_args: undefined;
|
|
102
|
-
_processInputData: MiddlewarePayload<
|
|
103
|
-
_interaction:
|
|
95
|
+
_processInputData: MiddlewarePayload<inferInteraction<UnwrapBuilderFC<T>>>;
|
|
96
|
+
_interaction: inferInteraction<UnwrapBuilderFC<T>>;
|
|
104
97
|
}>;
|
|
105
98
|
interface ComponentProcessRegister<TParms extends ComponentBuilderParms> {
|
|
106
99
|
_def: ComponentBuilderDef<TParms>;
|
|
@@ -143,7 +136,10 @@ interface ComponentData<TParms extends ComponentBuilderParms> extends BaseWrappe
|
|
|
143
136
|
export type AnyComponentData = ComponentData<any>;
|
|
144
137
|
export declare const wrapper: {
|
|
145
138
|
setCommand: CommandBuilder;
|
|
146
|
-
|
|
139
|
+
/**
|
|
140
|
+
* @deprecated Use setCommand with ContextMenuCommandBuilder instead.
|
|
141
|
+
*/
|
|
142
|
+
setCtxCommand: CommandBuilder;
|
|
147
143
|
setComponent: ComponentBuilder;
|
|
148
144
|
};
|
|
149
145
|
export {};
|
package/dist/wrapper.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.wrapper = void 0;
|
|
4
|
+
const discord_js_1 = require("discord.js");
|
|
4
5
|
const zod_1 = require("zod");
|
|
5
6
|
const custom_id_1 = require("./custom-id");
|
|
6
7
|
const createCommandBuilder = function (command) {
|
|
8
|
+
let type = discord_js_1.ApplicationCommandType.ChatInput;
|
|
9
|
+
if (command instanceof discord_js_1.ContextMenuCommandBuilder) {
|
|
10
|
+
type = command.type;
|
|
11
|
+
}
|
|
7
12
|
const _def = {
|
|
8
13
|
middlewares: [],
|
|
9
|
-
type:
|
|
14
|
+
type: type,
|
|
10
15
|
builder: command,
|
|
11
16
|
};
|
|
12
17
|
return {
|
|
13
18
|
...createCommandProcessRegister(_def),
|
|
14
19
|
setAutocomplete: (process) => {
|
|
20
|
+
if (_def.type !== discord_js_1.ApplicationCommandType.ChatInput) {
|
|
21
|
+
throw new Error('Autocomplete can only be set for Chat Input commands.');
|
|
22
|
+
}
|
|
15
23
|
return createCommandProcessRegister({
|
|
16
24
|
..._def,
|
|
17
25
|
autocomplete: process,
|
|
@@ -44,21 +52,6 @@ function createCommandProcessRegister(initDef) {
|
|
|
44
52
|
},
|
|
45
53
|
};
|
|
46
54
|
}
|
|
47
|
-
const createCtxCommandBuilder = function (command) {
|
|
48
|
-
return createCommandTypeRegister(command);
|
|
49
|
-
};
|
|
50
|
-
function createCommandTypeRegister(builder) {
|
|
51
|
-
return {
|
|
52
|
-
setType: (type) => {
|
|
53
|
-
builder.setType(type);
|
|
54
|
-
return createCommandProcessRegister({
|
|
55
|
-
type,
|
|
56
|
-
middlewares: [],
|
|
57
|
-
builder: builder,
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
55
|
const extractComponentCustomId = (component) => {
|
|
63
56
|
const json = component.toJSON();
|
|
64
57
|
if ('custom_id' in json) {
|
|
@@ -149,7 +142,10 @@ function createComponentData(initdef, process) {
|
|
|
149
142
|
////////////////////////////////////////////////////////////*/
|
|
150
143
|
exports.wrapper = {
|
|
151
144
|
setCommand: createCommandBuilder,
|
|
152
|
-
|
|
145
|
+
/**
|
|
146
|
+
* @deprecated Use setCommand with ContextMenuCommandBuilder instead.
|
|
147
|
+
*/
|
|
148
|
+
setCtxCommand: createCommandBuilder,
|
|
153
149
|
setComponent: createComponentBuilder,
|
|
154
150
|
};
|
|
155
151
|
//# sourceMappingURL=wrapper.js.map
|
package/dist/wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sugar-djs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Library for writing discord.js in TypeScript for more fun!",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,8 +16,14 @@
|
|
|
16
16
|
"type": "git",
|
|
17
17
|
"url": "git+https://github.com/n-soukun/sugar-djs.git"
|
|
18
18
|
},
|
|
19
|
+
"peerDependencies": {
|
|
20
|
+
"discord.js": ">=14.23.2 <15"
|
|
21
|
+
},
|
|
19
22
|
"dependencies": {
|
|
20
|
-
"discord.js": "^14.24.0",
|
|
21
23
|
"zod": "^4.1.12"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"discord.js": "^14.24.0",
|
|
27
|
+
"typescript": "^5.9.3"
|
|
22
28
|
}
|
|
23
29
|
}
|