dfx 0.5.2 → 0.5.3

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.
@@ -16,11 +16,11 @@ export type InteractionResponse = {
16
16
  type: Discord.InteractionCallbackType.APPLICATION_COMMAND_AUTOCOMPLETE_RESULT;
17
17
  data: Discord.InteractionCallbackAutocomplete;
18
18
  };
19
- type EnforceDescription<T> = T extends {
19
+ type DescriptionMissing<A> = A extends {
20
20
  type: Exclude<Discord.ApplicationCommandType, 1>;
21
- } ? T : T extends {
21
+ } ? false : A extends {
22
22
  description: string;
23
- } ? T : "description is missing";
23
+ } ? false : true;
24
24
  export type InteractionDefinition<R, E> = GlobalApplicationCommand<R, E> | GuildApplicationCommand<R, E> | MessageComponent<R, E> | ModalSubmit<R, E> | Autocomplete<R, E>;
25
25
  export declare class GlobalApplicationCommand<R, E> {
26
26
  readonly command: Discord.CreateGlobalApplicationCommandParams;
@@ -28,14 +28,14 @@ export declare class GlobalApplicationCommand<R, E> {
28
28
  readonly _tag = "GlobalApplicationCommand";
29
29
  constructor(command: Discord.CreateGlobalApplicationCommandParams, handle: Effect<R, E, InteractionResponse>);
30
30
  }
31
- export declare const global: <R, E, A extends import("../types.js").CreateGlobalApplicationCommandParams>(command: EnforceDescription<A>, handle: import("../common.js").Effect<R, E, InteractionResponse>) => GlobalApplicationCommand<Exclude<R, import("../types.js").ApplicationCommandDatum | import("../types.js").Interaction>, E>;
31
+ export declare const global: <R, E, A extends import("../types.js").CreateGlobalApplicationCommandParams>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : import("../common.js").Effect<R, E, InteractionResponse>) => GlobalApplicationCommand<Exclude<R, import("../types.js").ApplicationCommandDatum | import("../types.js").Interaction>, E>;
32
32
  export declare class GuildApplicationCommand<R, E> {
33
33
  readonly command: Discord.CreateGuildApplicationCommandParams;
34
34
  readonly handle: Effect<R, E, InteractionResponse>;
35
35
  readonly _tag = "GuildApplicationCommand";
36
36
  constructor(command: Discord.CreateGuildApplicationCommandParams, handle: Effect<R, E, InteractionResponse>);
37
37
  }
38
- export declare const guild: <R, E, A extends import("../types.js").CreateGuildApplicationCommandParams>(command: EnforceDescription<A>, handle: import("../common.js").Effect<R, E, InteractionResponse>) => GuildApplicationCommand<Exclude<R, import("../types.js").ApplicationCommandDatum | import("../types.js").Interaction>, E>;
38
+ export declare const guild: <R, E, A extends import("../types.js").CreateGuildApplicationCommandParams>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : import("../common.js").Effect<R, E, InteractionResponse>) => GuildApplicationCommand<Exclude<R, import("../types.js").ApplicationCommandDatum | import("../types.js").Interaction>, E>;
39
39
  export declare class MessageComponent<R, E> {
40
40
  readonly predicate: (customId: string) => Effect<R, E, boolean>;
41
41
  readonly handle: Effect<R, E, InteractionResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":";AAuCA,MAAM,OAAO,wBAAwB;IAGxB;IACA;IAHF,IAAI,GAAG,0BAA0B,CAAA;IAC1C,YACW,OAAqD,EACrD,MAAyC;QADzC,YAAO,GAAP,OAAO,CAA8C;QACrD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,OAA8B,EAC9B,MAAyC,EACzC,EAAE,CACF,IAAI,wBAAwB,CAG1B,OAAc,EAAE,MAAa,CAAC,CAAA;AAElC,MAAM,OAAO,uBAAuB;IAGvB;IACA;IAHF,IAAI,GAAG,yBAAyB,CAAA;IACzC,YACW,OAAoD,EACpD,MAAyC;QADzC,YAAO,GAAP,OAAO,CAA6C;QACpD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,OAA8B,EAC9B,MAAyC,EACzC,EAAE,CACF,IAAI,uBAAuB,CAGzB,OAAc,EAAE,MAAa,CAAC,CAAA;AAElC,MAAM,OAAO,gBAAgB;IAGhB;IACA;IAHF,IAAI,GAAG,kBAAkB,CAAA;IAClC,YACW,SAAsD,EACtD,MAAyC;QADzC,cAAS,GAAT,SAAS,CAA6C;QACtD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAmD,EACnD,MAA2C,EAC3C,EAAE,CACF,IAAI,gBAAgB,CAGlB,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,WAAW;IAGX;IACA;IAHF,IAAI,GAAG,aAAa,CAAA;IAC7B,YACW,SAAsD,EACtD,MAAyC;QADzC,cAAS,GAAT,SAAS,CAA6C;QACtD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAmD,EACnD,MAA2C,EAC3C,EAAE,CACF,IAAI,WAAW,CAGb,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,YAAY;IAGZ;IAGA;IALF,IAAI,GAAG,cAAc,CAAA;IAC9B,YACW,SAEiB,EACjB,MAAyC;QAHzC,cAAS,GAAT,SAAS,CAEQ;QACjB,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAE4B,EAC5B,MAA2C,EAC3C,EAAE,CACF,IAAI,YAAY,CAQd,IAAW,EAAE,MAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":";AAuCA,MAAM,OAAO,wBAAwB;IAGxB;IACA;IAHF,IAAI,GAAG,0BAA0B,CAAA;IAC1C,YACW,OAAqD,EACrD,MAAyC;QADzC,YAAO,GAAP,OAAO,CAA8C;QACrD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,OAAU,EACV,MAEqC,EACrC,EAAE,CACF,IAAI,wBAAwB,CAG1B,OAAO,EAAE,MAAa,CAAC,CAAA;AAE3B,MAAM,OAAO,uBAAuB;IAGvB;IACA;IAHF,IAAI,GAAG,yBAAyB,CAAA;IACzC,YACW,OAAoD,EACpD,MAAyC;QADzC,YAAO,GAAP,OAAO,CAA6C;QACpD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,OAAU,EACV,MAEqC,EACrC,EAAE,CACF,IAAI,uBAAuB,CAGzB,OAAO,EAAE,MAAa,CAAC,CAAA;AAE3B,MAAM,OAAO,gBAAgB;IAGhB;IACA;IAHF,IAAI,GAAG,kBAAkB,CAAA;IAClC,YACW,SAAsD,EACtD,MAAyC;QADzC,cAAS,GAAT,SAAS,CAA6C;QACtD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAmD,EACnD,MAA2C,EAC3C,EAAE,CACF,IAAI,gBAAgB,CAGlB,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,WAAW;IAGX;IACA;IAHF,IAAI,GAAG,aAAa,CAAA;IAC7B,YACW,SAAsD,EACtD,MAAyC;QADzC,cAAS,GAAT,SAAS,CAA6C;QACtD,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAmD,EACnD,MAA2C,EAC3C,EAAE,CACF,IAAI,WAAW,CAGb,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,YAAY;IAGZ;IAGA;IALF,IAAI,GAAG,cAAc,CAAA;IAC9B,YACW,SAEiB,EACjB,MAAyC;QAHzC,cAAS,GAAT,SAAS,CAEQ;QACjB,WAAM,GAAN,MAAM,CAAmC;IACjD,CAAC;CACL;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAE4B,EAC5B,MAA2C,EAC3C,EAAE,CACF,IAAI,YAAY,CAQd,IAAW,EAAE,MAAa,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -46,5 +46,5 @@
46
46
  "@fp-ts/data": "^0.0.19"
47
47
  }
48
48
  },
49
- "gitHead": "eae688a8f1a9b7bdc8d996adfb56c2dc74e18fb8"
49
+ "gitHead": "f22c997ca2db9f7f6b4949c7208ba1b2739b515e"
50
50
  }
@@ -22,13 +22,13 @@ export type InteractionResponse =
22
22
  data: Discord.InteractionCallbackAutocomplete
23
23
  }
24
24
 
25
- type EnforceDescription<T> = T extends {
25
+ type DescriptionMissing<A> = A extends {
26
26
  type: Exclude<Discord.ApplicationCommandType, 1>
27
27
  }
28
- ? T
29
- : T extends { description: string }
30
- ? T
31
- : "description is missing"
28
+ ? false
29
+ : A extends { description: string }
30
+ ? false
31
+ : true
32
32
 
33
33
  export type InteractionDefinition<R, E> =
34
34
  | GlobalApplicationCommand<R, E>
@@ -50,13 +50,15 @@ export const global = <
50
50
  E,
51
51
  A extends Discord.CreateGlobalApplicationCommandParams,
52
52
  >(
53
- command: EnforceDescription<A>,
54
- handle: Effect<R, E, InteractionResponse>,
53
+ command: A,
54
+ handle: DescriptionMissing<A> extends true
55
+ ? "command description is missing"
56
+ : Effect<R, E, InteractionResponse>,
55
57
  ) =>
56
58
  new GlobalApplicationCommand<
57
59
  Exclude<R, Discord.Interaction | Discord.ApplicationCommandDatum>,
58
60
  E
59
- >(command as any, handle as any)
61
+ >(command, handle as any)
60
62
 
61
63
  export class GuildApplicationCommand<R, E> {
62
64
  readonly _tag = "GuildApplicationCommand"
@@ -71,13 +73,15 @@ export const guild = <
71
73
  E,
72
74
  A extends Discord.CreateGuildApplicationCommandParams,
73
75
  >(
74
- command: EnforceDescription<A>,
75
- handle: Effect<R, E, InteractionResponse>,
76
+ command: A,
77
+ handle: DescriptionMissing<A> extends true
78
+ ? "command description is missing"
79
+ : Effect<R, E, InteractionResponse>,
76
80
  ) =>
77
81
  new GuildApplicationCommand<
78
82
  Exclude<R, Discord.Interaction | Discord.ApplicationCommandDatum>,
79
83
  E
80
- >(command as any, handle as any)
84
+ >(command, handle as any)
81
85
 
82
86
  export class MessageComponent<R, E> {
83
87
  readonly _tag = "MessageComponent"