lookup(selector: Selector): Snapshot { const snapshot = RelayReader.read(this._recordSource, selector); if (__DEV__) { deepFreeze(snapshot); } return snapshot; }
function lookupSelector(source, selector): ?SelectorData { const selectorData = RelayReader.read(source, selector).data; if (__DEV__) { const deepFreeze = require('deepFreeze'); if (selectorData) { deepFreeze(selectorData); } } return selectorData; }
_updateSubscription(subscription: Subscription): void { const {callback, snapshot} = subscription; if (!hasOverlappingIDs(snapshot, this._updatedRecordIDs)) { return; } const {data, seenRecords} = RelayReader.read(this._recordSource, snapshot); const nextData = recycleNodesInto(snapshot.data, data); const nextSnapshot = { ...snapshot, data: nextData, seenRecords, }; if (__DEV__) { deepFreeze(nextSnapshot); } subscription.snapshot = nextSnapshot; if (nextSnapshot.data !== snapshot.data) { callback(nextSnapshot); } }