dfx 0.8.4 → 0.9.1

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.
@@ -1,16 +1,23 @@
1
- import { Http, Effect, Rest, Discord } from "dfx/common";
1
+ import { Discord, Effect, Cause, Http, Rest } from "dfx/common";
2
2
  import * as D from "./definitions.js";
3
3
  import * as Gateway from "./gateway.js";
4
4
  import * as Webhook from "./webhook.js";
5
5
  export * from "./context.js";
6
6
  export { global, guild, messageComponent, modalSubmit, autocomplete, InteractionDefinition, InteractionResponse, } from "./definitions.js";
7
7
  export { makeConfig as makeWebhookConfig, WebhookConfig, WebhookParseError, BadWebhookSignature, } from "./webhook.js";
8
+ export interface HandleWebhookOpts<E> {
9
+ headers: Webhook.Headers;
10
+ body: string;
11
+ success: (a: Discord.InteractionResponse) => Effect<never, never, void>;
12
+ error: (e: Cause<E>) => Effect<never, never, void>;
13
+ empty: Effect<never, never, void>;
14
+ }
8
15
  declare class InteractionBuilder<R, E> {
9
16
  readonly definitions: D.InteractionDefinition<R, E>[];
10
17
  constructor(definitions: D.InteractionDefinition<R, E>[]);
11
18
  add<R1, E1>(definition: D.InteractionDefinition<R1, E1>): InteractionBuilder<R | R1, E | E1>;
12
19
  runGateway<R2, E2>(catchAll: (e: E | Http.FetchError | Http.StatusCodeError | Http.JsonParseError) => Effect<R2, E2, any>, opts?: Gateway.RunOpts): import("../common.js").Effect<import("../index.js").DiscordREST | import("../DiscordGateway/index.js").DiscordGateway | R | R2, import("../Http/index.js").FetchError | import("../Http/index.js").StatusCodeError | import("../Http/index.js").JsonParseError | E2, void>;
13
- handleWebhook(headers: Webhook.Headers, rawBody: string): import("../common.js").Effect<Webhook.WebhookConfig | R, Webhook.BadWebhookSignature | Webhook.WebhookParseError | E, import("../common.js").Maybe<import("../types.js").InteractionResponse>>;
20
+ makeWebhookHandler(): ({ headers, body, success, empty, error, }: HandleWebhookOpts<E | Webhook.WebhookParseError | Webhook.BadWebhookSignature>) => import("../common.js").Effect<Webhook.WebhookConfig | R, never, void>;
14
21
  get syncGlobal(): import("../common.js").Effect<import("../index.js").DiscordREST, import("../Http/index.js").FetchError | import("../Http/index.js").StatusCodeError | import("../Http/index.js").JsonParseError, import("../DiscordREST/types.js").ResponseWithData<import("../types.js").ApplicationCommand[]>>;
15
22
  syncGuild(appId: Discord.Snowflake, guildId: Discord.Snowflake): import("../DiscordREST/types.js").RestResponse<import("../types.js").ApplicationCommand[]>;
16
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,cAAc,cAAc,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,cAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC;IACf,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAA5C,WAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAEjE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC;IAOvD,UAAU,CAAC,EAAE,EAAE,EAAE,EACf,QAAQ,EAAE,CACR,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,KAChE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EACxB,IAAI,GAAE,OAAO,CAAC,OAAY;IAK5B,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM;IAIvD,IAAI,UAAU,qSAgBb;IAED,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS;CAc/D;AAED,eAAO,MAAM,OAAO,kCAA2C,CAAA;AAG/D,eAAO,MAAM,EAAE,UAAW,MAAM,gBAAgB,MAAM,yDAClB,CAAA;AAEpC,eAAO,MAAM,YAAY,UAAW,MAAM,gBAAgB,MAAM,yDACpB,CAAA;AAE5C,eAAO,MAAM,KAAK,UAAW,MAAM,gBAAgB,MAAM,yDACnB,CAAA;AAEtC,eAAO,MAAM,MAAM,SACV,MAAM,qBACG,QAAQ,uCAAuC,yDAClB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,cAAc,cAAc,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACvE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAClD,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAClC;AAED,cAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC;IACf,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAA5C,WAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAEjE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC;IAOvD,UAAU,CAAC,EAAE,EAAE,EAAE,EACf,QAAQ,EAAE,CACR,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,KAChE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EACxB,IAAI,GAAE,OAAO,CAAC,OAAY;IAK5B,kBAAkB,gDASb,kBACD,CAAC,GAAG,QAAQ,iBAAiB,GAAG,QAAQ,mBAAmB,CAC5D;IAWH,IAAI,UAAU,qSAgBb;IAED,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS;CAc/D;AAED,eAAO,MAAM,OAAO,kCAA2C,CAAA;AAG/D,eAAO,MAAM,EAAE,UAAW,MAAM,gBAAgB,MAAM,yDAClB,CAAA;AAEpC,eAAO,MAAM,YAAY,UAAW,MAAM,gBAAgB,MAAM,yDACpB,CAAA;AAE5C,eAAO,MAAM,KAAK,UAAW,MAAM,gBAAgB,MAAM,yDACnB,CAAA;AAEtC,eAAO,MAAM,MAAM,SACV,MAAM,qBACG,QAAQ,uCAAuC,yDAClB,CAAA"}
@@ -1,5 +1,6 @@
1
- import * as tsplus_module_1 from "dfx/common";
1
+ import * as tsplus_module_1 from "@fp-ts/data/Option";
2
2
  import * as tsplus_module_2 from "@effect/io/Effect";
3
+ import * as tsplus_module_3 from "dfx/common";
3
4
  import * as Gateway from "./gateway.js";
4
5
  import * as Webhook from "./webhook.js";
5
6
  export * from "./context.js";
@@ -19,23 +20,24 @@ class InteractionBuilder {
19
20
  runGateway(catchAll, opts = {}) {
20
21
  return Gateway.run(this.definitions, catchAll, opts);
21
22
  }
22
- handleWebhook(headers, rawBody) {
23
- return Webhook.run(this.definitions, headers, rawBody);
23
+ makeWebhookHandler() {
24
+ const handle = Webhook.run(this.definitions);
25
+ return ({ headers, body, success, empty, error, }) => tsplus_module_2.catchAllCause(error)(tsplus_module_2.flatMap((o) => tsplus_module_1.match(() => empty, (a) => success(a))(o))(handle(headers, body)));
24
26
  }
25
27
  get syncGlobal() {
26
28
  const commands = this.definitions
27
29
  .filter((c) => c._tag === "GlobalApplicationCommand")
28
30
  .map((c) => c.command);
29
- return tsplus_module_2.flatMap((app) => tsplus_module_1.Rest.rest.bulkOverwriteGlobalApplicationCommands(app.id, {
31
+ return tsplus_module_2.flatMap((app) => tsplus_module_3.Rest.rest.bulkOverwriteGlobalApplicationCommands(app.id, {
30
32
  body: JSON.stringify(commands),
31
- }))(tsplus_module_2.flatMap((r) => r.json)(tsplus_module_1.Rest.rest
33
+ }))(tsplus_module_2.flatMap((r) => r.json)(tsplus_module_3.Rest.rest
32
34
  .getCurrentBotApplicationInformation()));
33
35
  }
34
36
  syncGuild(appId, guildId) {
35
37
  const commands = this.definitions
36
38
  .filter((c) => c._tag === "GuildApplicationCommand")
37
39
  .map((c) => c.command);
38
- return tsplus_module_1.Rest.rest.bulkOverwriteGuildApplicationCommands(appId, guildId, commands);
40
+ return tsplus_module_3.Rest.rest.bulkOverwriteGuildApplicationCommands(appId, guildId, commands);
39
41
  }
40
42
  }
41
43
  export const builder = new InteractionBuilder([]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,5 @@ export declare class WebhookParseError {
15
15
  readonly _tag = "WebhookParseError";
16
16
  constructor(reason: unknown);
17
17
  }
18
- export declare const run: <R, E>(definitions: D.InteractionDefinition<R, E>[], headers: Headers, body: string) => import("../common.js").Effect<WebhookConfig | R, BadWebhookSignature | WebhookParseError | E, import("../common.js").Maybe<import("../types.js").InteractionResponse>>;
18
+ export declare const run: <R, E>(definitions: D.InteractionDefinition<R, E>[]) => (headers: Headers, body: string) => import("../common.js").Effect<WebhookConfig | R, BadWebhookSignature | WebhookParseError | E, import("../common.js").Maybe<import("../types.js").InteractionResponse>>;
19
19
  //# sourceMappingURL=webhook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAGrC,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,yBAAwB;CACtC;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;AAgBnE,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AACD,eAAO,MAAM,aAAa,2CAAuB,CAAA;AACjD,eAAO,MAAM,UAAU,MAAO,aAAa,8DAAoC,CAAA;AAE/E,qBAAa,iBAAiB;IAEhB,QAAQ,CAAC,MAAM,EAAE,OAAO;IADpC,QAAQ,CAAC,IAAI,uBAAsB;gBACd,MAAM,EAAE,OAAO;CACrC;AAcD,eAAO,MAAM,GAAG,gEAEL,OAAO,QACV,MAAM,2KAKV,CAAA"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAGrC,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,yBAAwB;CACtC;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;AAgBnE,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AACD,eAAO,MAAM,aAAa,2CAAuB,CAAA;AACjD,eAAO,MAAM,UAAU,MAAO,aAAa,8DAAoC,CAAA;AAE/E,qBAAa,iBAAiB;IAEhB,QAAQ,CAAC,MAAM,EAAE,OAAO;IADpC,QAAQ,CAAC,IAAI,uBAAsB;gBACd,MAAM,EAAE,OAAO;CACrC;AAcD,eAAO,MAAM,GAAG,oEAEG,OAAO,QAAQ,MAAM,2KAKvC,CAAA"}
@@ -22,5 +22,8 @@ export class WebhookParseError {
22
22
  }
23
23
  }
24
24
  const fromHeadersAndBody = (headers, body) => tsplus_module_5.flatMap(({ publicKey }) => tsplus_module_5.flatMap(() => tsplus_module_5.tryCatch(() => JSON.parse(body), (reason) => new WebhookParseError(reason)))(tsplus_module_5.fromEither(checkSignature(publicKey, headers, body))))(tsplus_module_5.service(WebhookConfig));
25
- export const run = (definitions, headers, body) => tsplus_module_5.flatMap(interaction => handlers(definitions)[interaction.type](interaction))(fromHeadersAndBody(headers, body));
25
+ export const run = (definitions) => {
26
+ const handler = handlers(definitions);
27
+ return (headers, body) => tsplus_module_5.flatMap(interaction => handler[interaction.type](interaction))(fromHeadersAndBody(headers, body));
28
+ };
26
29
  //# sourceMappingURL=webhook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,qBAAqB,CAAA;CACtC;AAID,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,OAAgB,EAAE,IAAY,EAAE,EAAE,wBAC3E,yBAWY,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE,EAX3C,uBAIU,CAAC,CAAC,EAAE,EAAE,CACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CACvB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,EAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,EACpC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAC9B,EATL,uBAAa;IACX,SAAS,EAAE,6BAAmB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7D,SAAS,EAAE,6BAAmB,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAChE,CAAC,CAOC,CACyC,CAAO,CAAA;AAMrD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAA,GAAG,EAAiB,CAAA;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,wBAAc,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAM,OAAO,iBAAiB;IAEP;IADZ,IAAI,GAAG,mBAAmB,CAAA;IACnC,YAAqB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;CACzC;AAED,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAE,0BAEpD,EAAE,SAAS,EAAE,mCAGjB,yBACE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,EAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAC1C,EALD,2BAAkB,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GADrC,wBAAe,aAAa,CAAC,CAQrD,CAAA;AAEJ,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,WAA4C,EAC5C,OAAgB,EAChB,IAAY,EACZ,EAAE,yBAEM,WAAW,IACR,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EADvC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAEvD,CAAA"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/Interactions/webhook.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,qBAAqB,CAAA;CACtC;AAID,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,OAAgB,EAAE,IAAY,EAAE,EAAE,wBAC3E,yBAWY,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE,EAX3C,uBAIU,CAAC,CAAC,EAAE,EAAE,CACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CACvB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,EAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,EACpC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAC9B,EATL,uBAAa;IACX,SAAS,EAAE,6BAAmB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7D,SAAS,EAAE,6BAAmB,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAChE,CAAC,CAOC,CACyC,CAAO,CAAA;AAMrD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAA,GAAG,EAAiB,CAAA;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,wBAAc,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAM,OAAO,iBAAiB;IAEP;IADZ,IAAI,GAAG,mBAAmB,CAAA;IACnC,YAAqB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;CACzC;AAED,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAE,0BAEpD,EAAE,SAAS,EAAE,mCAGjB,yBACE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,EAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAC1C,EALD,2BAAkB,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GADrC,wBAAe,aAAa,CAAC,CAQrD,CAAA;AAEJ,MAAM,CAAC,MAAM,GAAG,GAAG,CAAO,WAA4C,EAAE,EAAE;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IACrC,OAAO,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAE,yBAEhC,WAAW,IACR,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EADzB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAEvD,CAAA;AACN,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.8.4",
3
+ "version": "0.9.1",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,8 +23,8 @@
23
23
  "./*": "./dist/*.js"
24
24
  },
25
25
  "devDependencies": {
26
- "@effect/io": "^0.0.29",
27
- "@fp-ts/data": "^0.0.19",
26
+ "@effect/io": "^0.0.30",
27
+ "@fp-ts/data": "^0.0.20",
28
28
  "@tim-smart/discord-api-docs-parser": "^0.4.1",
29
29
  "@types/ws": "^8.5.3",
30
30
  "lerna": "^4.0.0",
@@ -46,9 +46,9 @@
46
46
  },
47
47
  "pnpm": {
48
48
  "overrides": {
49
- "@effect/io": "^0.0.28",
50
- "@fp-ts/data": "^0.0.19"
49
+ "@effect/io": "^0.0.30",
50
+ "@fp-ts/data": "^0.0.20"
51
51
  }
52
52
  },
53
- "gitHead": "14ff46858a594f021aabd32793e057b6907f60dc"
53
+ "gitHead": "6f96ca70fcb0f1837ba97c6bf0217f2384484e8e"
54
54
  }
@@ -21,6 +21,14 @@ export {
21
21
  BadWebhookSignature,
22
22
  } from "./webhook.js"
23
23
 
24
+ export interface HandleWebhookOpts<E> {
25
+ headers: Webhook.Headers
26
+ body: string
27
+ success: (a: Discord.InteractionResponse) => Effect<never, never, void>
28
+ error: (e: Cause<E>) => Effect<never, never, void>
29
+ empty: Effect<never, never, void>
30
+ }
31
+
24
32
  class InteractionBuilder<R, E> {
25
33
  constructor(readonly definitions: D.InteractionDefinition<R, E>[]) {}
26
34
 
@@ -40,8 +48,26 @@ class InteractionBuilder<R, E> {
40
48
  return Gateway.run<R, R2, E, E2>(this.definitions, catchAll, opts)
41
49
  }
42
50
 
43
- handleWebhook(headers: Webhook.Headers, rawBody: string) {
44
- return Webhook.run(this.definitions, headers, rawBody)
51
+ makeWebhookHandler() {
52
+ const handle = Webhook.run(this.definitions)
53
+
54
+ return ({
55
+ headers,
56
+ body,
57
+ success,
58
+ empty,
59
+ error,
60
+ }: HandleWebhookOpts<
61
+ E | Webhook.WebhookParseError | Webhook.BadWebhookSignature
62
+ >) =>
63
+ handle(headers, body)
64
+ .flatMap((o) =>
65
+ o.match(
66
+ () => empty,
67
+ (a) => success(a),
68
+ ),
69
+ )
70
+ .catchAllCause(error)
45
71
  }
46
72
 
47
73
  get syncGlobal() {
@@ -46,12 +46,11 @@ const fromHeadersAndBody = (headers: Headers, body: string) =>
46
46
  )
47
47
  })
48
48
 
49
- export const run = <R, E>(
50
- definitions: D.InteractionDefinition<R, E>[],
51
- headers: Headers,
52
- body: string,
53
- ) =>
54
- Do(($) => {
55
- const interaction = $(fromHeadersAndBody(headers, body))
56
- return $(handlers(definitions)[interaction.type](interaction))
57
- })
49
+ export const run = <R, E>(definitions: D.InteractionDefinition<R, E>[]) => {
50
+ const handler = handlers(definitions)
51
+ return (headers: Headers, body: string) =>
52
+ Do(($) => {
53
+ const interaction = $(fromHeadersAndBody(headers, body))
54
+ return $(handler[interaction.type](interaction))
55
+ })
56
+ }