publishing_event_handler.ts

Composable sinks for the publishing event stream.

A PublishingEventHandler is anything that can receive a PublishingEvent. Handlers compose: multi_handler fans out, masking_handler redacts secrets then forwards. Emission is best-effort and synchronous — an observability sink must never fail or slow a run. The default sink is null_handler (drops everything).

Declarations
#

9 declarations

view source

capture_handler
#

CapturingEventHandler
#

mask_secrets
#

publishing_event_handler.ts view source

(event: { event: "run_started"; wetrun: boolean; total: number; } | { event: "iteration_started"; iteration: number; max: number; } | { event: "iteration_finished"; iteration: number; published_count: number; converged: boolean; } | ... 10 more ... | { ...; }): { ...; } | ... 12 more ... | { ...; }

Returns a copy of the event with secrets redacted from its string-valued fields.

event

type { event: "run_started"; wetrun: boolean; total: number; } | { event: "iteration_started"; iteration: number; max: number; } | { event: "iteration_finished"; iteration: number; published_count: number; converged: boolean; } | ... 10 more ... | { ...; }

returns

{ event: "run_started"; wetrun: boolean; total: number; } | { event: "iteration_started"; iteration: number; max: number; } | { event: "iteration_finished"; iteration: number; published_count: number; converged: boolean; } | ... 10 more ... | { ...; }

masking_handler
#

publishing_event_handler.ts view source

(inner: PublishingEventHandler, mask?: (event: { event: "run_started"; wetrun: boolean; total: number; } | { event: "iteration_started"; iteration: number; max: number; } | ... 11 more ... | { ...; }) => { ...; } | ... 12 more ... | { ...; }): PublishingEventHandler

Wraps a handler, masking secrets in each event's string fields before forwarding.

inner

the handler to forward masked events to

mask

the masking function, defaults to mask_secrets

type (event: { event: "run_started"; wetrun: boolean; total: number; } | { event: "iteration_started"; iteration: number; max: number; } | { event: "iteration_finished"; iteration: number; published_count: number; converged: boolean; } | ... 10 more ... | { ...; }) => { ...; } | ... 12 more ... | { ...; }
default mask_secrets

returns

PublishingEventHandler

multi_handler
#

publishing_event_handler.ts view source

(handlers: PublishingEventHandler[]): PublishingEventHandler

Fans an event out to every handler in order.

handlers

type PublishingEventHandler[]

returns

PublishingEventHandler

null_handler
#

PublishingEventHandler
#

redact_secrets
#

stdout_handler
#

publishing_event_handler.ts view source

(): PublishingEventHandler

Writes each event as one JSON object per line (JSON-lines) to process.stdout. Write failures are swallowed — the stream is observability, not control flow.

returns

PublishingEventHandler

Depends on
#

Imported by
#