suspenders-js
Version:
Asynchronous programming library utilizing coroutines, functional reactive programming and structured concurrency.
40 lines (35 loc) • 1.26 kB
text/typescript
/**
* Thrown when attempting to consume a Flow that has already been consumed.
*/
export class FlowConsumedError extends Error {
name = `FlowConsumedError`
message = `This cold flow can only be consumed once. Use .sharedState() or .sharedEvent() to share cold flows.`
}
/**
* Thrown when attempting to remove an observer from a flow was not added first.
*/
export class FlowRemoveObserverError extends Error {
name = `FlowRemoveObserverError`
message = `Tried to remove an observer from a flow that was not added first.`
}
/**
* Thrown when attempting to emit, complete or error on an observer that was not observing.
*/
export class ObserverError extends Error {
name = `ObserverError`
message = `Tried to emit, complete or error on an observer that was not observing.`
}
/**
* Thrown when attempting to emit or complete a completed flow.
*/
export class HasCompletedError extends Error {
name = `HasCompletedError`
message = `Tried to emit, complete or error on a completed observer.`
}
/**
* Thrown when attempting to launch a coroutine in a scope that is finishing.
*/
export class ScopeFinishingError extends Error {
name = `ScopeFinishingError`
message = `Tried to launch new coroutine after scope marked as finishing.`
}