Hyperlinkv0.8.0-beta.28

QueueHyperlink

QueueHyperlink.queueEventconstsrc/QueueHyperlink.ts:399
<
  Sch extends Schema.Top,
  Success extends Schema.Top = Schema.Void,
  Error extends Schema.Top = Schema.Never
>(
  itemSchema: Sch,
  wire?: { readonly success?: Success; readonly error?: Error }
): Schema.Union<
  readonly [
    Schema.TaggedStruct<"Start", { readonly key: Schema.String }>,
    Schema.TaggedStruct<
      "Enqueued",
      {
        readonly entries: Schema.$Array<
          Schema.Struct<{
            readonly item: Sch
            readonly entryId: Schema.String
            readonly key: Schema.optional<Schema.String>
            readonly priority: Schema.Literals<
              readonly ["high", "normal", "low"]
            >
            readonly attempts: Schema.Number
            readonly timestamps: Schema.Struct<{
              readonly enqueuedAt: Schema.DateTimeUtc
              readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
            }>
            readonly batchId: Schema.optional<Schema.String>
            readonly releaseId: Schema.optional<Schema.String>
            readonly sourceHyperlinkId: Schema.optional<Schema.String>
            readonly attributes: Schema.optional<
              Schema.$Record<Schema.String, Schema.Unknown>
            >
          }>
        >
        readonly priority: Schema.Literals<
          readonly ["high", "normal", "low"]
        >
        readonly batchId: Schema.optionalKey<Schema.String>
      }
    >,
    Schema.TaggedStruct<
      "Started",
      {
        readonly entry: Schema.Struct<{
          readonly item: Sch
          readonly entryId: Schema.String
          readonly key: Schema.optional<Schema.String>
          readonly priority: Schema.Literals<
            readonly ["high", "normal", "low"]
          >
          readonly attempts: Schema.Number
          readonly timestamps: Schema.Struct<{
            readonly enqueuedAt: Schema.DateTimeUtc
            readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
          }>
          readonly batchId: Schema.optional<Schema.String>
          readonly releaseId: Schema.optional<Schema.String>
          readonly sourceHyperlinkId: Schema.optional<Schema.String>
          readonly attributes: Schema.optional<
            Schema.$Record<Schema.String, Schema.Unknown>
          >
        }>
      }
    >,
    Schema.TaggedStruct<
      "Completed",
      {
        readonly entry: Schema.Struct<{
          readonly item: Sch
          readonly entryId: Schema.String
          readonly key: Schema.optional<Schema.String>
          readonly priority: Schema.Literals<
            readonly ["high", "normal", "low"]
          >
          readonly attempts: Schema.Number
          readonly timestamps: Schema.Struct<{
            readonly enqueuedAt: Schema.DateTimeUtc
            readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
          }>
          readonly batchId: Schema.optional<Schema.String>
          readonly releaseId: Schema.optional<Schema.String>
          readonly sourceHyperlinkId: Schema.optional<Schema.String>
          readonly attributes: Schema.optional<
            Schema.$Record<Schema.String, Schema.Unknown>
          >
        }>
        readonly success: Schema.Union<readonly [Success]>
        readonly elapsed: Schema.Duration
      }
    >,
    Schema.TaggedStruct<
      "Failed",
      {
        readonly entry: Schema.Struct<{
          readonly item: Sch
          readonly entryId: Schema.String
          readonly key: Schema.optional<Schema.String>
          readonly priority: Schema.Literals<
            readonly ["high", "normal", "low"]
          >
          readonly attempts: Schema.Number
          readonly timestamps: Schema.Struct<{
            readonly enqueuedAt: Schema.DateTimeUtc
            readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
          }>
          readonly batchId: Schema.optional<Schema.String>
          readonly releaseId: Schema.optional<Schema.String>
          readonly sourceHyperlinkId: Schema.optional<Schema.String>
          readonly attributes: Schema.optional<
            Schema.$Record<Schema.String, Schema.Unknown>
          >
        }>
        readonly cause: Schema.Cause<Error, Schema.Unknown>
        readonly elapsed: Schema.Duration
      }
    >,
    Schema.TaggedStruct<
      "RetryScheduled",
      {
        readonly entry: Schema.Struct<{
          readonly item: Sch
          readonly entryId: Schema.String
          readonly key: Schema.optional<Schema.String>
          readonly priority: Schema.Literals<
            readonly ["high", "normal", "low"]
          >
          readonly attempts: Schema.Number
          readonly timestamps: Schema.Struct<{
            readonly enqueuedAt: Schema.DateTimeUtc
            readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
          }>
          readonly batchId: Schema.optional<Schema.String>
          readonly releaseId: Schema.optional<Schema.String>
          readonly sourceHyperlinkId: Schema.optional<Schema.String>
          readonly attributes: Schema.optional<
            Schema.$Record<Schema.String, Schema.Unknown>
          >
        }>
        readonly cause: Schema.Cause<Error, Schema.Unknown>
        readonly nextAttempt: Schema.Number
      }
    >,
    Schema.TaggedStruct<
      "RetryExhausted",
      {
        readonly entry: Schema.Struct<{
          readonly item: Sch
          readonly entryId: Schema.String
          readonly key: Schema.optional<Schema.String>
          readonly priority: Schema.Literals<
            readonly ["high", "normal", "low"]
          >
          readonly attempts: Schema.Number
          readonly timestamps: Schema.Struct<{
            readonly enqueuedAt: Schema.DateTimeUtc
            readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
          }>
          readonly batchId: Schema.optional<Schema.String>
          readonly releaseId: Schema.optional<Schema.String>
          readonly sourceHyperlinkId: Schema.optional<Schema.String>
          readonly attributes: Schema.optional<
            Schema.$Record<Schema.String, Schema.Unknown>
          >
        }>
        readonly cause: Schema.Cause<Error, Schema.Unknown>
      }
    >,
    Schema.TaggedStruct<
      "Drained",
      { readonly key: Schema.String; readonly completed: Schema.Number }
    >,
    Schema.TaggedStruct<
      "Cleared",
      { readonly key: Schema.String; readonly count: Schema.Number }
    >,
    Schema.TaggedStruct<
      "ShutdownRequested",
      {
        readonly key: Schema.String
        readonly mode: Schema.Literals<readonly ["drain", "finishActive"]>
        readonly pending: Schema.Number
      }
    >,
    Schema.TaggedStruct<
      "ShutdownComplete",
      { readonly key: Schema.String; readonly completed: Schema.Number }
    >,
    Schema.TaggedStruct<
      "Released",
      {
        readonly key: Schema.String
        readonly releaseId: Schema.String
        readonly entries: Schema.$Array<
          Schema.Struct<{
            readonly item: Sch
            readonly entryId: Schema.String
            readonly key: Schema.optional<Schema.String>
            readonly priority: Schema.Literals<
              readonly ["high", "normal", "low"]
            >
            readonly attempts: Schema.Number
            readonly timestamps: Schema.Struct<{
              readonly enqueuedAt: Schema.DateTimeUtc
              readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
            }>
            readonly batchId: Schema.optional<Schema.String>
            readonly releaseId: Schema.optional<Schema.String>
            readonly sourceHyperlinkId: Schema.optional<Schema.String>
            readonly attributes: Schema.optional<
              Schema.$Record<Schema.String, Schema.Unknown>
            >
          }>
        >
      }
    >,
    Schema.TaggedStruct<
      "DeadLettered",
      {
        readonly key: Schema.String
        readonly entries: Schema.$Array<
          Schema.Struct<{
            readonly item: Sch
            readonly entryId: Schema.String
            readonly key: Schema.optional<Schema.String>
            readonly priority: Schema.Literals<
              readonly ["high", "normal", "low"]
            >
            readonly attempts: Schema.Number
            readonly timestamps: Schema.Struct<{
              readonly enqueuedAt: Schema.DateTimeUtc
              readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
            }>
            readonly batchId: Schema.optional<Schema.String>
            readonly releaseId: Schema.optional<Schema.String>
            readonly sourceHyperlinkId: Schema.optional<Schema.String>
            readonly attributes: Schema.optional<
              Schema.$Record<Schema.String, Schema.Unknown>
            >
          }>
        >
        readonly reason: Schema.String
      }
    >,
    Schema.TaggedStruct<
      "Dropped",
      {
        readonly key: Schema.String
        readonly entries: Schema.$Array<
          Schema.Struct<{
            readonly item: Sch
            readonly entryId: Schema.String
            readonly key: Schema.optional<Schema.String>
            readonly priority: Schema.Literals<
              readonly ["high", "normal", "low"]
            >
            readonly attempts: Schema.Number
            readonly timestamps: Schema.Struct<{
              readonly enqueuedAt: Schema.DateTimeUtc
              readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
              readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
            }>
            readonly batchId: Schema.optional<Schema.String>
            readonly releaseId: Schema.optional<Schema.String>
            readonly sourceHyperlinkId: Schema.optional<Schema.String>
            readonly attributes: Schema.optional<
              Schema.$Record<Schema.String, Schema.Unknown>
            >
          }>
        >
        readonly reason: Schema.String
      }
    >,
    Schema.TaggedStruct<
      "RateLimitExceeded",
      {
        readonly key: Schema.String
        readonly entry: Schema.Struct<{
          readonly item: Sch
          readonly entryId: Schema.String
          readonly key: Schema.optional<Schema.String>
          readonly priority: Schema.Literals<
            readonly ["high", "normal", "low"]
          >
          readonly attempts: Schema.Number
          readonly timestamps: Schema.Struct<{
            readonly enqueuedAt: Schema.DateTimeUtc
            readonly startedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly completedAt: Schema.optionalKey<Schema.DateTimeUtc>
            readonly interruptedAt: Schema.optionalKey<Schema.DateTimeUtc>
          }>
          readonly batchId: Schema.optional<Schema.String>
          readonly releaseId: Schema.optional<Schema.String>
          readonly sourceHyperlinkId: Schema.optional<Schema.String>
          readonly attributes: Schema.optional<
            Schema.$Record<Schema.String, Schema.Unknown>
          >
        }>
        readonly limitKey: Schema.String
        readonly algorithm: Schema.Literals<
          readonly ["fixed-window", "token-bucket"]
        >
        readonly outcome: Schema.Literals<
          readonly ["delayed", "rejected"]
        >
      }
    >
  ]
>

Build the events union schema for a queue item schema Sch with optional success/error wire slots (default Schema.Void / Schema.Never) — the runtime schema behind QueueHyperlink.events, whose decoded type is QueueEventSchema.

wire schemasSchema.VoidSchema.NeverQueueHyperlink.eventsQueueEventSchema
export const queueEvent = <
  Sch extends Schema.Top,
  Success extends Schema.Top = typeof Schema.Void,
  Error extends Schema.Top = typeof Schema.Never,
>(
  itemSchema: Sch,
  wire?: {
    readonly success?: Success;
    readonly error?: Error;
  },
) =>
  buildQueueEvent(
    itemSchema,
    withVoidDefault(wire?.success),
    withNeverDefault(wire?.error),
  );