Move error classes from services/ and file-operations/ into a new errors/ directory (authentication-error, server-version-mismatch-error, sync-reset-error, file-not-found-error), plus add file-already-exists-error and http-client-error. Update consts.ts and utils/* (await-all, create-client-id, hash, rate-limit, find-matching-file). Replace data-structures (locks, min-covered, event-listeners, fix-sized-cache) and add debugging utilities (in-memory-file-system, log-to-console, slow-web-socket-factory). Removes utils/create-promise.ts.
17 lines
548 B
TypeScript
17 lines
548 B
TypeScript
import type { DocumentRecord } from "../sync-operations/types";
|
|
import { EMPTY_HASH } from "./hash";
|
|
|
|
// TODO: make this smarter so that offline files can be renamed & edited at the same time
|
|
export async function findMatchingFile(
|
|
contentHash: string,
|
|
candidates: DocumentRecord[]
|
|
): Promise<DocumentRecord | undefined> {
|
|
if (contentHash === (await EMPTY_HASH)) {
|
|
return undefined;
|
|
}
|
|
|
|
return candidates.find(
|
|
(record) =>
|
|
record.remoteHash !== undefined && record.remoteHash === contentHash
|
|
);
|
|
}
|