alinea
Version:
Headless git-based CMS
32 lines (31 loc) • 1.56 kB
TypeScript
import { Config } from 'alinea/core/Config';
import type { Source } from '../source/Source.js';
import type { ReadonlyTree } from '../source/Tree.js';
import { type CommitChange } from './CommitRequest.js';
import type { EntryIndex } from './EntryIndex.js';
import type { ArchiveMutation, CreateMutation, MoveMutation, Mutation, PublishMutation, RemoveFileMutation, RemoveMutation, UnpublishMutation, UpdateMutation, UploadFileMutation } from './Mutation.js';
type Op<T> = Omit<T, 'op'>;
export declare class EntryTransaction {
#private;
constructor(config: Config, index: EntryIndex, source: Source, from: ReadonlyTree);
get empty(): boolean;
create({ locale, type, data, root, workspace, fromSeed, parentId, id, insertOrder, status, overwrite }: Op<CreateMutation>): this;
update({ id, locale, status, set }: Op<UpdateMutation>): this;
publish({ id, locale, status }: Op<PublishMutation>): this;
unpublish({ id, locale }: Op<UnpublishMutation>): this;
archive({ id, locale }: Op<ArchiveMutation>): this;
move({ id, after, toParent, toRoot }: Op<MoveMutation>): this;
remove({ id, locale, status }: Op<RemoveMutation>): this;
removeFile(mutation: Op<RemoveFileMutation>): this;
uploadFile(mutation: Op<UploadFileMutation>): this;
description(): string;
apply(mutations: Array<Mutation>): void;
toRequest(): Promise<{
fromSha: string;
intoSha: string;
description: string;
checks: [path: string, sha: string][];
changes: CommitChange[];
}>;
}
export {};