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.
Files changed (102) hide show
  1. package/Cache/memory.js +2 -2
  2. package/Cache/memory.js.map +1 -1
  3. package/Cache/memoryTTL.d.ts +1 -1
  4. package/Cache/memoryTTL.d.ts.map +1 -1
  5. package/Cache/memoryTTL.js +4 -4
  6. package/Cache/memoryTTL.js.map +1 -1
  7. package/DiscordGateway/Messaging.js +1 -1
  8. package/DiscordGateway/Messaging.js.map +1 -1
  9. package/DiscordGateway/Shard/invalidSession.js +1 -1
  10. package/DiscordGateway/Shard/invalidSession.js.map +1 -1
  11. package/DiscordGateway/Shard/utils.js +1 -1
  12. package/DiscordGateway/Shard/utils.js.map +1 -1
  13. package/DiscordGateway/Shard.d.ts +2 -2
  14. package/DiscordGateway/Shard.js +3 -3
  15. package/DiscordGateway/Shard.js.map +1 -1
  16. package/DiscordGateway/Sharder.d.ts +1 -1
  17. package/DiscordGateway.d.ts +1 -1
  18. package/DiscordREST.d.ts +3 -3
  19. package/DiscordREST.d.ts.map +1 -1
  20. package/DiscordREST.js +12 -12
  21. package/DiscordREST.js.map +1 -1
  22. package/Helpers/interactions.d.ts +1 -1
  23. package/Helpers/interactions.d.ts.map +1 -1
  24. package/Helpers/interactions.js +2 -2
  25. package/Helpers/interactions.js.map +1 -1
  26. package/Interactions/context.d.ts +2 -5
  27. package/Interactions/context.d.ts.map +1 -1
  28. package/Interactions/context.js +2 -2
  29. package/Interactions/context.js.map +1 -1
  30. package/Interactions/definitions.d.ts +11 -15
  31. package/Interactions/definitions.d.ts.map +1 -1
  32. package/Interactions/definitions.js.map +1 -1
  33. package/Interactions/handlers.d.ts.map +1 -1
  34. package/Interactions/handlers.js +25 -23
  35. package/Interactions/handlers.js.map +1 -1
  36. package/Interactions/index.d.ts +5 -6
  37. package/Interactions/index.d.ts.map +1 -1
  38. package/Interactions/index.js +5 -8
  39. package/Interactions/index.js.map +1 -1
  40. package/Interactions/utils.d.ts +21 -20
  41. package/Interactions/utils.d.ts.map +1 -1
  42. package/Interactions/utils.js +18 -20
  43. package/Interactions/utils.js.map +1 -1
  44. package/Interactions/webhook.js +1 -1
  45. package/Interactions/webhook.js.map +1 -1
  46. package/RateLimit.d.ts.map +1 -1
  47. package/RateLimit.js +1 -1
  48. package/RateLimit.js.map +1 -1
  49. package/mjs/Cache/memory.mjs +2 -2
  50. package/mjs/Cache/memory.mjs.map +1 -1
  51. package/mjs/Cache/memoryTTL.mjs +4 -4
  52. package/mjs/Cache/memoryTTL.mjs.map +1 -1
  53. package/mjs/DiscordGateway/Messaging.mjs +1 -1
  54. package/mjs/DiscordGateway/Messaging.mjs.map +1 -1
  55. package/mjs/DiscordGateway/Shard/invalidSession.mjs +1 -1
  56. package/mjs/DiscordGateway/Shard/invalidSession.mjs.map +1 -1
  57. package/mjs/DiscordGateway/Shard/utils.mjs +1 -1
  58. package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -1
  59. package/mjs/DiscordGateway/Shard.mjs +3 -3
  60. package/mjs/DiscordGateway/Shard.mjs.map +1 -1
  61. package/mjs/DiscordREST.mjs +12 -12
  62. package/mjs/DiscordREST.mjs.map +1 -1
  63. package/mjs/Helpers/interactions.mjs +2 -2
  64. package/mjs/Helpers/interactions.mjs.map +1 -1
  65. package/mjs/Interactions/context.mjs +2 -2
  66. package/mjs/Interactions/context.mjs.map +1 -1
  67. package/mjs/Interactions/definitions.mjs.map +1 -1
  68. package/mjs/Interactions/handlers.mjs +25 -23
  69. package/mjs/Interactions/handlers.mjs.map +1 -1
  70. package/mjs/Interactions/index.mjs +5 -6
  71. package/mjs/Interactions/index.mjs.map +1 -1
  72. package/mjs/Interactions/utils.mjs +18 -20
  73. package/mjs/Interactions/utils.mjs.map +1 -1
  74. package/mjs/Interactions/webhook.mjs +1 -1
  75. package/mjs/Interactions/webhook.mjs.map +1 -1
  76. package/mjs/RateLimit.mjs +1 -1
  77. package/mjs/RateLimit.mjs.map +1 -1
  78. package/mjs/utils/Effect.mjs +1 -1
  79. package/mjs/utils/Effect.mjs.map +1 -1
  80. package/mjs/version.mjs +1 -1
  81. package/package.json +4 -4
  82. package/src/Cache/memory.ts +2 -2
  83. package/src/Cache/memoryTTL.ts +5 -5
  84. package/src/DiscordGateway/Messaging.ts +1 -1
  85. package/src/DiscordGateway/Shard/invalidSession.ts +1 -1
  86. package/src/DiscordGateway/Shard/utils.ts +1 -1
  87. package/src/DiscordGateway/Shard.ts +3 -3
  88. package/src/DiscordREST.ts +15 -15
  89. package/src/Helpers/interactions.ts +2 -2
  90. package/src/Interactions/context.ts +3 -6
  91. package/src/Interactions/definitions.ts +23 -37
  92. package/src/Interactions/handlers.ts +40 -66
  93. package/src/Interactions/index.ts +5 -7
  94. package/src/Interactions/utils.ts +45 -41
  95. package/src/Interactions/webhook.ts +1 -1
  96. package/src/RateLimit.ts +4 -8
  97. package/src/utils/Effect.ts +1 -1
  98. package/src/version.ts +1 -1
  99. package/utils/Effect.js +1 -1
  100. package/utils/Effect.js.map +1 -1
  101. package/version.d.ts +1 -1
  102. 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) => Effect.Effect<boolean, E, R>,
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 = <R1, R2, E1, E2>(
75
- pred: (customId: string) => Effect.Effect<boolean, E1, R1>,
76
- handle: CommandHandler<R2, E2, Discord.InteractionResponse>,
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<R1 | R2, DiscordInteraction | DiscordMessageComponent | Scope>,
80
- E1 | E2
81
- >(pred as any, handle as any)
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) => Effect.Effect<boolean, E, R>,
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 = <R1, R2, E1, E2>(
92
- pred: (customId: string) => Effect.Effect<boolean, E1, R1>,
93
- handle: Effect.Effect<Discord.InteractionResponse, E2, R2>,
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<R1 | R2, DiscordInteraction | DiscordModalSubmit | Scope>,
97
- E1 | E2
98
- >(pred as any, handle as any)
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
- ) => Effect.Effect<boolean, E, R>,
104
+ ) => boolean,
107
105
  readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>,
108
106
  ) {}
109
107
  }
110
108
 
111
- export const autocomplete = <R1, R2, E1, E2>(
109
+ export const autocomplete = <R, E>(
112
110
  pred: (
113
111
  data: Discord.ApplicationCommandDatum,
114
112
  focusedOption: Discord.ApplicationCommandInteractionDataOption,
115
- ) => Effect.Effect<boolean, E1, R1>,
116
- handle: Effect.Effect<Discord.InteractionResponse, E2, R2>,
113
+ ) => boolean,
114
+ handle: Effect.Effect<Discord.InteractionResponse, E, R>,
117
115
  ) =>
118
116
  new Autocomplete<
119
117
  Exclude<
120
- R1 | R2,
118
+ R,
121
119
  | DiscordInteraction
122
120
  | DiscordApplicationCommand
123
121
  | DiscordFocusedOption
124
122
  | Scope
125
123
  >,
126
- E1 | E2
127
- >(pred as any, handle as any)
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
- return Option.match(Option.fromNullable(Commands[data.name]), {
52
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
53
- onSome: command =>
54
- Effect.provideService(
55
- command.handle(i),
56
- Ctx.ApplicationCommand,
57
- data,
58
- ) as Handler<Exclude<R, Scope>, E, B>,
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
- return Effect.findFirst(ModalSubmit, _ =>
66
- _.predicate(data.custom_id),
67
- ).pipe(
68
- Effect.flatMap(
69
- Option.match({
70
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
71
- onSome: match =>
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
- return Effect.findFirst(MessageComponent, _ =>
86
- _.predicate(data.custom_id),
87
- ).pipe(
88
- Effect.flatMap(
89
- Option.match({
90
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
91
- onSome: match =>
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
- return Option.match(IxHelpers.focusedOption(data), {
106
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
107
- onSome: focusedOption =>
108
- Effect.findFirst(Autocomplete, _ =>
109
- _.predicate(data, focusedOption),
110
- ).pipe(
111
- Effect.flatMap(
112
- Option.match({
113
- onNone: () => Effect.fail(new DefinitionNotFound(i)),
114
- onSome: match =>
115
- Effect.provideService(
116
- match.handle(i),
117
- Ctx.ApplicationCommand,
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
- Effect.succeed(customId.startsWith(query))
19
+ customId.startsWith(query)
22
20
 
23
21
  export const idRegex = (query: RegExp) => (customId: string) =>
24
- Effect.succeed(query.test(customId))
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
- Effect.succeed(data.name === command && focusedOption.name === optionName)
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
- Effect.succeed(focusedOption.name === optionName)
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
- Chunk.map(definitions, ([definition, transform]) => ({
42
+ Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
42
43
  ...definition,
43
- handle: (i: Discord.Interaction) =>
44
- Effect.scoped(
45
- Effect.isEffect(definition.handle)
46
- ? transform(
47
- Effect.flatMap(definition.handle, _ => handleResponse(i, _)),
48
- )
49
- : transform(
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: Chunk.Chunk<DefinitionFlattened<R, E, TE, A>>,
70
+ definitions: ReadonlyArray<DefinitionFlattened<R, E, TE, A>>,
59
71
  ) => {
60
- const grouped = Chunk.reduce(
72
+ const grouped = Array.reduce(
61
73
  definitions,
62
74
  {
63
- Autocomplete: Chunk.empty(),
64
- GlobalApplicationCommand: Chunk.empty(),
65
- GuildApplicationCommand: Chunk.empty(),
66
- MessageComponent: Chunk.empty(),
67
- ModalSubmit: Chunk.empty(),
75
+ Autocomplete: [],
76
+ GlobalApplicationCommand: [],
77
+ GuildApplicationCommand: [],
78
+ MessageComponent: [],
79
+ ModalSubmit: [],
80
+ Commands: {},
68
81
  } as {
69
- [K in D.InteractionDefinition<R, E>["_tag"]]: Chunk.Chunk<
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
  }
@@ -52,7 +52,7 @@ const checkSignature = (
52
52
  ),
53
53
  Effect.filterOrFail(identity, () => new BadWebhookSignature()),
54
54
  Effect.catchAllCause(() => Effect.fail(new BadWebhookSignature())),
55
- Effect.asUnit,
55
+ Effect.asVoid,
56
56
  )
57
57
 
58
58
  export interface MakeConfigOpts {
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.unit : Effect.sleep(_),
71
+ Duration.toMillis(_) === 0 ? Effect.void : Effect.sleep(_),
76
72
  ),
77
- Effect.asUnit,
73
+ Effect.asVoid,
78
74
  )
79
75
  }
80
76
 
@@ -45,7 +45,7 @@ export const foreverSwitch = <R, E, A, R1, E1, X>(
45
45
  const run = pipe(
46
46
  self,
47
47
  Effect.tap(() =>
48
- fiber ? fiber.interruptAsFork(fiberId) : Effect.unit,
48
+ fiber ? fiber.interruptAsFork(fiberId) : Effect.void,
49
49
  ),
50
50
  Effect.flatMap(_ =>
51
51
  pipe(
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "0.91.3";
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.unit), Effect.flatMap(_ => (0, _Function.pipe)(f(_), Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)), Effect.fork)), Effect.tap(fiber_ => Effect.sync(() => {
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)], {
@@ -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","unit","tapErrorCause","fiber_","sync"],"sources":["../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
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.91.3";
1
+ export declare const LIB_VERSION = "0.93.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.LIB_VERSION = void 0;
7
- const LIB_VERSION = exports.LIB_VERSION = "0.91.3";
7
+ const LIB_VERSION = exports.LIB_VERSION = "0.93.0";
8
8
  //# sourceMappingURL=version.js.map