in src/stm.ts [221:246]
public findExistingWrite(key: Buffer): RPC.IRangeResponse | null {
for (let i = this.ops.length - 1; i >= 0; i--) {
const op = this.ops[i];
switch (op.op) {
case WriteKind.Write:
if (op.req.key!.equals(key)) {
return keyValueToResponse(key, op.req.value);
}
break;
case WriteKind.DeleteKey:
if (op.key.equals(key)) {
return keyValueToResponse(key);
}
break;
case WriteKind.DeleteRange:
if (op.range.includes(key)) {
return keyValueToResponse(key);
}
break;
default:
throw new ClientRuntimeError(`Unexpected write op ${JSON.stringify(op)}`);
}
}
return null;
}