sugar-djs 0.2.1 → 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/Readme.ja.md +29 -9
- package/Readme.md +5 -4
- package/dist/collection.d.ts +1 -1
- package/dist/collection.js.map +1 -1
- package/dist/types.d.ts +9 -2
- 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/Readme.ja.md
CHANGED
|
@@ -4,9 +4,10 @@ discord.jsをTypeScriptでもっと楽しく書くためのライブラリ!
|
|
|
4
4
|
|
|
5
5
|
## 対応バージョン
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
| package version | discord.js version |
|
|
8
|
+
|----|----|
|
|
9
|
+
| 0.3.0 | 14.24.0 |
|
|
10
|
+
| 0.2.1 | 14.23.2 |
|
|
10
11
|
|
|
11
12
|
## 使い方の例
|
|
12
13
|
|
|
@@ -27,21 +28,40 @@ export default wrapper
|
|
|
27
28
|
.addMiddleware(isCachedInteraction) // キャッシュされたインタラクションのみ許可
|
|
28
29
|
.setProcess(({ interaction }) => {
|
|
29
30
|
// interaction: ChatInputCommandInteraction<"cached">;
|
|
30
|
-
interaction.reply('
|
|
31
|
+
interaction.reply('Pong!');
|
|
31
32
|
});
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
## 特徴
|
|
35
36
|
|
|
36
|
-
`Sugar-DJS
|
|
37
|
+
`Sugar-DJS`を使うと、一部の型指定を省略したり、共通の処理を簡単に挿入できたりすることで、素早くボットを制作することができます。
|
|
37
38
|
|
|
38
39
|
### 適切なInteraction型を推論
|
|
39
40
|
|
|
40
|
-
`Sugar-DJS`は、渡された`Builder
|
|
41
|
+
`Sugar-DJS`は、渡された`Builder`からコマンドハンドラーの`interaction`の型を推論します。
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
// 型を手動で指定する例
|
|
45
|
+
export const command = new SlashCommandBuilder().setName('ping')
|
|
46
|
+
export const execute = (interaction: ChatInputCommandInteraction) => {
|
|
47
|
+
interaction.reply('Pong!');
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// Sugar-DJSのコード
|
|
53
|
+
export default wrapper
|
|
54
|
+
.setCommand(
|
|
55
|
+
new SlashCommandBuilder().setName('ping')
|
|
56
|
+
)
|
|
57
|
+
.setProcess(({ interaction }) => { // 型が適切に推論されます
|
|
58
|
+
interaction.reply('Pong!');
|
|
59
|
+
});
|
|
60
|
+
```
|
|
41
61
|
|
|
42
62
|
### ミドルウェア概念の導入
|
|
43
63
|
|
|
44
|
-
コマンドやコンポーネントの処理の前に、ミドルウェアを追加することができます。ミドルウェアは、`Interaction
|
|
64
|
+
コマンドやコンポーネントの処理の前に、ミドルウェアを追加することができます。ミドルウェアは、`Interaction`を含むペイロードに対して処理を行い、追加のデータを返すことができます。また、ペイロードの形を絞る事もできます。
|
|
45
65
|
|
|
46
66
|
#### Interactionが'cached'であることを確認する例
|
|
47
67
|
```typescript
|
|
@@ -63,7 +83,7 @@ export const isCachedInteraction = <T extends AnyInteraction, U>({
|
|
|
63
83
|
|
|
64
84
|
### 1. sugardjs.tsの作成
|
|
65
85
|
|
|
66
|
-
コマンドやコンポーネントが格納されているディレクトリを指定して、`WrapperCollection
|
|
86
|
+
コマンドやコンポーネントが格納されているディレクトリを指定して、`WrapperCollection`のインスタンスを作成します。
|
|
67
87
|
|
|
68
88
|
```typescript
|
|
69
89
|
// sugardjs.ts
|
|
@@ -80,7 +100,7 @@ export default new WrapperCollection({
|
|
|
80
100
|
|
|
81
101
|
### 2.discord.jsに接続
|
|
82
102
|
|
|
83
|
-
手順1で作成した`WrapperCollection`の`interactionCreateHandler`をdiscord.jsの`InteractionCreate
|
|
103
|
+
手順1で作成した`WrapperCollection`の`interactionCreateHandler`をdiscord.jsの`InteractionCreate`イベントのハンドラーとして渡します。
|
|
84
104
|
|
|
85
105
|
```typescript
|
|
86
106
|
// index.ts
|
package/Readme.md
CHANGED
|
@@ -4,9 +4,10 @@ Library for writing discord.js in TypeScript for more fun!
|
|
|
4
4
|
|
|
5
5
|
## Supported Versions
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
| package version | discord.js version |
|
|
8
|
+
|----|----|
|
|
9
|
+
| 0.3.0 | 14.24.0 |
|
|
10
|
+
| 0.2.1 | 14.23.2 |
|
|
10
11
|
|
|
11
12
|
# Usege
|
|
12
13
|
|
|
@@ -23,7 +24,7 @@ export default wrapper
|
|
|
23
24
|
.setDescription('Send "Pong!"')
|
|
24
25
|
)
|
|
25
26
|
.setProcess(({ interaction }) => {
|
|
26
|
-
interaction.reply('
|
|
27
|
+
interaction.reply('Pong!');
|
|
27
28
|
});
|
|
28
29
|
```
|
|
29
30
|
|
package/dist/collection.d.ts
CHANGED
package/dist/collection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ButtonBuilder, ModalBuilder, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, MentionableSelectMenuBuilder, ChannelSelectMenuBuilder, CacheType, ButtonInteraction, ModalSubmitInteraction, StringSelectMenuInteraction, UserSelectMenuInteraction, RoleSelectMenuInteraction, MentionableSelectMenuInteraction, ChannelSelectMenuInteraction, PrimaryEntryPointCommandInteraction, SlashCommandBuilder as SCB, ChatInputCommandInteraction, ContextMenuCommandBuilder, ContextMenuCommandInteraction, SlashCommandSubcommandsOnlyBuilder, ApplicationCommandType, UserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, SlashCommandOptionsOnlyBuilder } from 'discord.js';
|
|
1
|
+
import type { ButtonBuilder, ModalBuilder, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, MentionableSelectMenuBuilder, ChannelSelectMenuBuilder, CacheType, ButtonInteraction, ModalSubmitInteraction, StringSelectMenuInteraction, UserSelectMenuInteraction, RoleSelectMenuInteraction, MentionableSelectMenuInteraction, ChannelSelectMenuInteraction, PrimaryEntryPointCommandInteraction, SlashCommandBuilder as SCB, ChatInputCommandInteraction, ContextMenuCommandBuilder, ContextMenuCommandInteraction, SlashCommandSubcommandsOnlyBuilder, ApplicationCommandType, UserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, SlashCommandOptionsOnlyBuilder } from 'discord.js';
|
|
2
2
|
export type UnwrapOrDefault<V, D> = V extends undefined ? D : Exclude<V, undefined>;
|
|
3
3
|
export type MaybePromise<T> = T | Promise<T>;
|
|
4
4
|
/**
|
|
@@ -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.23.2",
|
|
21
23
|
"zod": "^4.1.12"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"discord.js": "^14.24.0",
|
|
27
|
+
"typescript": "^5.9.3"
|
|
22
28
|
}
|
|
23
29
|
}
|