alinea
Version:
Headless git-based CMS
22 lines (21 loc) • 912 B
TypeScript
import type { Change, ChangeFile, ChangesBatch } from '../source/Change.js';
import type { ReadonlyTree } from '../source/Tree.js';
import type { RemoveFileMutation, UploadFileMutation } from './Mutation.js';
export interface AddContent extends ChangeFile {
op: 'addContent';
contents: string;
}
export interface DeleteContent extends ChangeFile {
op: 'deleteContent';
}
export type CommitChange = AddContent | DeleteContent | UploadFileMutation | RemoveFileMutation;
export declare function commitChanges(changes: Array<Change>): Array<CommitChange>;
export declare function sourceChanges(request: CommitRequest): ChangesBatch;
export interface CommitRequest {
description: string;
fromSha: string;
intoSha: string;
checks: Array<[path: string, sha: string]>;
changes: Array<CommitChange>;
}
export declare function checkCommit(tree: ReadonlyTree, request: CommitRequest): void;