relay-runtime 2.0.0-rc.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/lib/{generateRelayClientID.js → ClientID.js} +10 -3
- package/lib/ConvertToExecuteFunction.js +6 -4
- package/lib/DataChecker.js +88 -69
- package/lib/NormalizationNode.js +1 -1
- package/lib/ReaderNode.js +1 -1
- package/lib/RelayCombinedEnvironmentTypes.js +1 -1
- package/lib/RelayConcreteNode.js +5 -2
- package/lib/RelayConcreteVariables.js +15 -9
- package/lib/RelayConnectionHandler.js +27 -20
- package/lib/RelayConnectionInterface.js +4 -2
- package/lib/RelayCore.js +48 -15
- package/lib/RelayDeclarativeMutationConfig.js +16 -15
- package/lib/RelayDefaultHandleKey.js +1 -1
- package/lib/RelayDefaultHandlerProvider.js +7 -6
- package/lib/RelayDefaultMissingFieldHandlers.js +26 -0
- package/lib/RelayError.js +7 -2
- package/lib/RelayFeatureFlags.js +16 -0
- package/lib/RelayInMemoryRecordSource.js +8 -2
- package/lib/RelayModernEnvironment.js +159 -237
- package/lib/RelayModernFragmentOwner.js +72 -0
- package/lib/RelayModernFragmentSpecResolver.js +66 -15
- package/lib/RelayModernGraphQLTag.js +9 -5
- package/lib/RelayModernOperationDescriptor.js +9 -6
- package/lib/RelayModernQueryExecutor.js +791 -0
- package/lib/RelayModernRecord.js +44 -24
- package/lib/RelayModernSelector.js +208 -82
- package/lib/RelayModernStore.js +66 -34
- package/lib/RelayNetwork.js +14 -7
- package/lib/RelayNetworkLogger.js +6 -2
- package/lib/RelayNetworkLoggerTransaction.js +8 -4
- package/lib/RelayNetworkTypes.js +1 -1
- package/lib/RelayObservable.js +72 -41
- package/lib/RelayOperationTracker.js +265 -0
- package/lib/RelayProfiler.js +10 -6
- package/lib/RelayPublishQueue.js +66 -47
- package/lib/RelayQueryResponseCache.js +11 -5
- package/lib/RelayReader.js +135 -126
- package/lib/RelayRecordProxy.js +24 -20
- package/lib/RelayRecordSourceMutator.js +88 -25
- package/lib/RelayRecordSourceProxy.js +38 -19
- package/lib/RelayRecordSourceSelectorProxy.js +10 -7
- package/lib/RelayRecordState.js +1 -1
- package/lib/RelayReferenceMarker.js +66 -55
- package/lib/RelayReplaySubject.js +134 -0
- package/lib/RelayResponseNormalizer.js +245 -134
- package/lib/RelayRuntimeTypes.js +1 -1
- package/lib/RelayStoreUtils.js +55 -16
- package/lib/RelayViewerHandler.js +8 -50
- package/lib/StoreInspector.js +171 -0
- package/lib/applyRelayModernOptimisticMutation.js +8 -2
- package/lib/cloneRelayHandleSourceField.js +17 -7
- package/lib/commitLocalUpdate.js +1 -1
- package/lib/commitRelayModernMutation.js +33 -13
- package/lib/createRelayContext.js +27 -0
- package/lib/createRelayNetworkLogger.js +8 -2
- package/lib/deepFreeze.js +1 -1
- package/lib/defaultGetDataID.js +24 -0
- package/lib/fetchQueryInternal.js +232 -0
- package/lib/fetchRelayModernQuery.js +5 -3
- package/lib/getFragmentIdentifier.js +52 -0
- package/lib/getFragmentSpecIdentifier.js +26 -0
- package/lib/getRelayHandleKey.js +8 -2
- package/lib/getRequestParametersIdentifier.js +26 -0
- package/lib/hasOverlappingIDs.js +1 -1
- package/lib/index.js +155 -53
- package/lib/isPromise.js +1 -1
- package/lib/isScalarAndEqual.js +1 -1
- package/lib/normalizeRelayPayload.js +19 -10
- package/lib/recycleNodesInto.js +23 -5
- package/lib/requestRelaySubscription.js +9 -3
- package/lib/validateMutation.js +13 -6
- package/package.json +2 -2
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/lib/normalizePayload.js +0 -37
- package/lib/simpleClone.js +0 -27
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var RelayObservable = require("./RelayObservable");
|
|
17
|
+
|
|
18
|
+
var invariant = require("fbjs/lib/invariant");
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* An implementation of a `ReplaySubject` for Relay Observables.
|
|
22
|
+
*
|
|
23
|
+
* Records events provided and synchronously plays them back to new subscribers,
|
|
24
|
+
* as well as forwarding new asynchronous events.
|
|
25
|
+
*/
|
|
26
|
+
var RelayReplaySubject =
|
|
27
|
+
/*#__PURE__*/
|
|
28
|
+
function () {
|
|
29
|
+
function RelayReplaySubject() {
|
|
30
|
+
var _this = this;
|
|
31
|
+
|
|
32
|
+
(0, _defineProperty2["default"])(this, "_complete", false);
|
|
33
|
+
(0, _defineProperty2["default"])(this, "_events", []);
|
|
34
|
+
(0, _defineProperty2["default"])(this, "_sinks", new Set());
|
|
35
|
+
this._observable = RelayObservable.create(function (sink) {
|
|
36
|
+
_this._sinks.add(sink);
|
|
37
|
+
|
|
38
|
+
var events = _this._events;
|
|
39
|
+
|
|
40
|
+
for (var i = 0; i < events.length; i++) {
|
|
41
|
+
if (sink.closed) {
|
|
42
|
+
// Bail if an event made the observer unsubscribe.
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var event = events[i];
|
|
47
|
+
|
|
48
|
+
switch (event.kind) {
|
|
49
|
+
case 'complete':
|
|
50
|
+
sink.complete();
|
|
51
|
+
break;
|
|
52
|
+
|
|
53
|
+
case 'error':
|
|
54
|
+
sink.error(event.error);
|
|
55
|
+
break;
|
|
56
|
+
|
|
57
|
+
case 'next':
|
|
58
|
+
sink.next(event.data);
|
|
59
|
+
break;
|
|
60
|
+
|
|
61
|
+
default:
|
|
62
|
+
event.kind;
|
|
63
|
+
!false ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayReplaySubject: Unknown event kind `%s`.', event.kind) : invariant(false) : void 0;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return function () {
|
|
68
|
+
_this._sinks["delete"](sink);
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
var _proto = RelayReplaySubject.prototype;
|
|
74
|
+
|
|
75
|
+
_proto.complete = function complete() {
|
|
76
|
+
if (this._complete === true) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this._complete = true;
|
|
81
|
+
|
|
82
|
+
this._events.push({
|
|
83
|
+
kind: 'complete'
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
this._sinks.forEach(function (sink) {
|
|
87
|
+
return sink.complete();
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
_proto.error = function error(_error) {
|
|
92
|
+
if (this._complete === true) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
this._complete = true;
|
|
97
|
+
|
|
98
|
+
this._events.push({
|
|
99
|
+
kind: 'error',
|
|
100
|
+
error: _error
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
this._sinks.forEach(function (sink) {
|
|
104
|
+
return sink.error(_error);
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
_proto.next = function next(data) {
|
|
109
|
+
if (this._complete === true) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
this._events.push({
|
|
114
|
+
kind: 'next',
|
|
115
|
+
data: data
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
this._sinks.forEach(function (sink) {
|
|
119
|
+
return sink.next(data);
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
_proto.subscribe = function subscribe(observer) {
|
|
124
|
+
return this._observable.subscribe(observer);
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
_proto.getObserverCount = function getObserverCount() {
|
|
128
|
+
return this._sinks.size;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
return RelayReplaySubject;
|
|
132
|
+
}();
|
|
133
|
+
|
|
134
|
+
module.exports = RelayReplaySubject;
|