synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
26 lines (24 loc) • 1.43 kB
JavaScript
// Server-safe дегидрация модуля: снимает сериализуемый снапшот состояния (уровень 4) для пропа
// dehydratedState. В отличие от замыкания dehydrate из createSynapseCtx — без React-зависимостей,
// импортируется в серверный (RSC / 'server only') модуль.
const dehydrateModule = async (externalSynapseModule, options)=>{
const { state } = options ?? {};
// Форк: изоляция под запрос (новый независимый handle из той же фабрики).
const synapseModule = externalSynapseModule.fork();
// Собираем стор без эффектов, мержим серверные данные, снимаем снапшот и уничтожаем форк.
const synapse = await synapseModule.ready({
withEffects: false
});
// Мердж initialState форка + серверные данные
if (state) await synapse.storage.hydrate({
...synapse.storage.getStateSync(),
...state
});
// Достаем смерженный объект из хранилища
const snapshot = synapse.storage.getStateSync();
// Уничтожаем synapseModule
await synapseModule.destroy();
return snapshot;
};
export { dehydrateModule };
//# sourceMappingURL=dehydrateModule.js.map