From 7aa11b7a8abacf81dec20fff21216df35d333756 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 27 Jul 2025 18:50:33 -0700 Subject: Pulls in pengueno from npm --- u/process/signals.ts | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 u/process/signals.ts (limited to 'u/process/signals.ts') diff --git a/u/process/signals.ts b/u/process/signals.ts deleted file mode 100644 index c4feb7a..0000000 --- a/u/process/signals.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - Either, - IEither, - IMetric, - ITraceable, - LogMetricTrace, - LogMetricTraceSupplier, - Mapper, - Metric, - Optional, - ResultMetric, - SideEffect, - TraceUtil, -} from '@emprespresso/pengueno'; - -export const SigIntMetric = Metric.fromName('SigInt').asResult(); -export const SigTermMetric = Metric.fromName('SigTerm').asResult(); - -export interface Closeable { - readonly close: SideEffect>; -} - -export class Signals { - public static async awaitClose( - t: ITraceable, LogMetricTraceSupplier>, - ): Promise> { - const success: IEither = Either.right(undefined); - return new Promise>((res) => { - const metricizedInterruptHandler = (metric: ResultMetric) => (err: Error | undefined) => - t - .flatMap(TraceUtil.withMetricTrace(metric)) - .peek((_t) => _t.trace.trace('closing')) - .move( - Optional.from(err) - .map((e) => Either.left(e)) - .orSome(() => success) - .get(), - ) - .flatMap(TraceUtil.traceResultingEither(metric)) - .map((e) => res(e.get())) - .peek((_t) => _t.trace.trace('finished')) - .get(); - const sigintCloser = metricizedInterruptHandler(SigIntMetric); - const sigtermCloser = metricizedInterruptHandler(SigTermMetric); - process.on('SIGINT', () => t.flatMap(TraceUtil.withTrace('SIGINT')).get().close(sigintCloser)); - process.on('SIGTERM', () => t.flatMap(TraceUtil.withTrace('SIGTERM')).get().close(sigtermCloser)); - }); - } -} -- cgit v1.2.3-70-g09d2