content: serialize()

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) {