in packages-ext/recoil-devtools/src/pages/Page/PageScript.js [72:122]
content: serialize(
customSerialize(info.loadable?.contents, node.key),
props.maxDepth,
props.maxItems,
),
nodeType: info.type,
isSubscriber: true,
deps: Array.from(info.deps).map(n => n.key),
};
}
}
} finally {
release();
}
return {
modifiedValues,
};
}
type MessageEventFromBackground = {
data?: ?{
source: string,
action: RecoilDevToolsActionsType,
snapshotId?: number,
},
};
const __RECOIL_DEVTOOLS_EXTENSION__ = {
connect: (props: DevToolsConnnectProps) => {
debug('CONNECT_PAGE', props);
initConnection(props);
const {devMode, goToSnapshot, initialSnapshot} = props;
const previousSnapshots = new EvictableList<[RecoilSnapshot, () => void]>(
props.persistenceLimit,
([_, release]) => release(),
);
if (devMode && initialSnapshot != null) {
previousSnapshots.add([initialSnapshot, initialSnapshot.retain()]);
}
let loadedSnapshot, releaseLoadedSnapshot;
function setLoadedSnapshot(s) {
releaseLoadedSnapshot?.();
[loadedSnapshot, releaseLoadedSnapshot] = [s, s?.retain()];
}
setLoadedSnapshot(initialSnapshot);
const backgroundMessageListener = (message: MessageEventFromBackground) => {
if (message.data?.source === ExtensionSourceContentScript) {
if (message.data?.action === RecoilDevToolsActions.GO_TO_SNAPSHOT) {