@ceramicnetwork/core
Version:
Typescript implementation of the Ceramic protocol
30 lines • 988 B
JavaScript
import { StreamUtils } from '@ceramicnetwork/common';
import { ObjectStore } from './object-store.js';
function generateKey(object) {
return object.toString();
}
function serialize(value) {
return StreamUtils.serializeState(value);
}
function deserialize(serialized) {
return StreamUtils.deserializeState(serialized);
}
export class StreamStateStore extends ObjectStore {
constructor() {
super(generateKey, serialize, deserialize);
this.useCaseName = undefined;
}
async saveFromStreamStateHolder(streamStateHolder) {
await this.save(streamStateHolder.id, streamStateHolder.state);
}
async listStoredStreamIDs(streamId, limit) {
if (streamId == null) {
return await this.store.findKeys({ limit });
}
else {
const exists = Boolean(await this.load(streamId.baseID));
return exists ? [streamId.toString()] : [];
}
}
}
//# sourceMappingURL=stream-state-store.js.map