Hyperlinkv0.8.0-beta.28

Process

Process.scheduleHyperlinkSpecconstsrc/Process.ts:1751
{
  entries: Hyperlink.Marked<
    Hyperlink.Method<
      undefined,
      Schema.$Array<
        Schema.Struct<{
          readonly id: Schema.optionalKey<Schema.String>
          readonly startAt: Schema.DateTimeUtc
          readonly stopAt: Schema.optionalKey<Schema.DateTimeUtc>
        }>
      >,
      Schema.Never,
      true,
      Hyperlink.MethodAnnotations & { description: string },
      Hyperlink.Derive
    >,
    { readonly _tag: "ref" }
  >
  get: Hyperlink.Method<
    { readonly id: Schema.String },
    Schema.Option<
      Schema.Struct<{
        readonly id: Schema.optionalKey<Schema.String>
        readonly startAt: Schema.DateTimeUtc
        readonly stopAt: Schema.optionalKey<Schema.DateTimeUtc>
      }>
    >,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & { description: string },
    Hyperlink.Derive
  >
  has: Hyperlink.Method<
    { readonly id: Schema.String },
    Schema.Boolean,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & { description: string },
    Hyperlink.Derive
  >
  set: Hyperlink.Method<
    Schema.$Array<
      Schema.Struct<{
        readonly id: Schema.optionalKey<Schema.String>
        readonly startAt: Schema.DateTimeUtc
        readonly stopAt: Schema.optionalKey<Schema.DateTimeUtc>
      }>
    >,
    Schema.Void,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & { description: string },
    Hyperlink.Derive
  >
  add: Hyperlink.Method<
    Schema.Struct<{
      readonly id: Schema.optionalKey<Schema.String>
      readonly startAt: Schema.DateTimeUtc
      readonly stopAt: Schema.optionalKey<Schema.DateTimeUtc>
    }>,
    Schema.Void,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & { description: string },
    Hyperlink.Derive
  >
  upsert: Hyperlink.Method<
    Schema.Struct<{
      readonly id: Schema.optionalKey<Schema.String>
      readonly startAt: Schema.DateTimeUtc
      readonly stopAt: Schema.optionalKey<Schema.DateTimeUtc>
    }>,
    Schema.Void,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & { description: string },
    Hyperlink.Derive
  >
  remove: Hyperlink.Method<
    { readonly id: Schema.String },
    Schema.Boolean,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & {
      description: string
      destructive: true
    },
    Hyperlink.Derive
  >
  removeMany: Hyperlink.Method<
    Schema.$Array<Schema.String>,
    Schema.Number,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & {
      description: string
      destructive: true
    },
    Hyperlink.Derive
  >
  clear: Hyperlink.Method<
    undefined,
    Schema.Void,
    Schema.Never,
    false,
    Hyperlink.MethodAnnotations & {
      description: string
      destructive: true
    },
    Hyperlink.Derive
  >
}

The full CRUD contract of a standalone Schedule resource — the reusable window manager one or more processes can be gated by. Mirrors the engine's ProcessScheduleService.

scheduleScheduleProcessScheduleService
Source src/Process.ts:175132 lines
export const scheduleHyperlinkSpec = {
  entries: Hyperlink.ref(Schema.Array(processScheduleEntry)).annotate({
    description: "All schedule entries (run windows), reactive.",
  }),
  get: Hyperlink.effectFn({ id: Schema.String }, Schema.Option(processScheduleEntry)).annotate({
    description: "Look up a single entry by id (absent if none matches).",
  }),
  has: Hyperlink.effectFn({ id: Schema.String }, Schema.Boolean).annotate({
    description: "Whether an entry with the given id exists.",
  }),
  set: Hyperlink.effectFn(Schema.Array(processScheduleEntry)).annotate({
    description: "Replace all schedule entries.",
  }),
  add: Hyperlink.effectFn(processScheduleEntry).annotate({
    description: "Append one schedule entry.",
  }),
  upsert: Hyperlink.effectFn(processScheduleEntry).annotate({
    description: "Insert or replace an entry, keyed by its id.",
  }),
  remove: Hyperlink.effectFn({ id: Schema.String }, Schema.Boolean).annotate({
    description: "Remove the entry with the given id; returns whether one was removed.",
    destructive: true,
  }),
  removeMany: Hyperlink.effectFn(Schema.Array(Schema.String), Schema.Number).annotate({
    description: "Remove every entry whose id is listed; returns the count removed.",
    destructive: true,
  }),
  clear: Hyperlink.effect(Schema.Void).annotate({
    description: "Remove all schedule entries.",
    destructive: true,
  }),
};
Referenced by 2 symbols