dfx 0.91.3 → 0.93.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/Cache/memory.js +2 -2
- package/Cache/memory.js.map +1 -1
- package/Cache/memoryTTL.d.ts +1 -1
- package/Cache/memoryTTL.d.ts.map +1 -1
- package/Cache/memoryTTL.js +4 -4
- package/Cache/memoryTTL.js.map +1 -1
- package/DiscordGateway/Messaging.js +1 -1
- package/DiscordGateway/Messaging.js.map +1 -1
- package/DiscordGateway/Shard/invalidSession.js +1 -1
- package/DiscordGateway/Shard/invalidSession.js.map +1 -1
- package/DiscordGateway/Shard/utils.js +1 -1
- package/DiscordGateway/Shard/utils.js.map +1 -1
- package/DiscordGateway/Shard.d.ts +2 -2
- package/DiscordGateway/Shard.js +3 -3
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +1 -1
- package/DiscordGateway.d.ts +1 -1
- package/DiscordREST.d.ts +3 -3
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +12 -12
- package/DiscordREST.js.map +1 -1
- package/Helpers/interactions.d.ts +1 -1
- package/Helpers/interactions.d.ts.map +1 -1
- package/Helpers/interactions.js +2 -2
- package/Helpers/interactions.js.map +1 -1
- package/Interactions/context.d.ts +2 -5
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +2 -2
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +11 -15
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/definitions.js.map +1 -1
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/handlers.js +25 -23
- package/Interactions/handlers.js.map +1 -1
- package/Interactions/index.d.ts +5 -6
- package/Interactions/index.d.ts.map +1 -1
- package/Interactions/index.js +5 -8
- package/Interactions/index.js.map +1 -1
- package/Interactions/utils.d.ts +21 -20
- package/Interactions/utils.d.ts.map +1 -1
- package/Interactions/utils.js +18 -20
- package/Interactions/utils.js.map +1 -1
- package/Interactions/webhook.js +1 -1
- package/Interactions/webhook.js.map +1 -1
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +1 -1
- package/RateLimit.js.map +1 -1
- package/mjs/Cache/memory.mjs +2 -2
- package/mjs/Cache/memory.mjs.map +1 -1
- package/mjs/Cache/memoryTTL.mjs +4 -4
- package/mjs/Cache/memoryTTL.mjs.map +1 -1
- package/mjs/DiscordGateway/Messaging.mjs +1 -1
- package/mjs/DiscordGateway/Messaging.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/invalidSession.mjs +1 -1
- package/mjs/DiscordGateway/Shard/invalidSession.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/utils.mjs +1 -1
- package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard.mjs +3 -3
- package/mjs/DiscordGateway/Shard.mjs.map +1 -1
- package/mjs/DiscordREST.mjs +12 -12
- package/mjs/DiscordREST.mjs.map +1 -1
- package/mjs/Helpers/interactions.mjs +2 -2
- package/mjs/Helpers/interactions.mjs.map +1 -1
- package/mjs/Interactions/context.mjs +2 -2
- package/mjs/Interactions/context.mjs.map +1 -1
- package/mjs/Interactions/definitions.mjs.map +1 -1
- package/mjs/Interactions/handlers.mjs +25 -23
- package/mjs/Interactions/handlers.mjs.map +1 -1
- package/mjs/Interactions/index.mjs +5 -6
- package/mjs/Interactions/index.mjs.map +1 -1
- package/mjs/Interactions/utils.mjs +18 -20
- package/mjs/Interactions/utils.mjs.map +1 -1
- package/mjs/Interactions/webhook.mjs +1 -1
- package/mjs/Interactions/webhook.mjs.map +1 -1
- package/mjs/RateLimit.mjs +1 -1
- package/mjs/RateLimit.mjs.map +1 -1
- package/mjs/utils/Effect.mjs +1 -1
- package/mjs/utils/Effect.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/package.json +4 -4
- package/src/Cache/memory.ts +2 -2
- package/src/Cache/memoryTTL.ts +5 -5
- package/src/DiscordGateway/Messaging.ts +1 -1
- package/src/DiscordGateway/Shard/invalidSession.ts +1 -1
- package/src/DiscordGateway/Shard/utils.ts +1 -1
- package/src/DiscordGateway/Shard.ts +3 -3
- package/src/DiscordREST.ts +15 -15
- package/src/Helpers/interactions.ts +2 -2
- package/src/Interactions/context.ts +3 -6
- package/src/Interactions/definitions.ts +23 -37
- package/src/Interactions/handlers.ts +40 -66
- package/src/Interactions/index.ts +5 -7
- package/src/Interactions/utils.ts +45 -41
- package/src/Interactions/webhook.ts +1 -1
- package/src/RateLimit.ts +4 -8
- package/src/utils/Effect.ts +1 -1
- package/src/version.ts +1 -1
- package/utils/Effect.js +1 -1
- package/utils/Effect.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -30,8 +30,7 @@ export class GlobalApplicationCommand<R, E> {
|
|
|
30
30
|
export const global = <
|
|
31
31
|
R,
|
|
32
32
|
E,
|
|
33
|
-
const A extends
|
|
34
|
-
DeepReadonlyObject<Discord.CreateGlobalApplicationCommandParams>,
|
|
33
|
+
const A extends Discord.CreateGlobalApplicationCommandParams,
|
|
35
34
|
>(
|
|
36
35
|
command: A,
|
|
37
36
|
handle: CommandHandler<R, E, A>,
|
|
@@ -52,8 +51,7 @@ export class GuildApplicationCommand<R, E> {
|
|
|
52
51
|
export const guild = <
|
|
53
52
|
R,
|
|
54
53
|
E,
|
|
55
|
-
const A extends
|
|
56
|
-
DeepReadonlyObject<Discord.CreateGuildApplicationCommandParams>,
|
|
54
|
+
const A extends Discord.CreateGuildApplicationCommandParams,
|
|
57
55
|
>(
|
|
58
56
|
command: A,
|
|
59
57
|
handle: CommandHandler<R, E, A>,
|
|
@@ -66,36 +64,36 @@ export const guild = <
|
|
|
66
64
|
export class MessageComponent<R, E> {
|
|
67
65
|
readonly _tag = "MessageComponent"
|
|
68
66
|
constructor(
|
|
69
|
-
readonly predicate: (customId: string) =>
|
|
67
|
+
readonly predicate: (customId: string) => boolean,
|
|
70
68
|
readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
71
69
|
) {}
|
|
72
70
|
}
|
|
73
71
|
|
|
74
|
-
export const messageComponent = <
|
|
75
|
-
pred: (customId: string) =>
|
|
76
|
-
handle: CommandHandler<
|
|
72
|
+
export const messageComponent = <R, E>(
|
|
73
|
+
pred: (customId: string) => boolean,
|
|
74
|
+
handle: CommandHandler<R, E, Discord.InteractionResponse>,
|
|
77
75
|
) =>
|
|
78
76
|
new MessageComponent<
|
|
79
|
-
Exclude<
|
|
80
|
-
|
|
81
|
-
>(pred
|
|
77
|
+
Exclude<R, DiscordInteraction | DiscordMessageComponent | Scope>,
|
|
78
|
+
E
|
|
79
|
+
>(pred, handle as any)
|
|
82
80
|
|
|
83
81
|
export class ModalSubmit<R, E> {
|
|
84
82
|
readonly _tag = "ModalSubmit"
|
|
85
83
|
constructor(
|
|
86
|
-
readonly predicate: (customId: string) =>
|
|
84
|
+
readonly predicate: (customId: string) => boolean,
|
|
87
85
|
readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
88
86
|
) {}
|
|
89
87
|
}
|
|
90
88
|
|
|
91
|
-
export const modalSubmit = <
|
|
92
|
-
pred: (customId: string) =>
|
|
93
|
-
handle: Effect.Effect<Discord.InteractionResponse,
|
|
89
|
+
export const modalSubmit = <R, E>(
|
|
90
|
+
pred: (customId: string) => boolean,
|
|
91
|
+
handle: Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
94
92
|
) =>
|
|
95
93
|
new ModalSubmit<
|
|
96
|
-
Exclude<
|
|
97
|
-
|
|
98
|
-
>(pred
|
|
94
|
+
Exclude<R, DiscordInteraction | DiscordModalSubmit | Scope>,
|
|
95
|
+
E
|
|
96
|
+
>(pred, handle as any)
|
|
99
97
|
|
|
100
98
|
export class Autocomplete<R, E> {
|
|
101
99
|
readonly _tag = "Autocomplete"
|
|
@@ -103,42 +101,30 @@ export class Autocomplete<R, E> {
|
|
|
103
101
|
readonly predicate: (
|
|
104
102
|
data: Discord.ApplicationCommandDatum,
|
|
105
103
|
focusedOption: Discord.ApplicationCommandInteractionDataOption,
|
|
106
|
-
) =>
|
|
104
|
+
) => boolean,
|
|
107
105
|
readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
108
106
|
) {}
|
|
109
107
|
}
|
|
110
108
|
|
|
111
|
-
export const autocomplete = <
|
|
109
|
+
export const autocomplete = <R, E>(
|
|
112
110
|
pred: (
|
|
113
111
|
data: Discord.ApplicationCommandDatum,
|
|
114
112
|
focusedOption: Discord.ApplicationCommandInteractionDataOption,
|
|
115
|
-
) =>
|
|
116
|
-
handle: Effect.Effect<Discord.InteractionResponse,
|
|
113
|
+
) => boolean,
|
|
114
|
+
handle: Effect.Effect<Discord.InteractionResponse, E, R>,
|
|
117
115
|
) =>
|
|
118
116
|
new Autocomplete<
|
|
119
117
|
Exclude<
|
|
120
|
-
|
|
118
|
+
R,
|
|
121
119
|
| DiscordInteraction
|
|
122
120
|
| DiscordApplicationCommand
|
|
123
121
|
| DiscordFocusedOption
|
|
124
122
|
| Scope
|
|
125
123
|
>,
|
|
126
|
-
|
|
127
|
-
>(pred
|
|
124
|
+
E
|
|
125
|
+
>(pred, handle as any)
|
|
128
126
|
|
|
129
127
|
// ==== Command handler helpers
|
|
130
|
-
type DeepReadonly<T> =
|
|
131
|
-
T extends Array<infer R>
|
|
132
|
-
? ReadonlyArray<DeepReadonly<R>>
|
|
133
|
-
: T extends Function
|
|
134
|
-
? T
|
|
135
|
-
: T extends object
|
|
136
|
-
? DeepReadonlyObject<T>
|
|
137
|
-
: T
|
|
138
|
-
type DeepReadonlyObject<T> = {
|
|
139
|
-
readonly [P in keyof T]: DeepReadonly<T[P]>
|
|
140
|
-
}
|
|
141
|
-
|
|
142
128
|
export type CommandHandler<R, E, A = any> =
|
|
143
129
|
| Effect.Effect<Discord.InteractionResponse, E, R>
|
|
144
130
|
| CommandHandlerFn<R, E, A>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type * as Chunk from "effect/Chunk"
|
|
2
|
-
import * as Option from "effect/Option"
|
|
3
2
|
import * as Effect from "effect/Effect"
|
|
4
3
|
import * as IxHelpers from "dfx/Helpers/interactions"
|
|
5
4
|
import * as Ctx from "dfx/Interactions/context"
|
|
@@ -40,91 +39,66 @@ export const handlers = <R, E, TE, A, B>(
|
|
|
40
39
|
splitDefinitions(flattened)
|
|
41
40
|
|
|
42
41
|
return {
|
|
43
|
-
[Discord.InteractionType.PING]:
|
|
42
|
+
[Discord.InteractionType.PING]: _ =>
|
|
44
43
|
Effect.succeed({
|
|
45
44
|
type: Discord.InteractionCallbackType.PONG,
|
|
46
45
|
} as any),
|
|
47
46
|
|
|
48
47
|
[Discord.InteractionType.APPLICATION_COMMAND]: i => {
|
|
49
48
|
const data = i.data as Discord.ApplicationCommandDatum
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
})
|
|
49
|
+
const command = Commands[data.name]
|
|
50
|
+
if (command === undefined) {
|
|
51
|
+
return Effect.fail(new DefinitionNotFound(i))
|
|
52
|
+
}
|
|
53
|
+
return Effect.provideService(
|
|
54
|
+
command.handle(i),
|
|
55
|
+
Ctx.ApplicationCommand,
|
|
56
|
+
data,
|
|
57
|
+
) as Handler<Exclude<R, Scope>, E, B>
|
|
60
58
|
},
|
|
61
59
|
|
|
62
60
|
[Discord.InteractionType.MODAL_SUBMIT]: i => {
|
|
63
61
|
const data = i.data as Discord.ModalSubmitDatum
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Effect.provideService(
|
|
73
|
-
match.handle(i),
|
|
74
|
-
Ctx.ModalSubmitData,
|
|
75
|
-
data,
|
|
76
|
-
) as Handler<R, E, B>,
|
|
77
|
-
}),
|
|
78
|
-
),
|
|
62
|
+
const match = ModalSubmit.find(_ => _.predicate(data.custom_id))
|
|
63
|
+
if (match === undefined) {
|
|
64
|
+
return Effect.fail(new DefinitionNotFound(i))
|
|
65
|
+
}
|
|
66
|
+
return Effect.provideService(
|
|
67
|
+
match.handle(i),
|
|
68
|
+
Ctx.ModalSubmitData,
|
|
69
|
+
data,
|
|
79
70
|
) as Handler<Exclude<R, Scope>, E, B>
|
|
80
71
|
},
|
|
81
72
|
|
|
82
73
|
[Discord.InteractionType.MESSAGE_COMPONENT]: i => {
|
|
83
74
|
const data = i.data as Discord.MessageComponentDatum
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Effect.provideService(
|
|
93
|
-
match.handle(i),
|
|
94
|
-
Ctx.MessageComponentData,
|
|
95
|
-
data,
|
|
96
|
-
) as Handler<R, E, B>,
|
|
97
|
-
}),
|
|
98
|
-
),
|
|
75
|
+
const match = MessageComponent.find(_ => _.predicate(data.custom_id))
|
|
76
|
+
if (match === undefined) {
|
|
77
|
+
return Effect.fail(new DefinitionNotFound(i))
|
|
78
|
+
}
|
|
79
|
+
return Effect.provideService(
|
|
80
|
+
match.handle(i),
|
|
81
|
+
Ctx.MessageComponentData,
|
|
82
|
+
data,
|
|
99
83
|
) as Handler<Exclude<R, Scope>, E, B>
|
|
100
84
|
},
|
|
101
85
|
|
|
102
86
|
[Discord.InteractionType.APPLICATION_COMMAND_AUTOCOMPLETE]: i => {
|
|
103
87
|
const data = i.data as Discord.ApplicationCommandDatum
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
data,
|
|
119
|
-
).pipe(
|
|
120
|
-
Effect.provideService(Ctx.FocusedOptionContext, {
|
|
121
|
-
focusedOption,
|
|
122
|
-
}),
|
|
123
|
-
) as Handler<R, E, B>,
|
|
124
|
-
}),
|
|
125
|
-
),
|
|
126
|
-
),
|
|
127
|
-
}) as Handler<Exclude<R, Scope>, E, B>
|
|
88
|
+
const option = IxHelpers.focusedOption(data)
|
|
89
|
+
if (option._tag === "None") {
|
|
90
|
+
return Effect.fail(new DefinitionNotFound(i))
|
|
91
|
+
}
|
|
92
|
+
const match = Autocomplete.find(_ => _.predicate(data, option.value))
|
|
93
|
+
if (match === undefined) {
|
|
94
|
+
return Effect.fail(new DefinitionNotFound(i))
|
|
95
|
+
}
|
|
96
|
+
return match
|
|
97
|
+
.handle(i)
|
|
98
|
+
.pipe(
|
|
99
|
+
Effect.provideService(Ctx.ApplicationCommand, data),
|
|
100
|
+
Effect.provideService(Ctx.FocusedOptionContext, option.value),
|
|
101
|
+
) as Handler<Exclude<R, Scope>, E, B>
|
|
128
102
|
},
|
|
129
103
|
}
|
|
130
104
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect"
|
|
2
1
|
import type * as Discord from "dfx/types"
|
|
3
2
|
|
|
4
3
|
export { response } from "dfx/Helpers/interactions"
|
|
@@ -14,14 +13,13 @@ export {
|
|
|
14
13
|
} from "dfx/Interactions/definitions"
|
|
15
14
|
|
|
16
15
|
// Filters
|
|
17
|
-
export const id = (query: string) => (customId: string) =>
|
|
18
|
-
Effect.succeed(query === customId)
|
|
16
|
+
export const id = (query: string) => (customId: string) => query === customId
|
|
19
17
|
|
|
20
18
|
export const idStartsWith = (query: string) => (customId: string) =>
|
|
21
|
-
|
|
19
|
+
customId.startsWith(query)
|
|
22
20
|
|
|
23
21
|
export const idRegex = (query: RegExp) => (customId: string) =>
|
|
24
|
-
|
|
22
|
+
query.test(customId)
|
|
25
23
|
|
|
26
24
|
export const option =
|
|
27
25
|
(command: string, optionName: string) =>
|
|
@@ -32,7 +30,7 @@ export const option =
|
|
|
32
30
|
"name"
|
|
33
31
|
>,
|
|
34
32
|
) =>
|
|
35
|
-
|
|
33
|
+
data.name === command && focusedOption.name === optionName
|
|
36
34
|
|
|
37
35
|
export const optionOnly =
|
|
38
36
|
(optionName: string) =>
|
|
@@ -43,4 +41,4 @@ export const optionOnly =
|
|
|
43
41
|
"name"
|
|
44
42
|
>,
|
|
45
43
|
) =>
|
|
46
|
-
|
|
44
|
+
focusedOption.name === optionName
|
|
@@ -3,6 +3,7 @@ import * as Effect from "effect/Effect"
|
|
|
3
3
|
import * as Ctx from "dfx/Interactions/context"
|
|
4
4
|
import type * as D from "dfx/Interactions/definitions"
|
|
5
5
|
import type * as Discord from "dfx/types"
|
|
6
|
+
import * as Array from "effect/Array"
|
|
6
7
|
|
|
7
8
|
export type DefinitionFlattened<R, E, TE, A> =
|
|
8
9
|
D.InteractionDefinition<R, E> extends infer D
|
|
@@ -38,60 +39,63 @@ export const flattenDefinitions = <R, E, TE, A, B>(
|
|
|
38
39
|
_: Discord.InteractionResponse,
|
|
39
40
|
) => Effect.Effect<A, E, R>,
|
|
40
41
|
) =>
|
|
41
|
-
|
|
42
|
+
Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
|
|
42
43
|
...definition,
|
|
43
|
-
handle: (
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Effect.flatMap(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Effect.flatMap(definition.handle(context), _ =>
|
|
51
|
-
handleResponse(i, _),
|
|
44
|
+
handle: Effect.isEffect(definition.handle)
|
|
45
|
+
? (i: Discord.Interaction) =>
|
|
46
|
+
Effect.scoped(
|
|
47
|
+
transform(
|
|
48
|
+
Effect.flatMap(
|
|
49
|
+
definition.handle as Effect.Effect<Discord.InteractionResponse>,
|
|
50
|
+
_ => handleResponse(i, _),
|
|
52
51
|
),
|
|
53
52
|
),
|
|
54
|
-
|
|
53
|
+
)
|
|
54
|
+
: (i: Discord.Interaction) =>
|
|
55
|
+
Effect.scoped(
|
|
56
|
+
transform(
|
|
57
|
+
Effect.flatMap(
|
|
58
|
+
(
|
|
59
|
+
definition.handle as (
|
|
60
|
+
_: any,
|
|
61
|
+
) => Effect.Effect<Discord.InteractionResponse>
|
|
62
|
+
)(context),
|
|
63
|
+
_ => handleResponse(i, _),
|
|
64
|
+
),
|
|
65
|
+
),
|
|
66
|
+
),
|
|
55
67
|
}))
|
|
56
68
|
|
|
57
69
|
export const splitDefinitions = <R, E, TE, A>(
|
|
58
|
-
definitions:
|
|
70
|
+
definitions: ReadonlyArray<DefinitionFlattened<R, E, TE, A>>,
|
|
59
71
|
) => {
|
|
60
|
-
const grouped =
|
|
72
|
+
const grouped = Array.reduce(
|
|
61
73
|
definitions,
|
|
62
74
|
{
|
|
63
|
-
Autocomplete:
|
|
64
|
-
GlobalApplicationCommand:
|
|
65
|
-
GuildApplicationCommand:
|
|
66
|
-
MessageComponent:
|
|
67
|
-
ModalSubmit:
|
|
75
|
+
Autocomplete: [],
|
|
76
|
+
GlobalApplicationCommand: [],
|
|
77
|
+
GuildApplicationCommand: [],
|
|
78
|
+
MessageComponent: [],
|
|
79
|
+
ModalSubmit: [],
|
|
80
|
+
Commands: {},
|
|
68
81
|
} as {
|
|
69
|
-
[K in D.InteractionDefinition<R, E>["_tag"]]:
|
|
82
|
+
[K in D.InteractionDefinition<R, E>["_tag"]]: Array<
|
|
70
83
|
Extract<DefinitionFlattened<R, E, TE, A>, { _tag: K }>
|
|
71
84
|
>
|
|
85
|
+
} & {
|
|
86
|
+
readonly Commands: Record<string, DefinitionFlattenedCommand<R, E, TE, A>>
|
|
87
|
+
},
|
|
88
|
+
(acc, d) => {
|
|
89
|
+
acc[d._tag].push(d as any)
|
|
90
|
+
if (
|
|
91
|
+
d._tag === "GlobalApplicationCommand" ||
|
|
92
|
+
d._tag === "GuildApplicationCommand"
|
|
93
|
+
) {
|
|
94
|
+
acc.Commands[d.command.name] = d as any
|
|
95
|
+
}
|
|
96
|
+
return acc
|
|
72
97
|
},
|
|
73
|
-
(acc, d) => ({
|
|
74
|
-
...acc,
|
|
75
|
-
[d._tag]: Chunk.append(acc[d._tag] as Chunk.Chunk<any>, d),
|
|
76
|
-
}),
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
const Commands = Chunk.appendAll(
|
|
80
|
-
grouped.GlobalApplicationCommand,
|
|
81
|
-
grouped.GuildApplicationCommand,
|
|
82
|
-
).pipe(
|
|
83
|
-
Chunk.reduce(
|
|
84
|
-
{} as Record<string, DefinitionFlattenedCommand<R, E, TE, A>>,
|
|
85
|
-
(acc, d) =>
|
|
86
|
-
({
|
|
87
|
-
...acc,
|
|
88
|
-
[d.command.name]: d,
|
|
89
|
-
}) as any,
|
|
90
|
-
),
|
|
91
98
|
)
|
|
92
99
|
|
|
93
|
-
return
|
|
94
|
-
...grouped,
|
|
95
|
-
Commands,
|
|
96
|
-
}
|
|
100
|
+
return grouped
|
|
97
101
|
}
|
package/src/RateLimit.ts
CHANGED
|
@@ -13,13 +13,9 @@ export type BucketDetails = {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export interface RateLimitStoreService {
|
|
16
|
-
readonly hasBucket: (
|
|
17
|
-
bucketKey: string,
|
|
18
|
-
) => Effect.Effect<boolean>
|
|
16
|
+
readonly hasBucket: (bucketKey: string) => Effect.Effect<boolean>
|
|
19
17
|
|
|
20
|
-
readonly putBucket: (
|
|
21
|
-
bucket: BucketDetails,
|
|
22
|
-
) => Effect.Effect<void>
|
|
18
|
+
readonly putBucket: (bucket: BucketDetails) => Effect.Effect<void>
|
|
23
19
|
|
|
24
20
|
readonly getBucketForRoute: (
|
|
25
21
|
route: string,
|
|
@@ -72,9 +68,9 @@ const makeLimiter = Effect.gen(function* (_) {
|
|
|
72
68
|
}),
|
|
73
69
|
),
|
|
74
70
|
Effect.tap(_ =>
|
|
75
|
-
Duration.toMillis(_) === 0 ? Effect.
|
|
71
|
+
Duration.toMillis(_) === 0 ? Effect.void : Effect.sleep(_),
|
|
76
72
|
),
|
|
77
|
-
Effect.
|
|
73
|
+
Effect.asVoid,
|
|
78
74
|
)
|
|
79
75
|
}
|
|
80
76
|
|
package/src/utils/Effect.ts
CHANGED
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.
|
|
1
|
+
export const LIB_VERSION = "0.93.0";
|
package/utils/Effect.js
CHANGED
|
@@ -21,7 +21,7 @@ const subscribeForEachPar = (self, effect) => Effect.flatMap(Deferred.make(), de
|
|
|
21
21
|
exports.subscribeForEachPar = subscribeForEachPar;
|
|
22
22
|
const foreverSwitch = (self, f) => (0, _Function.pipe)(Effect.all([Deferred.make(), Effect.fiberId]), Effect.flatMap(([causeDeferred, fiberId]) => {
|
|
23
23
|
let fiber;
|
|
24
|
-
const run = (0, _Function.pipe)(self, Effect.tap(() => fiber ? fiber.interruptAsFork(fiberId) : Effect.
|
|
24
|
+
const run = (0, _Function.pipe)(self, Effect.tap(() => fiber ? fiber.interruptAsFork(fiberId) : Effect.void), Effect.flatMap(_ => (0, _Function.pipe)(f(_), Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)), Effect.fork)), Effect.tap(fiber_ => Effect.sync(() => {
|
|
25
25
|
fiber = fiber_;
|
|
26
26
|
})), Effect.forever, Effect.interruptible);
|
|
27
27
|
return Effect.all([run, Deferred.await(causeDeferred)], {
|
package/utils/Effect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","names":["_Function","require","Deferred","_interopRequireWildcard","Effect","PubSub","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","subscribeForEachPar","self","effect","flatMap","make","deferred","run","pipe","subscribe","queue","forever","take","_","fork","catchAllCause","failCause","scoped","interruptible","all","await","concurrency","discard","exports","foreverSwitch","f","fiberId","causeDeferred","fiber","tap","interruptAsFork","
|
|
1
|
+
{"version":3,"file":"Effect.js","names":["_Function","require","Deferred","_interopRequireWildcard","Effect","PubSub","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","subscribeForEachPar","self","effect","flatMap","make","deferred","run","pipe","subscribe","queue","forever","take","_","fork","catchAllCause","failCause","scoped","interruptible","all","await","concurrency","discard","exports","foreverSwitch","f","fiberId","causeDeferred","fiber","tap","interruptAsFork","void","tapErrorCause","fiber_","sync"],"sources":["../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "0.
|
|
1
|
+
export declare const LIB_VERSION = "0.93.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED