Skip to content

Commit

Permalink
fix(types): rename actor category types
Browse files Browse the repository at this point in the history
  • Loading branch information
boneskull committed Aug 16, 2024
1 parent 061351b commit 02cd5d2
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 97 deletions.
6 changes: 3 additions & 3 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ export type ActorEventTypeTuple<Actor extends AnyActor> = ReadableArray<

export type AnyActor = xs.AnyActor;

export type AnyListenableActor = xs.Actor<AnyEventReceiverLogic>;
export type AnyEventReceiverActor = xs.Actor<AnyEventReceiverLogic>;

export type AnyOutputtableActor = xs.Actor<AnyTerminalLogic>;
export type AnyTerminalActor = xs.Actor<AnyTerminalLogic>;

export type AnySnapshottableActor = xs.Actor<AnySnapshotEmitterLogic>;
export type AnySnapshotEmitterActor = xs.Actor<AnySnapshotEmitterLogic>;

export type AnyStateMachineActor = xs.Actor<xs.AnyStateMachine>;

Expand Down
30 changes: 15 additions & 15 deletions src/until-done.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,48 +5,48 @@ import {applyDefaults} from './defaults.js';
import {createAbortablePromiseKit} from './promise-kit.js';
import {startTimer} from './timer.js';
import {
type AnyOutputtableActor,
type AnyTerminalActor,
type AuditionOptions,
type InternalAuditionOptions,
} from './types.js';

export type CurryDone =
| (() => CurryDone)
| (<Actor extends AnyOutputtableActor, Output extends xs.OutputFrom<Actor>>(
| (<Actor extends AnyTerminalActor, Output extends xs.OutputFrom<Actor>>(
actor: Actor,
) => CurryDoneP1<Actor, Output>);

export type CurryDoneP1<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
> = Promise<Output>;

export type CurryDoneWith =
| (() => CurryDoneWith)
| (<Actor extends AnyOutputtableActor, Output extends xs.OutputFrom<Actor>>(
| (<Actor extends AnyTerminalActor, Output extends xs.OutputFrom<Actor>>(
actor: Actor,
options: AuditionOptions,
) => CurryDoneWithP2<Actor, Output>)
| (<Actor extends AnyOutputtableActor, Output extends xs.OutputFrom<Actor>>(
| (<Actor extends AnyTerminalActor, Output extends xs.OutputFrom<Actor>>(
actor: Actor,
) => CurryDoneWithP1<Actor, Output>);

export type CurryDoneWithP1<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
> =
| (() => CurryDoneWithP1<Actor, Output>)
| ((options: AuditionOptions) => CurryDoneWithP2<Actor, Output>);

export type CurryDoneWithP2<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
> = Promise<Output>;

export function runUntilDone(): CurryDone;

export function runUntilDone<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(actor: Actor): CurryDoneP1<Actor, Output>;

Expand All @@ -60,32 +60,32 @@ export function runUntilDone<
* @param actorRef An existing {@link Actor}
* @returns `Promise` fulfilling with the actor output
*/
export function runUntilDone<Actor extends AnyOutputtableActor>(actor?: Actor) {
export function runUntilDone<Actor extends AnyTerminalActor>(actor?: Actor) {
return runUntilDone_(actor);
}

export function runUntilDoneWith(): CurryDoneWith;

export function runUntilDoneWith<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(actor: Actor): CurryDoneWithP1<Actor, Output>;

export function runUntilDoneWith<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(actor: Actor, options: AuditionOptions): CurryDoneWithP2<Actor, Output>;

export function runUntilDoneWith<
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(actor?: Actor, options?: AuditionOptions) {
return runUntilDoneWith_<Actor, Output>(actor, options);
}

const createDoneFn = () => {
const curryDone = <
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(
actor?: Actor,
Expand All @@ -102,7 +102,7 @@ const createDoneFn = () => {

const createDoneWithFn = () => {
const curryDoneWith = <
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(
actor?: Actor,
Expand All @@ -129,7 +129,7 @@ const createDoneWithFn = () => {
};

const untilDone = <
Actor extends AnyOutputtableActor,
Actor extends AnyTerminalActor,
Output extends xs.OutputFrom<Actor>,
>(
actor: Actor,
Expand Down
56 changes: 28 additions & 28 deletions src/until-event-received.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {startTimer} from './timer.js';
import {
type ActorEventTuple,
type ActorEventTypeTuple,
type AnyListenableActor,
type AnyEventReceiverActor,
type AuditionEventOptions,
type AuditionOptions,
type EventFromEventType,
Expand All @@ -17,60 +17,60 @@ import {head} from './util.js';

export type CurryEventReceived = (() => CurryEventReceived) &
(<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
eventTypes: EventReceivedTypes,
) => CurryEventReceivedP2<Actor, EventReceivedTypes>) &
(<Actor extends AnyListenableActor>(
(<Actor extends AnyEventReceiverActor>(
actor: Actor,
) => CurryEventReceivedP1<Actor>);

export type CurryEventReceivedP1<Actor extends AnyListenableActor> =
export type CurryEventReceivedP1<Actor extends AnyEventReceiverActor> =
(() => CurryEventReceivedP1<Actor>) &
(<const EventReceivedTypes extends ActorEventTypeTuple<Actor>>(
eventTypes: EventReceivedTypes,
) => CurryEventReceivedP2<Actor, EventReceivedTypes>);

export type CurryEventReceivedP2<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
EventReceivedTypes extends ActorEventTypeTuple<Actor>,
> = Promise<ActorEventTuple<Actor, EventReceivedTypes>>;

export type CurryEventReceivedWith = (() => CurryEventReceivedWith) &
(<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
options: AuditionOptions,
eventTypes: EventReceivedTypes,
) => CurryEventReceivedWithP3<Actor, EventReceivedTypes>) &
(<Actor extends AnyListenableActor>(
(<Actor extends AnyEventReceiverActor>(
actor: Actor,
options: AuditionEventOptions,
) => CurryEventReceivedWithP2<Actor>) &
(<Actor extends AnyListenableActor>(
(<Actor extends AnyEventReceiverActor>(
actor: Actor,
) => CurryEventReceivedWithP1<Actor>);

export type CurryEventReceivedWithP1<Actor extends AnyListenableActor> =
export type CurryEventReceivedWithP1<Actor extends AnyEventReceiverActor> =
(() => CurryEventReceivedWithP1<Actor>) &
((options: AuditionEventOptions) => CurryEventReceivedWithP2<Actor>) &
(<const EventReceivedTypes extends ActorEventTypeTuple<Actor>>(
options: AuditionOptions,
eventTypes: EventReceivedTypes,
) => CurryEventReceivedWithP3<Actor, EventReceivedTypes>);

export type CurryEventReceivedWithP2<Actor extends AnyListenableActor> =
export type CurryEventReceivedWithP2<Actor extends AnyEventReceiverActor> =
(() => CurryEventReceivedWithP2<Actor>) &
(<const EventReceivedTypes extends ActorEventTypeTuple<Actor>>(
eventTypes: EventReceivedTypes,
) => CurryEventReceivedWithP3<Actor, EventReceivedTypes>);

export type CurryEventReceivedWithP3<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
EventReceivedTypes extends ActorEventTypeTuple<Actor>,
> = Promise<ActorEventTuple<Actor, EventReceivedTypes>>;

Expand All @@ -86,7 +86,7 @@ export type CurryEventReceivedWithP3<
* occurred in order)
*/
export function runUntilEventReceived<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
Expand All @@ -102,7 +102,7 @@ export function runUntilEventReceived<
* @returns A function which runs an actor until it sends one or more events (in
* order)
*/
export function runUntilEventReceived<Actor extends AnyListenableActor>(
export function runUntilEventReceived<Actor extends AnyEventReceiverActor>(
actor: Actor,
): CurryEventReceivedP1<Actor>;

Expand All @@ -114,25 +114,25 @@ export function runUntilEventReceived<Actor extends AnyListenableActor>(
export function runUntilEventReceived(): CurryEventReceived;

export function runUntilEventReceived<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(actor?: Actor, events?: EventReceivedTypes) {
return runUntilEventReceived_(actor, events);
}

export function runUntilEventReceivedWith(): CurryEventReceivedWith;

export function runUntilEventReceivedWith<Actor extends AnyListenableActor>(
export function runUntilEventReceivedWith<Actor extends AnyEventReceiverActor>(
actor: Actor,
): CurryEventReceivedWithP1<Actor>;

export function runUntilEventReceivedWith<Actor extends AnyListenableActor>(
export function runUntilEventReceivedWith<Actor extends AnyEventReceiverActor>(
actor: Actor,
options: AuditionEventOptions,
): CurryEventReceivedWithP2<Actor>;

export function runUntilEventReceivedWith<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
Expand All @@ -141,28 +141,28 @@ export function runUntilEventReceivedWith<
): CurryEventReceivedWithP3<Actor, EventReceivedTypes>;

export function runUntilEventReceivedWith<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(actor?: Actor, options?: AuditionOptions, events?: EventReceivedTypes) {
return runUntilEventReceivedWith_(actor, options, events);
}

export function waitForEventReceived(): CurryEventReceived;

export function waitForEventReceived<Actor extends AnyListenableActor>(
export function waitForEventReceived<Actor extends AnyEventReceiverActor>(
actor: Actor,
): CurryEventReceivedP1<Actor>;

export function waitForEventReceived<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
eventTypes: EventReceivedTypes,
): CurryEventReceivedP2<Actor, EventReceivedTypes>;

export function waitForEventReceived<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(actor?: Actor, events?: EventReceivedTypes) {
return waitForEventReceived_(actor, events);
Expand All @@ -187,7 +187,7 @@ export function waitForEventReceivedWith(): CurryEventReceivedWith;
* {@link ActorEventTypeTuple event types}, will waits until an XState `Actor`
* receives one or more events (in order).
*/
export function waitForEventReceivedWith<Actor extends AnyListenableActor>(
export function waitForEventReceivedWith<Actor extends AnyEventReceiverActor>(
actor: Actor,
): CurryEventReceivedWithP1<Actor>;

Expand All @@ -202,7 +202,7 @@ export function waitForEventReceivedWith<Actor extends AnyListenableActor>(
* @returns A `Promise` fulfilling with the matching events (assuming they all
* occurred in order)
*/
export function waitForEventReceivedWith<Actor extends AnyListenableActor>(
export function waitForEventReceivedWith<Actor extends AnyEventReceiverActor>(
actor: Actor,
options: AuditionEventOptions,
): CurryEventReceivedWithP2<Actor>;
Expand All @@ -221,7 +221,7 @@ export function waitForEventReceivedWith<Actor extends AnyListenableActor>(
* occurred in order)
*/
export function waitForEventReceivedWith<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
Expand All @@ -230,15 +230,15 @@ export function waitForEventReceivedWith<
): CurryEventReceivedWithP3<Actor, EventReceivedTypes>;

export function waitForEventReceivedWith<
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(actor?: Actor, options?: AuditionOptions, events?: EventReceivedTypes) {
return waitForEventReceivedWith_(actor, options, events);
}

const createEventFn = (stop = false) => {
const curryEvent = <
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor?: Actor,
Expand All @@ -263,7 +263,7 @@ const createEventFn = (stop = false) => {

const createEventReceivedWithFn = (stop = false) => {
const curryEventReceivedWith = <
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor?: Actor,
Expand Down Expand Up @@ -308,7 +308,7 @@ const createEventReceivedWithFn = (stop = false) => {
};

const untilEventReceived = async <
Actor extends AnyListenableActor,
Actor extends AnyEventReceiverActor,
const EventReceivedTypes extends ActorEventTypeTuple<Actor>,
>(
actor: Actor,
Expand Down
Loading

0 comments on commit 02cd5d2

Please sign in to comment.