@dstanesc/o-o-o-o-o-o-o
Version:
O-O-O-O-O-O-O is a collection of content addressed persistent data structures
66 lines • 2.05 kB
TypeScript
import { BlockStore } from './block-store';
import { LinkCodec, ValueCodec } from './codecs';
import { Block, Link, RootIndex, Version } from './types';
interface VersionStoreDiff {
last: Version | undefined;
common: Version[];
missing: Version[];
}
interface VersionStore {
id: () => string;
versionStoreRoot: () => Link;
currentRoot: () => Link;
rootSet: ({ root, index, parent, mergeParent, }: {
root: Link;
index?: RootIndex;
parent?: Link;
mergeParent?: Link;
}) => Promise<Link>;
versionSet: ({ version, index, }: {
version: Version;
index?: RootIndex;
}) => Promise<Link | undefined>;
rootGet: () => Promise<{
root: Link;
index: RootIndex;
} | undefined>;
versionGet: () => Promise<{
version: Version;
index: RootIndex;
} | undefined>;
checkout: (root: Link) => void;
log: () => Version[];
blocksExtract: () => Promise<{
root: any;
index: {
indexStruct: {
startOffsets: Map<number, any>;
indexSize: number;
byteArraySize: number;
};
indexBuffer: Uint8Array;
};
blocks: {
cid: any;
bytes: Uint8Array;
}[];
}>;
diff: (other: VersionStore) => VersionStoreDiff;
packMissingBlocks: (other: VersionStore, otherBlockStore: BlockStore) => Promise<Block>;
mergeVersions: (other: VersionStore) => Promise<{
root: Link;
index: RootIndex;
blocks: Block[];
}>;
}
declare const versionStoreFactory: ({ readOnly, storeRoot, versionRoot, chunk, linkCodec, valueCodec, blockStore, }: {
readOnly?: boolean;
storeRoot?: Link;
versionRoot?: Link;
chunk: (buffer: Uint8Array) => Uint32Array;
linkCodec: LinkCodec;
valueCodec: ValueCodec;
blockStore: BlockStore;
}) => Promise<VersionStore>;
export { versionStoreFactory, VersionStore, VersionStoreDiff };
//# sourceMappingURL=version-store.d.ts.map