proposit-core
    Preparing search index...

    Type Alias TOrderedOperation<TExpr, TVar, TPremise, TArg>

    TOrderedOperation:
        | { data: TExpr; entity: "expression"; type: "delete" }
        | { data: TVar; entity: "variable"; type: "delete" }
        | { data: TPremise; entity: "premise"; type: "delete" }
        | { data: TPremise; entity: "premise"; type: "insert" }
        | { data: TVar; entity: "variable"; type: "insert" }
        | { data: TExpr; entity: "expression"; type: "insert" }
        | { data: TExpr; entity: "expression"; type: "update" }
        | {
            data: Pick<TExpr, "id"> & {
                parentId: null;
                position: typeof POSITION_INITIAL;
            };
            entity: "expression";
            type: "update";
        }
        | { data: TVar; entity: "variable"; type: "update" }
        | { data: TPremise; entity: "premise"; type: "update" }
        | { data: TArg; entity: "argument"; type: "update" }
        | { data: TCoreArgumentRoleState; entity: "roles"; type: "update" }

    A single persistence operation extracted from a changeset, tagged with its operation type (insert, update, or delete) and entity kind.

    Used as the element type for the ordered operation list returned by orderChangeset.

    Type Parameters

    Type Declaration

    • { data: TExpr; entity: "expression"; type: "delete" }
    • { data: TVar; entity: "variable"; type: "delete" }
    • { data: TPremise; entity: "premise"; type: "delete" }
    • { data: TPremise; entity: "premise"; type: "insert" }
    • { data: TVar; entity: "variable"; type: "insert" }
    • { data: TExpr; entity: "expression"; type: "insert" }
    • { data: TExpr; entity: "expression"; type: "update" }
    • {
          data: Pick<TExpr, "id"> & {
              parentId: null;
              position: typeof POSITION_INITIAL;
          };
          entity: "expression";
          type: "update";
      }
      • data: Pick<TExpr, "id"> & { parentId: null; position: typeof POSITION_INITIAL }

        A detach: only these fields change, and every other stored field keeps its value. Write only the fields given.

      • entity: "expression"
      • type: "update"
    • { data: TVar; entity: "variable"; type: "update" }
    • { data: TPremise; entity: "premise"; type: "update" }
    • { data: TArg; entity: "argument"; type: "update" }
    • { data: TCoreArgumentRoleState; entity: "roles"; type: "update" }