Saltar al contenido principal

DeltaService

DeltaService proporciona métodos para generar objetos RDIndex de directorios o streams, compara dos índices, y genera un DeltaPlan describiendo qué chunks necesitan subirse, descargarse, o eliminarse.

Internamente, usa HasherService para hashear archivos y streams.


Métodos

MétodoDevuelveDescripción
createIndexFromDirectory(rootPath, chunkSize, concurrency?, ignorePatterns?)Promise<RDIndex>Escanea un directorio, divide los archivos en chunks, los hashea, y devuelve un RDIndex.
createFileEntryFromStream(stream, path)Promise<FileEntry>Crea un FileEntry desde un stream de chunk asíncrono.
compare(source, target)DeltaPlanCompara dos rd-index y devuelve un plan delta describiendo los chunks faltantes y obsoletos.
mergePlans(base, updates)DeltaPlanFusiona dos DeltaPlan.
compareForUpload(localIndex, remoteIndex)Promise<DeltaPlan>Prepara un plan delta para cambios de subida.
compareForDownload(localIndex, remoteIndex)Promise<DeltaPlan>Prepara un plan delta para cambios de descarga.

Detalles de métodos

createIndexFromDirectory(rootPath, chunkSize, concurrency?, ignorePatterns?)

Genera un RDIndex de un directorio. Divide los archivos en chunks y los hashea.

Parámetros:

NombreTipoDescripción
rootPathstringDirectorio a escanear recursivamente.
chunkSizenumberTamaño del chunk en bytes (se recomienda 1MB).
concurrencynumber?Número máximo opcional de operaciones paralelas.
ignorePatternsstring[]?Patrones glob opcionales a ignorar.

Devuelve: Promise<RDIndex>

Nota: Usa HasherService.hashStream internamente.


createFileEntryFromStream(stream, path)

Crea un FileEntry a partir de un stream de chunks válido (de un archivo).

Parámetros:

ParámetroTipoDescripción
streamAsyncChunkStreamStream de chunks asíncrono de entrada.
pathstringRuta relativa del archivo.
export interface AsyncChunkStream extends AsyncIterable<Uint8Array> {
nextChunk(): Promise<Uint8Array | null>;
reset?(): Promise<void>;
close?(): Promise<void>;
}

Devuelve: Promise<FileEntry>

Nota: Hashea los chunks usando HasherService para generar un FileEntry compatible.


compare(source, target)

Compara dos rd-index para generar un DeltaPlan.

Parámetros:

ParámetroTipoDescripción
sourceRDIndexÍndice fuente.
targetRDIndex | nullÍndice objetivo (puede ser null).

Devuelve: DeltaPlan


mergePlans(base, updates)

Fusiona dos planes en uno.

Parámetros:

ParámetroTipoDescripción
baseDeltaPlanPlan delta base a fusionar.
updatesDeltaPlanPlan delta de actualizaciones a fusionar.

Devuelve: DeltaPlan


compareForUpload(localIndex, remoteIndex)

Wrapper para generar un delta plan listo para subir archivos.

Parámetros:

ParámetroTipoDescripción
localIndexRDIndexrd-index local.
remoteIndexRDIndex | nullrd-index remoto.

Devuelve: Promise<DeltaPlan>


compareForDownload(localIndex, remoteIndex)

Wrapper para generar un delta plan listo para descargar archivos.

Parámetros:

ParámetroTipoDescripción
localIndexRDIndex | nullrd-index local.
remoteIndexRDIndexrd-index remoto.

Devuelve: Promise<DeltaPlan>


Relacionado