effx
API reference@effx/ir

migrate

API reference for @effx/ir/migrate

migrate.ts overview


Exports Grouped by Category


utils

ApplicationIRV1

Read-only compatibility boundary, never the shape produced by IR builders or encoders.

Signature

declare const ApplicationIRV1: Schema.Struct<{
  readonly format: Schema.Literal<"effx-ir">
  readonly version: Schema.Literal<1>
  readonly nodes: Schema.$Array<
    Schema.Union<
      readonly [
        Schema.TaggedStruct<
          "Schema",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly ref: Schema.Struct<{
              readonly module: Schema.String
              readonly export: Schema.String
              readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
            }>
          }
        >,
        Schema.TaggedStruct<
          "Model",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly name: Schema.String
            readonly schema: Schema.Struct<{
              readonly module: Schema.String
              readonly export: Schema.String
              readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
            }>
            readonly table: Schema.optionalKey<Schema.String>
            readonly views: Schema.$Array<
              Schema.Struct<{
                readonly name: Schema.String
                readonly schema: Schema.Struct<{
                  readonly module: Schema.String
                  readonly export: Schema.String
                  readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
                }>
              }>
            >
          }
        >,
        Schema.TaggedStruct<
          "Service",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly name: Schema.String
            readonly symbol: Schema.Struct<{
              readonly module: Schema.String
              readonly export: Schema.String
              readonly member: Schema.optionalKey<Schema.String>
            }>
          }
        >,
        Schema.TaggedStruct<
          "Operation",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly name: Schema.String
            readonly kind: Schema.Literals<readonly ["Query", "Command"]>
            readonly input: Schema.Struct<{
              readonly module: Schema.String
              readonly export: Schema.String
              readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
            }>
            readonly success: Schema.Struct<{
              readonly module: Schema.String
              readonly export: Schema.String
              readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
            }>
            readonly errors: Schema.Struct<{
              readonly values: Schema.$Array<
                Schema.Struct<{
                  readonly module: Schema.String
                  readonly export: Schema.String
                  readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
                }>
              >
              readonly inferred: Schema.Boolean
            }>
            readonly requirements: Schema.Struct<{
              readonly values: Schema.$Array<Schema.brand<Schema.String, "effx/StableId">>
              readonly inferred: Schema.Boolean
            }>
            readonly handler: Schema.Struct<{
              readonly module: Schema.String
              readonly export: Schema.String
              readonly member: Schema.optionalKey<Schema.String>
            }>
          }
        >,
        Schema.TaggedStruct<
          "Capability",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly name: Schema.String
            readonly resource: Schema.brand<Schema.String, "effx/StableId">
            readonly focus: Schema.optionalKey<Schema.brand<Schema.String, "effx/StableId">>
          }
        >,
        Schema.TaggedStruct<
          "Focus",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly root: Schema.brand<Schema.String, "effx/StableId">
            readonly path: Schema.$Array<Schema.String>
          }
        >,
        Schema.TaggedStruct<
          "Exposure",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly operation: Schema.brand<Schema.String, "effx/StableId">
            readonly transport: Schema.Union<
              readonly [
                Schema.TaggedStruct<
                  "http",
                  {
                    readonly method: Schema.Literals<readonly ["GET", "POST", "PUT", "PATCH", "DELETE"]>
                    readonly path: Schema.String
                  }
                >,
                Schema.TaggedStruct<"rpc", { readonly name: Schema.String }>,
                Schema.TaggedStruct<"cli", { readonly command: Schema.$Array<Schema.String> }>
              ]
            >
          }
        >,
        Schema.TaggedStruct<
          "Extension",
          {
            readonly id: Schema.brand<Schema.String, "effx/StableId">
            readonly extension: Schema.String
            readonly tag: Schema.String
            readonly data: Schema.Codec<Schema.Json, Schema.Json, never, never>
          }
        >
      ]
    >
  >
  readonly edges: Schema.$Array<
    Schema.Struct<{
      readonly kind: Schema.Literals<
        readonly [
          "InputOf",
          "SuccessOf",
          "ErrorOf",
          "Requires",
          "AuthorizedBy",
          "Focuses",
          "ExposedAs",
          "PersistsAs",
          "ViewOf"
        ]
      >
      readonly from: Schema.brand<Schema.String, "effx/StableId">
      readonly to: Schema.brand<Schema.String, "effx/StableId">
      readonly qualifier: Schema.optionalKey<Schema.String>
    }>
  >
}>

ApplicationIRV1 (type alias)

Signature

type ApplicationIRV1 = typeof ApplicationIRV1.Type

EdgeKindV1

The persisted v1 input vocabulary. Do not add v2 edges to this schema.

Signature

declare const EdgeKindV1: Schema.Literals<
  readonly [
    "InputOf",
    "SuccessOf",
    "ErrorOf",
    "Requires",
    "AuthorizedBy",
    "Focuses",
    "ExposedAs",
    "PersistsAs",
    "ViewOf"
  ]
>

EdgeV1

Signature

declare const EdgeV1: Schema.Struct<{
  readonly kind: Schema.Literals<
    readonly [
      "InputOf",
      "SuccessOf",
      "ErrorOf",
      "Requires",
      "AuthorizedBy",
      "Focuses",
      "ExposedAs",
      "PersistsAs",
      "ViewOf"
    ]
  >
  readonly from: Schema.brand<Schema.String, "effx/StableId">
  readonly to: Schema.brand<Schema.String, "effx/StableId">
  readonly qualifier: Schema.optionalKey<Schema.String>
}>

migrate

Pure version upgrade: no normalization, no dropped or rewritten nodes/edges.

Signature

declare const migrate: (ir: ApplicationIRV1 | ApplicationIR) => ApplicationIR

On this page