@radcliffetech/symbolos-core
Version:
Core symbolic simulation and execution engine for Symbolos
36 lines (35 loc) • 1.48 kB
JavaScript
import { deleteWorldRun, getLatestCompressedFrameForRun, getWorldFrameFromRedis, indexWorldRun, listFramesForRun, listWorldPipelines, listWorldRuns, storeWorldInstanceToRedis } from "./redis-utils";
export function createRedisWorldStore(redisClient) {
return {
async saveFrame(frame) {
await storeWorldInstanceToRedis({ redisClient, world: frame });
},
async getFrame(pipelineId, runId, tick) {
console.log(`Fetching frame for pipelineId: ${pipelineId}, runId: ${runId}, tick: ${tick}`);
return await getWorldFrameFromRedis({
redisClient,
pipelineId,
runId,
tick,
});
},
async listFrames(pipelineId, runId) {
return await listFramesForRun(redisClient, pipelineId, runId);
},
async getLatestFrame(pipelineId, runId) {
return await getLatestCompressedFrameForRun(redisClient, pipelineId, runId);
},
async deleteRun(pipelineId, runId) {
return await deleteWorldRun(redisClient, pipelineId, runId);
},
async listRuns(pipelineId) {
return await listWorldRuns(redisClient, pipelineId);
},
async listPipelines() {
return await listWorldPipelines(redisClient);
},
async indexRun(pipelineId, runId) {
return await indexWorldRun(redisClient, pipelineId, runId);
},
};
}