@freemework/common
Version:
Common library of the Freemework Project.
26 lines • 1.35 kB
JavaScript
import { FCancellationTokenAggregated } from "../cancellation/f_cancellation_token_aggregated.js";
import { FExecutionContext, FExecutionElement, FExecutionContextBase } from "../execution_context/f_execution_context.js";
export class FCancellationExecutionContext extends FExecutionContextBase {
_cancellationToken;
get cancellationToken() { return this._cancellationToken; }
static of(context) {
const cancellationExecutionContext = FExecutionContext.getExecutionContext(context, FCancellationExecutionContext);
return new FCancellationExecutionElement(cancellationExecutionContext);
}
constructor(prevContext, cancellationToken, isAggregateWithPrev = false) {
super(prevContext);
if (isAggregateWithPrev) {
const prev = FExecutionContext
.findExecutionContext(prevContext, FCancellationExecutionContext);
if (prev !== null) {
this._cancellationToken = new FCancellationTokenAggregated(cancellationToken, prev.cancellationToken);
return;
}
}
this._cancellationToken = cancellationToken;
}
}
export class FCancellationExecutionElement extends FExecutionElement {
get cancellationToken() { return this.owner.cancellationToken; }
}
//# sourceMappingURL=f_cancellation_execution_context.js.map