relay-runtime 0.0.0-main-2c5cac44 → 0.0.0-main-e2a58ffa
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/experimental.js +1 -1
- package/index.js +1 -1
- package/index.js.flow +1 -0
- package/lib/store/RelayErrorTrie.js +129 -0
- package/lib/store/RelayModernRecord.js +96 -8
- package/lib/store/RelayResponseNormalizer.js +35 -17
- package/lib/store/RelayStoreUtils.js +2 -0
- package/lib/store/normalizeResponse.js +1 -2
- package/lib/util/RelayFeatureFlags.js +2 -2
- package/network/RelayNetworkTypes.js.flow +1 -0
- package/package.json +1 -1
- package/relay-runtime-experimental.js +2 -2
- package/relay-runtime-experimental.min.js +2 -2
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/RelayErrorTrie.js.flow +176 -0
- package/store/RelayModernRecord.js.flow +127 -9
- package/store/RelayRecordSource.js.flow +9 -11
- package/store/RelayResponseNormalizer.js.flow +32 -3
- package/store/RelayStoreTypes.js.flow +6 -1
- package/store/RelayStoreUtils.js.flow +2 -0
- package/store/normalizeResponse.js.flow +1 -1
- package/util/RelayFeatureFlags.js.flow +6 -2
package/experimental.js
CHANGED
package/index.js
CHANGED
package/index.js.flow
CHANGED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
5
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
6
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
7
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
8
|
+
var _excluded = ["path", "locations"];
|
|
9
|
+
var RelayFeatureFlags = require('../util/RelayFeatureFlags');
|
|
10
|
+
var SELF = Symbol('$SELF');
|
|
11
|
+
function buildErrorTrie(errors) {
|
|
12
|
+
if (errors == null) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
if (!RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
var trie = new Map();
|
|
19
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(errors),
|
|
20
|
+
_step;
|
|
21
|
+
try {
|
|
22
|
+
ERRORS: for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
23
|
+
var _step$value = _step.value,
|
|
24
|
+
path = _step$value.path,
|
|
25
|
+
_ = _step$value.locations,
|
|
26
|
+
error = (0, _objectWithoutPropertiesLoose2["default"])(_step$value, _excluded);
|
|
27
|
+
if (path == null) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
var length = path.length;
|
|
31
|
+
if (length === 0) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
var lastIndex = length - 1;
|
|
35
|
+
var currentTrie = trie;
|
|
36
|
+
for (var index = 0; index < lastIndex; index++) {
|
|
37
|
+
var key = path[index];
|
|
38
|
+
var existingValue = currentTrie.get(key);
|
|
39
|
+
if (existingValue instanceof Map) {
|
|
40
|
+
currentTrie = existingValue;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
var newValue = new Map();
|
|
44
|
+
if (Array.isArray(existingValue)) {
|
|
45
|
+
newValue.set(SELF, existingValue);
|
|
46
|
+
}
|
|
47
|
+
currentTrie.set(key, newValue);
|
|
48
|
+
currentTrie = newValue;
|
|
49
|
+
}
|
|
50
|
+
var lastKey = path[lastIndex];
|
|
51
|
+
var container = currentTrie.get(lastKey);
|
|
52
|
+
if (container instanceof Map) {
|
|
53
|
+
currentTrie = container;
|
|
54
|
+
container = currentTrie.get(lastKey);
|
|
55
|
+
lastKey = SELF;
|
|
56
|
+
}
|
|
57
|
+
if (Array.isArray(container)) {
|
|
58
|
+
container.push(error);
|
|
59
|
+
} else {
|
|
60
|
+
currentTrie.set(lastKey, [error]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
} catch (err) {
|
|
64
|
+
_iterator.e(err);
|
|
65
|
+
} finally {
|
|
66
|
+
_iterator.f();
|
|
67
|
+
}
|
|
68
|
+
return trie;
|
|
69
|
+
}
|
|
70
|
+
function getErrorsByKey(trie, key) {
|
|
71
|
+
var value = trie.get(key);
|
|
72
|
+
if (value == null) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
var errors = [];
|
|
79
|
+
recursivelyCopyErrorsIntoArray(value, errors);
|
|
80
|
+
return errors;
|
|
81
|
+
}
|
|
82
|
+
function recursivelyCopyErrorsIntoArray(trieOrSet, errors) {
|
|
83
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(trieOrSet),
|
|
84
|
+
_step2;
|
|
85
|
+
try {
|
|
86
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
87
|
+
var _step2$value = _step2.value,
|
|
88
|
+
childKey = _step2$value[0],
|
|
89
|
+
value = _step2$value[1];
|
|
90
|
+
var oldLength = errors.length;
|
|
91
|
+
if (Array.isArray(value)) {
|
|
92
|
+
errors.push.apply(errors, (0, _toConsumableArray2["default"])(value));
|
|
93
|
+
} else {
|
|
94
|
+
recursivelyCopyErrorsIntoArray(value, errors);
|
|
95
|
+
}
|
|
96
|
+
if (childKey === SELF) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
var newLength = errors.length;
|
|
100
|
+
for (var index = oldLength; index < newLength; index++) {
|
|
101
|
+
var error = errors[index];
|
|
102
|
+
if (error.path == null) {
|
|
103
|
+
errors[index] = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, error), {}, {
|
|
104
|
+
path: [childKey]
|
|
105
|
+
});
|
|
106
|
+
} else {
|
|
107
|
+
error.path.unshift(childKey);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
} catch (err) {
|
|
112
|
+
_iterator2.e(err);
|
|
113
|
+
} finally {
|
|
114
|
+
_iterator2.f();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function getNestedErrorTrieByKey(trie, key) {
|
|
118
|
+
var value = trie.get(key);
|
|
119
|
+
if (value instanceof Map) {
|
|
120
|
+
return value;
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
module.exports = {
|
|
125
|
+
SELF: SELF,
|
|
126
|
+
buildErrorTrie: buildErrorTrie,
|
|
127
|
+
getNestedErrorTrieByKey: getNestedErrorTrieByKey,
|
|
128
|
+
getErrorsByKey: getErrorsByKey
|
|
129
|
+
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
5
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
6
|
+
var _toPropertyKey2 = _interopRequireDefault(require("@babel/runtime/helpers/toPropertyKey"));
|
|
4
7
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
5
8
|
var deepFreeze = require('../util/deepFreeze');
|
|
6
9
|
var _require = require('./ClientID'),
|
|
@@ -10,6 +13,7 @@ var _require2 = require('./experimental-live-resolvers/LiveResolverSuspenseSenti
|
|
|
10
13
|
isSuspenseSentinel = _require2.isSuspenseSentinel;
|
|
11
14
|
var _require3 = require('./RelayStoreUtils'),
|
|
12
15
|
ACTOR_IDENTIFIER_KEY = _require3.ACTOR_IDENTIFIER_KEY,
|
|
16
|
+
ERRORS_KEY = _require3.ERRORS_KEY,
|
|
13
17
|
ID_KEY = _require3.ID_KEY,
|
|
14
18
|
INVALIDATED_AT_KEY = _require3.INVALIDATED_AT_KEY,
|
|
15
19
|
REF_KEY = _require3.REF_KEY,
|
|
@@ -45,11 +49,20 @@ function getDataID(record) {
|
|
|
45
49
|
return record[ID_KEY];
|
|
46
50
|
}
|
|
47
51
|
function getFields(record) {
|
|
52
|
+
if (ERRORS_KEY in record) {
|
|
53
|
+
return Object.keys(record).filter(function (field) {
|
|
54
|
+
return field !== ERRORS_KEY;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
48
57
|
return Object.keys(record);
|
|
49
58
|
}
|
|
50
59
|
function getType(record) {
|
|
51
60
|
return record[TYPENAME_KEY];
|
|
52
61
|
}
|
|
62
|
+
function getErrors(record, storageKey) {
|
|
63
|
+
var _record$ERRORS_KEY;
|
|
64
|
+
return (_record$ERRORS_KEY = record[ERRORS_KEY]) === null || _record$ERRORS_KEY === void 0 ? void 0 : _record$ERRORS_KEY[storageKey];
|
|
65
|
+
}
|
|
53
66
|
function getValue(record, storageKey) {
|
|
54
67
|
var value = record[storageKey];
|
|
55
68
|
if (value && typeof value === 'object') {
|
|
@@ -88,6 +101,7 @@ function getInvalidationEpoch(record) {
|
|
|
88
101
|
return invalidatedAt;
|
|
89
102
|
}
|
|
90
103
|
function update(prevRecord, nextRecord) {
|
|
104
|
+
var _updated2;
|
|
91
105
|
if (process.env.NODE_ENV !== "production") {
|
|
92
106
|
var _getType, _getType2;
|
|
93
107
|
var prevID = getDataID(prevRecord);
|
|
@@ -97,16 +111,40 @@ function update(prevRecord, nextRecord) {
|
|
|
97
111
|
var nextType = (_getType2 = getType(nextRecord)) !== null && _getType2 !== void 0 ? _getType2 : null;
|
|
98
112
|
process.env.NODE_ENV !== "production" ? warning(isClientID(nextID) && nextID !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid record update, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;
|
|
99
113
|
}
|
|
114
|
+
var prevErrorsByKey = prevRecord[ERRORS_KEY];
|
|
115
|
+
var nextErrorsByKey = nextRecord[ERRORS_KEY];
|
|
100
116
|
var updated = null;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
var
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
117
|
+
if (prevErrorsByKey == null && nextErrorsByKey == null) {
|
|
118
|
+
var _updated;
|
|
119
|
+
for (var storageKey in nextRecord) {
|
|
120
|
+
if (updated || !areEqual(prevRecord[storageKey], nextRecord[storageKey])) {
|
|
121
|
+
updated = updated !== null ? updated : (0, _objectSpread2["default"])({}, prevRecord);
|
|
122
|
+
updated[storageKey] = nextRecord[storageKey];
|
|
123
|
+
}
|
|
107
124
|
}
|
|
125
|
+
return (_updated = updated) !== null && _updated !== void 0 ? _updated : prevRecord;
|
|
108
126
|
}
|
|
109
|
-
|
|
127
|
+
for (var _storageKey2 in nextRecord) {
|
|
128
|
+
if (_storageKey2 === ERRORS_KEY) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
var nextValue = nextRecord[_storageKey2];
|
|
132
|
+
var nextErrors = nextErrorsByKey === null || nextErrorsByKey === void 0 ? void 0 : nextErrorsByKey[_storageKey2];
|
|
133
|
+
if (updated == null) {
|
|
134
|
+
var prevValue = prevRecord[_storageKey2];
|
|
135
|
+
var prevErrors = prevErrorsByKey === null || prevErrorsByKey === void 0 ? void 0 : prevErrorsByKey[_storageKey2];
|
|
136
|
+
if (areEqual(prevValue, nextValue) && areEqual(prevErrors, nextErrors)) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
updated = (0, _objectSpread2["default"])({}, prevRecord);
|
|
140
|
+
if (prevErrorsByKey != null) {
|
|
141
|
+
updated[ERRORS_KEY] = (0, _objectSpread2["default"])({}, prevErrorsByKey);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
setValue(updated, _storageKey2, nextValue);
|
|
145
|
+
setErrors(updated, _storageKey2, nextErrors);
|
|
146
|
+
}
|
|
147
|
+
return (_updated2 = updated) !== null && _updated2 !== void 0 ? _updated2 : prevRecord;
|
|
110
148
|
}
|
|
111
149
|
function merge(record1, record2) {
|
|
112
150
|
if (process.env.NODE_ENV !== "production") {
|
|
@@ -118,11 +156,59 @@ function merge(record1, record2) {
|
|
|
118
156
|
var nextType = (_getType4 = getType(record2)) !== null && _getType4 !== void 0 ? _getType4 : null;
|
|
119
157
|
process.env.NODE_ENV !== "production" ? warning(isClientID(nextID) && nextID !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid record merge, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;
|
|
120
158
|
}
|
|
121
|
-
|
|
159
|
+
if (ERRORS_KEY in record1 || ERRORS_KEY in record2) {
|
|
160
|
+
var errors1 = record1[ERRORS_KEY],
|
|
161
|
+
fields1 = (0, _objectWithoutPropertiesLoose2["default"])(record1, [ERRORS_KEY].map(_toPropertyKey2["default"]));
|
|
162
|
+
var errors2 = record2[ERRORS_KEY],
|
|
163
|
+
fields2 = (0, _objectWithoutPropertiesLoose2["default"])(record2, [ERRORS_KEY].map(_toPropertyKey2["default"]));
|
|
164
|
+
var updated = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fields1), fields2);
|
|
165
|
+
if (errors1 == null && errors2 == null) {
|
|
166
|
+
return updated;
|
|
167
|
+
}
|
|
168
|
+
var updatedErrors = {};
|
|
169
|
+
for (var storageKey in errors1) {
|
|
170
|
+
if (fields2.hasOwnProperty(storageKey)) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
updatedErrors[storageKey] = errors1[storageKey];
|
|
174
|
+
}
|
|
175
|
+
for (var _storageKey3 in errors2) {
|
|
176
|
+
updatedErrors[_storageKey3] = errors2[_storageKey3];
|
|
177
|
+
}
|
|
178
|
+
for (var _storageKey in updatedErrors) {
|
|
179
|
+
updated[ERRORS_KEY] = updatedErrors;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
return updated;
|
|
183
|
+
} else {
|
|
184
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, record1), record2);
|
|
185
|
+
}
|
|
122
186
|
}
|
|
123
187
|
function freeze(record) {
|
|
124
188
|
deepFreeze(record);
|
|
125
189
|
}
|
|
190
|
+
function setErrors(record, storageKey, errors) {
|
|
191
|
+
if (process.env.NODE_ENV !== "production") {
|
|
192
|
+
process.env.NODE_ENV !== "production" ? warning(storageKey in record, 'RelayModernRecord: Invalid error update, `%s` should not be undefined.', storageKey) : void 0;
|
|
193
|
+
}
|
|
194
|
+
var errorsByStorageKey = record[ERRORS_KEY];
|
|
195
|
+
if (errors != null && errors.length > 0) {
|
|
196
|
+
if (errorsByStorageKey == null) {
|
|
197
|
+
record[ERRORS_KEY] = (0, _defineProperty2["default"])({}, storageKey, errors);
|
|
198
|
+
} else {
|
|
199
|
+
errorsByStorageKey[storageKey] = errors;
|
|
200
|
+
}
|
|
201
|
+
} else if (errorsByStorageKey != null) {
|
|
202
|
+
if (delete errorsByStorageKey[storageKey]) {
|
|
203
|
+
for (var otherStorageKey in errorsByStorageKey) {
|
|
204
|
+
if (errorsByStorageKey.hasOwnProperty(otherStorageKey)) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
delete record[ERRORS_KEY];
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
126
212
|
function setValue(record, storageKey, value) {
|
|
127
213
|
if (process.env.NODE_ENV !== "production") {
|
|
128
214
|
var prevID = getDataID(record);
|
|
@@ -199,6 +285,7 @@ module.exports = {
|
|
|
199
285
|
freeze: freeze,
|
|
200
286
|
fromObject: fromObject,
|
|
201
287
|
getDataID: getDataID,
|
|
288
|
+
getErrors: getErrors,
|
|
202
289
|
getFields: getFields,
|
|
203
290
|
getInvalidationEpoch: getInvalidationEpoch,
|
|
204
291
|
getLinkedRecordID: getLinkedRecordID,
|
|
@@ -207,6 +294,7 @@ module.exports = {
|
|
|
207
294
|
getValue: getValue,
|
|
208
295
|
hasValue: hasValue,
|
|
209
296
|
merge: merge,
|
|
297
|
+
setErrors: setErrors,
|
|
210
298
|
setValue: setValue,
|
|
211
299
|
setLinkedRecordID: setLinkedRecordID,
|
|
212
300
|
setLinkedRecordIDs: setLinkedRecordIDs,
|
|
@@ -29,29 +29,33 @@ var _require3 = require('./ClientID'),
|
|
|
29
29
|
isClientID = _require3.isClientID;
|
|
30
30
|
var _require4 = require('./RelayConcreteVariables'),
|
|
31
31
|
getLocalVariables = _require4.getLocalVariables;
|
|
32
|
+
var _require5 = require('./RelayErrorTrie'),
|
|
33
|
+
buildErrorTrie = _require5.buildErrorTrie,
|
|
34
|
+
getErrorsByKey = _require5.getErrorsByKey,
|
|
35
|
+
getNestedErrorTrieByKey = _require5.getNestedErrorTrieByKey;
|
|
32
36
|
var RelayModernRecord = require('./RelayModernRecord');
|
|
33
|
-
var
|
|
34
|
-
createNormalizationSelector =
|
|
35
|
-
var
|
|
36
|
-
ROOT_ID =
|
|
37
|
-
TYPENAME_KEY =
|
|
38
|
-
getArgumentValues =
|
|
39
|
-
getHandleStorageKey =
|
|
40
|
-
getModuleComponentKey =
|
|
41
|
-
getModuleOperationKey =
|
|
42
|
-
getStorageKey =
|
|
43
|
-
var
|
|
44
|
-
TYPE_SCHEMA_TYPE =
|
|
45
|
-
generateTypeID =
|
|
37
|
+
var _require6 = require('./RelayModernSelector'),
|
|
38
|
+
createNormalizationSelector = _require6.createNormalizationSelector;
|
|
39
|
+
var _require7 = require('./RelayStoreUtils'),
|
|
40
|
+
ROOT_ID = _require7.ROOT_ID,
|
|
41
|
+
TYPENAME_KEY = _require7.TYPENAME_KEY,
|
|
42
|
+
getArgumentValues = _require7.getArgumentValues,
|
|
43
|
+
getHandleStorageKey = _require7.getHandleStorageKey,
|
|
44
|
+
getModuleComponentKey = _require7.getModuleComponentKey,
|
|
45
|
+
getModuleOperationKey = _require7.getModuleOperationKey,
|
|
46
|
+
getStorageKey = _require7.getStorageKey;
|
|
47
|
+
var _require8 = require('./TypeID'),
|
|
48
|
+
TYPE_SCHEMA_TYPE = _require8.TYPE_SCHEMA_TYPE,
|
|
49
|
+
generateTypeID = _require8.generateTypeID;
|
|
46
50
|
var areEqual = require("fbjs/lib/areEqual");
|
|
47
51
|
var invariant = require('invariant');
|
|
48
52
|
var warning = require("fbjs/lib/warning");
|
|
49
|
-
function normalize(recordSource, selector, response, options) {
|
|
53
|
+
function normalize(recordSource, selector, response, options, errors) {
|
|
50
54
|
var dataID = selector.dataID,
|
|
51
55
|
node = selector.node,
|
|
52
56
|
variables = selector.variables;
|
|
53
57
|
var normalizer = new RelayResponseNormalizer(recordSource, variables, options);
|
|
54
|
-
return normalizer.normalizeResponse(node, dataID, response);
|
|
58
|
+
return normalizer.normalizeResponse(node, dataID, response, errors);
|
|
55
59
|
}
|
|
56
60
|
var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
57
61
|
function RelayResponseNormalizer(recordSource, variables, options) {
|
|
@@ -69,13 +73,14 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
69
73
|
this._shouldProcessClientComponents = options.shouldProcessClientComponents;
|
|
70
74
|
}
|
|
71
75
|
var _proto = RelayResponseNormalizer.prototype;
|
|
72
|
-
_proto.normalizeResponse = function normalizeResponse(node, dataID, data) {
|
|
76
|
+
_proto.normalizeResponse = function normalizeResponse(node, dataID, data, errors) {
|
|
73
77
|
var record = this._recordSource.get(dataID);
|
|
74
78
|
!record ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer(): Expected root record `%s` to exist.', dataID) : invariant(false) : void 0;
|
|
75
79
|
this._assignClientAbstractTypes(node);
|
|
80
|
+
this._errorTrie = buildErrorTrie(errors);
|
|
76
81
|
this._traverseSelections(node, record, data);
|
|
77
82
|
return {
|
|
78
|
-
errors:
|
|
83
|
+
errors: errors,
|
|
79
84
|
fieldPayloads: this._handleFieldPayloads,
|
|
80
85
|
incrementalPlaceholders: this._incrementalPlaceholders,
|
|
81
86
|
followupPayloads: this._followupPayloads,
|
|
@@ -319,6 +324,13 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
319
324
|
}
|
|
320
325
|
}
|
|
321
326
|
RelayModernRecord.setValue(record, storageKey, null);
|
|
327
|
+
var errorTrie = this._errorTrie;
|
|
328
|
+
if (errorTrie != null) {
|
|
329
|
+
var errors = getErrorsByKey(errorTrie, responseKey);
|
|
330
|
+
if (errors != null) {
|
|
331
|
+
RelayModernRecord.setErrors(record, storageKey, errors);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
322
334
|
return;
|
|
323
335
|
}
|
|
324
336
|
if (selection.kind === SCALAR_FIELD) {
|
|
@@ -328,11 +340,14 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
328
340
|
RelayModernRecord.setValue(record, storageKey, fieldValue);
|
|
329
341
|
} else if (selection.kind === LINKED_FIELD) {
|
|
330
342
|
this._path.push(responseKey);
|
|
343
|
+
var oldErrorTrie = this._errorTrie;
|
|
344
|
+
this._errorTrie = oldErrorTrie == null ? null : getNestedErrorTrieByKey(oldErrorTrie, responseKey);
|
|
331
345
|
if (selection.plural) {
|
|
332
346
|
this._normalizePluralLink(selection, record, storageKey, fieldValue);
|
|
333
347
|
} else {
|
|
334
348
|
this._normalizeLink(selection, record, storageKey, fieldValue);
|
|
335
349
|
}
|
|
350
|
+
this._errorTrie = oldErrorTrie;
|
|
336
351
|
this._path.pop();
|
|
337
352
|
} else {
|
|
338
353
|
selection;
|
|
@@ -415,6 +430,8 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
415
430
|
return;
|
|
416
431
|
}
|
|
417
432
|
_this._path.push(String(nextIndex));
|
|
433
|
+
var oldErrorTrie = _this._errorTrie;
|
|
434
|
+
_this._errorTrie = oldErrorTrie == null ? null : getNestedErrorTrieByKey(oldErrorTrie, nextIndex);
|
|
418
435
|
!(typeof item === 'object') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected elements for field `%s` to be ' + 'objects.', storageKey) : invariant(false) : void 0;
|
|
419
436
|
var nextID = _this._getDataId(item, (_field$concreteType3 = field.concreteType) !== null && _field$concreteType3 !== void 0 ? _field$concreteType3 : _this._getRecordType(item)) || prevIDs && prevIDs[nextIndex] || generateClientID(RelayModernRecord.getDataID(record), storageKey, nextIndex);
|
|
420
437
|
!(typeof nextID === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayResponseNormalizer: Expected id of elements of field `%s` to ' + 'be strings.', storageKey) : invariant(false) : void 0;
|
|
@@ -433,6 +450,7 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
433
450
|
}
|
|
434
451
|
}
|
|
435
452
|
_this._traverseSelections(field, nextRecord, item);
|
|
453
|
+
_this._errorTrie = oldErrorTrie;
|
|
436
454
|
_this._path.pop();
|
|
437
455
|
});
|
|
438
456
|
RelayModernRecord.setLinkedRecordIDs(record, storageKey, nextIDs);
|
|
@@ -10,6 +10,7 @@ var VARIABLE = RelayConcreteNode.VARIABLE,
|
|
|
10
10
|
LITERAL = RelayConcreteNode.LITERAL,
|
|
11
11
|
OBJECT_VALUE = RelayConcreteNode.OBJECT_VALUE,
|
|
12
12
|
LIST_VALUE = RelayConcreteNode.LIST_VALUE;
|
|
13
|
+
var ERRORS_KEY = '__errors';
|
|
13
14
|
var MODULE_COMPONENT_KEY_PREFIX = '__module_component_';
|
|
14
15
|
var MODULE_OPERATION_KEY_PREFIX = '__module_operation_';
|
|
15
16
|
function getArgumentValue(arg, variables) {
|
|
@@ -126,6 +127,7 @@ var RelayStoreUtils = {
|
|
|
126
127
|
FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT: '$isWithinUnmatchedTypeRefinement',
|
|
127
128
|
FRAGMENT_PROP_NAME_KEY: '__fragmentPropName',
|
|
128
129
|
MODULE_COMPONENT_KEY: '__module_component',
|
|
130
|
+
ERRORS_KEY: ERRORS_KEY,
|
|
129
131
|
ID_KEY: '__id',
|
|
130
132
|
REF_KEY: '__ref',
|
|
131
133
|
REFS_KEY: '__refs',
|
|
@@ -12,9 +12,8 @@ function normalizeResponse(response, selector, typeName, options) {
|
|
|
12
12
|
var source = _RelayRecordSource["default"].create();
|
|
13
13
|
var record = _RelayModernRecord["default"].create(selector.dataID, typeName);
|
|
14
14
|
source.set(selector.dataID, record);
|
|
15
|
-
var relayPayload = _RelayResponseNormalizer["default"].normalize(source, selector, data, options);
|
|
15
|
+
var relayPayload = _RelayResponseNormalizer["default"].normalize(source, selector, data, options, errors);
|
|
16
16
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, relayPayload), {}, {
|
|
17
|
-
errors: errors,
|
|
18
17
|
isFinal: ((_response$extensions = response.extensions) === null || _response$extensions === void 0 ? void 0 : _response$extensions.is_final) === true
|
|
19
18
|
});
|
|
20
19
|
}
|
|
@@ -15,10 +15,10 @@ var RelayFeatureFlags = {
|
|
|
15
15
|
STRING_INTERN_LEVEL: 0,
|
|
16
16
|
USE_REACT_CACHE: false,
|
|
17
17
|
USE_REACT_CACHE_LEGACY_TIMEOUTS: true,
|
|
18
|
-
ENABLE_QUERY_RENDERER_SET_STATE_PREVENTION: false,
|
|
19
18
|
LOG_MISSING_RECORDS_IN_PROD: false,
|
|
20
19
|
ENABLE_LOOSE_SUBSCRIPTION_ATTRIBUTION: false,
|
|
21
20
|
ENABLE_OPERATION_TRACKER_OPTIMISTIC_UPDATES: false,
|
|
22
|
-
ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE: false
|
|
21
|
+
ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE: false,
|
|
22
|
+
ENABLE_FIELD_ERROR_HANDLING: false
|
|
23
23
|
};
|
|
24
24
|
module.exports = RelayFeatureFlags;
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay v0.0.0-main-
|
|
2
|
+
* Relay v0.0.0-main-e2a58ffa
|
|
3
3
|
*/
|
|
4
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/defineProperty")):"function"==typeof define&&define.amd?define(["invariant","@babel/runtime/helpers/interopRequireDefault","fbjs/lib/warning","@babel/runtime/helpers/objectSpread2","@babel/runtime/helpers/toConsumableArray","fbjs/lib/areEqual","@babel/runtime/helpers/defineProperty"],r):"object"==typeof exports?exports.ReactRelayExperimental=r(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/defineProperty")):e.ReactRelayExperimental=r(e.invariant,e["@babel/runtime/helpers/interopRequireDefault"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/objectSpread2"],e["@babel/runtime/helpers/toConsumableArray"],e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/defineProperty"])}(window,(function(e,r,t,n,a,o,l){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)t.d(n,a,function(r){return e[r]}.bind(null,a));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=6)}([function(r,t){r.exports=e},function(e,t){e.exports=r},function(e,r,t){"use strict";e.exports={ACTOR_CHANGE:"ActorChange",CONDITION:"Condition",CLIENT_COMPONENT:"ClientComponent",CLIENT_EDGE_TO_SERVER_OBJECT:"ClientEdgeToServerObject",CLIENT_EDGE_TO_CLIENT_OBJECT:"ClientEdgeToClientObject",CLIENT_EXTENSION:"ClientExtension",DEFER:"Defer",CONNECTION:"Connection",FRAGMENT:"Fragment",FRAGMENT_SPREAD:"FragmentSpread",INLINE_DATA_FRAGMENT_SPREAD:"InlineDataFragmentSpread",INLINE_DATA_FRAGMENT:"InlineDataFragment",INLINE_FRAGMENT:"InlineFragment",LINKED_FIELD:"LinkedField",LINKED_HANDLE:"LinkedHandle",LITERAL:"Literal",LIST_VALUE:"ListValue",LOCAL_ARGUMENT:"LocalArgument",MODULE_IMPORT:"ModuleImport",ALIASED_FRAGMENT_SPREAD:"AliasedFragmentSpread",ALIASED_INLINE_FRAGMENT_SPREAD:"AliasedInlineFragmentSpread",RELAY_RESOLVER:"RelayResolver",RELAY_LIVE_RESOLVER:"RelayLiveResolver",REQUIRED_FIELD:"RequiredField",OBJECT_VALUE:"ObjectValue",OPERATION:"Operation",REQUEST:"Request",ROOT_ARGUMENT:"RootArgument",SCALAR_FIELD:"ScalarField",SCALAR_HANDLE:"ScalarHandle",SPLIT_OPERATION:"SplitOperation",STREAM:"Stream",TYPE_DISCRIMINATOR:"TypeDiscriminator",UPDATABLE_QUERY:"UpdatableQuery",VARIABLE:"Variable"}},function(e,r){e.exports=t},function(e,r){e.exports=n},function(e,r,t){"use strict";var n=(0,t(1).default)(t(12)),a=t(13),o=t(2),l=t(15),i=t(0),u=o.VARIABLE,s=o.LITERAL,f=o.OBJECT_VALUE,c=o.LIST_VALUE;function d(e,r){if(e.kind===u)return function(e,r){return r.hasOwnProperty(e)||i(!1,"getVariableValue(): Undefined variable `%s`.",e),l(r[e])}(e.variableName,r);if(e.kind===s)return e.value;if(e.kind===f){var t={};return e.fields.forEach((function(e){t[e.name]=d(e,r)})),t}if(e.kind===c){var n=[];return e.items.forEach((function(e){null!=e&&n.push(d(e,r))})),n}}function p(e,r,t){var n={};return 1==t&&(n[g.FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT]=!0),e&&e.forEach((function(e){n[e.name]=d(e,r)})),n}function E(e,r){if(!r)return e;var t=[];for(var n in r)if(r.hasOwnProperty(n)){var a,o=r[n];if(null!=o)t.push(n+":"+(null!==(a=JSON.stringify(o))&&void 0!==a?a:"undefined"))}return 0===t.length?e:e+"(".concat(t.join(","),")")}var g={ACTOR_IDENTIFIER_KEY:"__actorIdentifier",CLIENT_EDGE_TRAVERSAL_PATH:"__clientEdgeTraversalPath",FRAGMENTS_KEY:"__fragments",FRAGMENT_OWNER_KEY:"__fragmentOwner",FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT:"$isWithinUnmatchedTypeRefinement",FRAGMENT_PROP_NAME_KEY:"__fragmentPropName",MODULE_COMPONENT_KEY:"__module_component",ID_KEY:"__id",REF_KEY:"__ref",REFS_KEY:"__refs",ROOT_ID:"client:root",ROOT_TYPE:"__Root",TYPENAME_KEY:"__typename",INVALIDATED_AT_KEY:"__invalidated_at",RELAY_RESOLVER_VALUE_KEY:"__resolverValue",RELAY_RESOLVER_INVALIDATION_KEY:"__resolverValueMayBeInvalid",RELAY_RESOLVER_SNAPSHOT_KEY:"__resolverSnapshot",RELAY_RESOLVER_ERROR_KEY:"__resolverError",RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS:"__resolverOutputTypeRecordIDs",formatStorageKey:E,getArgumentValue:d,getArgumentValues:p,getHandleStorageKey:function(e,r){var t=e.dynamicKey,o=e.handle,l=e.key,i=e.name,u=e.args,s=e.filters,f=a(o,l,i),c=null;return u&&s&&0!==u.length&&0!==s.length&&(c=u.filter((function(e){return s.indexOf(e.name)>-1}))),t&&(c=null!=c?[t].concat((0,n.default)(c)):[t]),null===c?f:E(f,p(c,r))},getStorageKey:function(e,r){if(e.storageKey)return e.storageKey;var t=function(e){if("RelayResolver"===e.kind||"RelayLiveResolver"===e.kind){var r,t;return null==e.args?null===(t=e.fragment)||void 0===t?void 0:t.args:null==(null===(r=e.fragment)||void 0===r?void 0:r.args)?e.args:e.args.concat(e.fragment.args)}return void 0===e.args?void 0:e.args}(e),n=e.name;return t&&0!==t.length?E(n,p(t,r)):n},getStableStorageKey:function(e,r){return E(e,l(r))},getModuleComponentKey:function(e){return"".concat("__module_component_").concat(e)},getModuleOperationKey:function(e){return"".concat("__module_operation_").concat(e)}};e.exports=g},function(e,r,t){"use strict";var n=t(7),a=t(17),o=a.weakObjectWrapper,l=a.weakObjectWrapperLive;e.exports={resolverDataInjector:n,weakObjectWrapper:o,weakObjectWrapperLive:l}},function(e,r,t){"use strict";var n=t(8).readFragment,a=t(0);e.exports=function(e,r,t,o){var l=r;return function(r,i){var u=n(e,r);if(null==t)return l(u,i);if(null==u){if(!0!==o)return l(null,i);a(!1,"Expected required resolver field `%s` in fragment `%s` to be present. But resolvers fragment data is null/undefined.",t,e.name)}if(t in u)return!0===o&&null==u[t]&&a(!1,"Expected required resolver field `%s` in fragment `%s` to be non-null.",t,e.name),l(u[t],i);a(!1,"Missing field `%s` in fragment `%s` in resolver response.",t,e.name)}}},function(e,r,t){"use strict";var n=t(9).getFragment,a=t(10).getSelector,o=t(0),l=[];var i={};e.exports={readFragment:function(e,r){if(!l.length)throw new Error("readFragment should be called only from within a Relay Resolver function.");var t=l[l.length-1],u=n(e),s=a(u,r);null==s&&o(!1,"Expected a selector for the fragment of the resolver ".concat(u.name,", but got null.")),"SingularReaderSelector"!==s.kind&&o(!1,"Expected a singular reader selector for the fragment of the resolver ".concat(u.name,", but it was plural."));var f=t.getDataForResolverFragment(s,r),c=f.data;if(f.isMissingData)throw i;return c},withResolverContext:function(e,r){l.push(e);try{return r()}finally{l.pop()}},RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL:i}},function(e,r,t){"use strict";var n=t(2),a=t(0),o=t(3);function l(e){var r=e;return"function"==typeof r?(r=r(),o(!1,"RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.","Fragment"===r.kind?r.name:r.operation.name)):r.default&&(r=r.default),r}function i(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.FRAGMENT}function u(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.REQUEST}function s(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.UPDATABLE_QUERY}function f(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.INLINE_DATA_FRAGMENT}function c(e){var r=l(e);return i(r)||a(!1,"GraphQLTag: Expected a fragment, got `%s`.",JSON.stringify(r)),r}e.exports={getFragment:c,getNode:l,getPaginationFragment:function(e){var r,t=c(e),n=null===(r=t.metadata)||void 0===r?void 0:r.refetch,a=null==n?void 0:n.connection;return null===n||"object"!=typeof n||null===a||"object"!=typeof a?null:t},getRefetchableFragment:function(e){var r,t=c(e),n=null===(r=t.metadata)||void 0===r?void 0:r.refetch;return null===n||"object"!=typeof n?null:t},getRequest:function(e){var r=l(e);return u(r)||a(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(r)),r},getUpdatableQuery:function(e){var r=l(e);return s(r)||a(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(r)),r},getInlineDataFragment:function(e){var r=l(e);return f(r)||a(!1,"GraphQLTag: Expected an inline data fragment, got `%s`.",JSON.stringify(r)),r},graphql:function(e){a(!1,"graphql: Unexpected invocation at runtime. Either the Babel transform was not set up, or it failed to identify this call site. Make sure it is being used verbatim as `graphql`. Note also that there cannot be a space between graphql and the backtick that follows.")},isFragment:i,isRequest:u,isUpdatableQuery:s,isInlineDataFragment:f}},function(e,r,t){"use strict";var n=t(11).getFragmentVariables,a=t(5),o=a.CLIENT_EDGE_TRAVERSAL_PATH,l=a.FRAGMENT_OWNER_KEY,i=a.FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,u=a.FRAGMENTS_KEY,s=a.ID_KEY,f=t(16),c=t(0),d=t(3);function p(e,r){("object"!=typeof r||null===r||Array.isArray(r))&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(r));var t=r[s],a=r[u],f=r[l],p=r[o];if("string"==typeof t&&"object"==typeof a&&null!==a&&"object"==typeof a[e.name]&&null!==a[e.name]&&"object"==typeof f&&null!==f&&(null==p||Array.isArray(p))){var E=f,g=p,m=a[e.name];return A(e,t,n(e,E.variables,m),E,!0===m[i],g)}var _=JSON.stringify(r);return _.length>499&&(_=_.substr(0,498)+"…"),d(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`.",e.name,_,e.name),null}function E(e,r){var t=null;return r.forEach((function(r,n){var a=null!=r?p(e,r):null;null!=a&&(t=t||[]).push(a)})),null==t?null:{kind:"PluralReaderSelector",selectors:t}}function g(e,r){return null==r?r:e.metadata&&!0===e.metadata.plural?(Array.isArray(r)||c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(r),e.name),E(e,r)):(Array.isArray(r)&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(r),e.name),p(e,r))}function m(e,r){return null==r?r:e.metadata&&!0===e.metadata.plural?(Array.isArray(r)||c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(r),e.name),function(e,r){var t=null;return r.forEach((function(r){var n=null!=r?_(e,r):null;null!=n&&(t=t||[]).push(n)})),t}(e,r)):(Array.isArray(r)&&c(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(r),e.name),_(e,r))}function _(e,r){("object"!=typeof r||null===r||Array.isArray(r))&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(r));var t=r[s];return"string"==typeof t?t:(d(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`, or `null` is passed as the fragment reference for `%s` if it's conditonally included and the condition isn't met.",e.name,JSON.stringify(r),e.name,e.name),null)}function b(e,r){var t;return null==r?{}:!0===(null===(t=e.metadata)||void 0===t?void 0:t.plural)?(Array.isArray(r)||c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(r),e.name),y(e,r)):(Array.isArray(r)&&c(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(r),e.name),v(e,r)||{})}function v(e,r){var t=p(e,r);return t?t.variables:null}function y(e,r){var t={};return r.forEach((function(r,n){if(null!=r){var a=v(e,r);null!=a&&Object.assign(t,a)}})),t}function R(e,r){return e.owner===r.owner&&e.dataID===r.dataID&&e.node===r.node&&f(e.variables,r.variables)}function A(e,r,t,n){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=arguments.length>5?arguments[5]:void 0;return{kind:"SingularReaderSelector",dataID:r,isWithinUnmatchedTypeRefinement:a,clientEdgeTraversalPath:null!=o?o:null,node:e,variables:t,owner:n}}e.exports={areEqualSelectors:function(e,r){return e===r||(null==e?null==r:null==r?null==e:"SingularReaderSelector"===e.kind&&"SingularReaderSelector"===r.kind?R(e,r):"PluralReaderSelector"===e.kind&&"PluralReaderSelector"===r.kind&&(e.selectors.length===r.selectors.length&&e.selectors.every((function(e,t){return R(e,r.selectors[t])}))))},createReaderSelector:A,createNormalizationSelector:function(e,r,t){return{dataID:r,node:e,variables:t}},getDataIDsFromFragment:m,getDataIDsFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=e[n],o=r[n];t[n]=m(a,o)}return t},getSingularSelector:p,getPluralSelector:E,getSelector:g,getSelectorsFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=e[n],o=r[n];t[n]=g(a,o)}return t},getVariablesFromSingularFragment:v,getVariablesFromPluralFragment:y,getVariablesFromFragment:b,getVariablesFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=b(e[n],r[n]);Object.assign(t,a)}return t}}},function(e,r,t){"use strict";var n=(0,t(1).default)(t(4)),a=t(5).getArgumentValues,o=t(0);e.exports={getLocalVariables:function(e,r,t){if(null==r)return e;var o=(0,n.default)({},e),l=t?a(t,e):{};return r.forEach((function(e){var r,t=null!==(r=l[e.name])&&void 0!==r?r:e.defaultValue;o[e.name]=t})),o},getFragmentVariables:function(e,r,t){return null==e.argumentDefinitions?t:(e.argumentDefinitions.forEach((function(l){if(!t.hasOwnProperty(l.name))switch(a=a||(0,n.default)({},t),l.kind){case"LocalArgument":a[l.name]=l.defaultValue;break;case"RootArgument":if(!r.hasOwnProperty(l.name)){a[l.name]=void 0;break}a[l.name]=r[l.name];break;default:o(!1,"RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.",l.kind,e.name)}})),a||t);var a},getOperationVariables:function(e,r,t){var n={};return e.argumentDefinitions.forEach((function(e){var r=e.defaultValue;null!=t[e.name]&&(r=t[e.name]),n[e.name]=r})),null!=r&&Object.keys(r).forEach((function(e){n[e]=r[e].get()})),n}}},function(e,r){e.exports=a},function(e,r,t){"use strict";var n=t(14).DEFAULT_HANDLE_KEY,a=t(0);e.exports=function(e,r,t){return r&&r!==n?"__".concat(r,"_").concat(e):(null==t&&a(!1,"getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided"),"__".concat(t,"_").concat(e))}},function(e,r,t){"use strict";e.exports={DEFAULT_HANDLE_KEY:""}},function(e,r,t){"use strict";e.exports=function e(r){if(!r||"object"!=typeof r)return r;if(Array.isArray(r))return r.map(e);for(var t=Object.keys(r).sort(),n={},a=0;a<t.length;a++)n[t[a]]=e(r[t[a]]);return n}},function(e,r){e.exports=o},function(e,r,t){"use strict";var n=t(1).default,a=n(t(18)),o=n(t(4)),l=t(19),i=t(20).isSuspenseSentinel,u=t(0);function s(e,r,t){return function(){for(var n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];var s=e.apply(null,o);return null==s||i(s)?s:t?(Array.isArray(s)||u(!1,"Resolver is expected to return a plural value."),s.map((function(e){return(0,a.default)({},r,e)}))):(0,a.default)({},r,s)}}e.exports={weakObjectWrapperLive:function(e,r,t){return function(){for(var n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];var f=e.apply(null,a);return l(f)||u(!1,"Resolver is expected to return a LiveState value."),(0,o.default)((0,o.default)({},f),{},{read:s((function(){return f.read()}),r,t)})}},weakObjectWrapper:s}},function(e,r){e.exports=l},function(e,r,t){"use strict";e.exports=function(e){return null!=e&&"object"==typeof e&&"function"==typeof e.read&&"function"==typeof e.subscribe}},function(e,r,t){"use strict";var n=Object.freeze({__LIVE_RESOLVER_SUSPENSE_SENTINEL:!0});e.exports={isSuspenseSentinel:function(e){return e===n},suspenseSentinel:function(){return n}}}])}));
|
|
4
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/defineProperty")):"function"==typeof define&&define.amd?define(["invariant","@babel/runtime/helpers/interopRequireDefault","fbjs/lib/warning","@babel/runtime/helpers/objectSpread2","@babel/runtime/helpers/toConsumableArray","fbjs/lib/areEqual","@babel/runtime/helpers/defineProperty"],r):"object"==typeof exports?exports.ReactRelayExperimental=r(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/defineProperty")):e.ReactRelayExperimental=r(e.invariant,e["@babel/runtime/helpers/interopRequireDefault"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/objectSpread2"],e["@babel/runtime/helpers/toConsumableArray"],e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/defineProperty"])}(window,(function(e,r,t,n,a,o,l){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)t.d(n,a,function(r){return e[r]}.bind(null,a));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=6)}([function(r,t){r.exports=e},function(e,t){e.exports=r},function(e,r,t){"use strict";e.exports={ACTOR_CHANGE:"ActorChange",CONDITION:"Condition",CLIENT_COMPONENT:"ClientComponent",CLIENT_EDGE_TO_SERVER_OBJECT:"ClientEdgeToServerObject",CLIENT_EDGE_TO_CLIENT_OBJECT:"ClientEdgeToClientObject",CLIENT_EXTENSION:"ClientExtension",DEFER:"Defer",CONNECTION:"Connection",FRAGMENT:"Fragment",FRAGMENT_SPREAD:"FragmentSpread",INLINE_DATA_FRAGMENT_SPREAD:"InlineDataFragmentSpread",INLINE_DATA_FRAGMENT:"InlineDataFragment",INLINE_FRAGMENT:"InlineFragment",LINKED_FIELD:"LinkedField",LINKED_HANDLE:"LinkedHandle",LITERAL:"Literal",LIST_VALUE:"ListValue",LOCAL_ARGUMENT:"LocalArgument",MODULE_IMPORT:"ModuleImport",ALIASED_FRAGMENT_SPREAD:"AliasedFragmentSpread",ALIASED_INLINE_FRAGMENT_SPREAD:"AliasedInlineFragmentSpread",RELAY_RESOLVER:"RelayResolver",RELAY_LIVE_RESOLVER:"RelayLiveResolver",REQUIRED_FIELD:"RequiredField",OBJECT_VALUE:"ObjectValue",OPERATION:"Operation",REQUEST:"Request",ROOT_ARGUMENT:"RootArgument",SCALAR_FIELD:"ScalarField",SCALAR_HANDLE:"ScalarHandle",SPLIT_OPERATION:"SplitOperation",STREAM:"Stream",TYPE_DISCRIMINATOR:"TypeDiscriminator",UPDATABLE_QUERY:"UpdatableQuery",VARIABLE:"Variable"}},function(e,r){e.exports=t},function(e,r){e.exports=n},function(e,r,t){"use strict";var n=(0,t(1).default)(t(12)),a=t(13),o=t(2),l=t(15),i=t(0),u=o.VARIABLE,s=o.LITERAL,f=o.OBJECT_VALUE,c=o.LIST_VALUE;function d(e,r){if(e.kind===u)return function(e,r){return r.hasOwnProperty(e)||i(!1,"getVariableValue(): Undefined variable `%s`.",e),l(r[e])}(e.variableName,r);if(e.kind===s)return e.value;if(e.kind===f){var t={};return e.fields.forEach((function(e){t[e.name]=d(e,r)})),t}if(e.kind===c){var n=[];return e.items.forEach((function(e){null!=e&&n.push(d(e,r))})),n}}function E(e,r,t){var n={};return 1==t&&(n[g.FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT]=!0),e&&e.forEach((function(e){n[e.name]=d(e,r)})),n}function p(e,r){if(!r)return e;var t=[];for(var n in r)if(r.hasOwnProperty(n)){var a,o=r[n];if(null!=o)t.push(n+":"+(null!==(a=JSON.stringify(o))&&void 0!==a?a:"undefined"))}return 0===t.length?e:e+"(".concat(t.join(","),")")}var g={ACTOR_IDENTIFIER_KEY:"__actorIdentifier",CLIENT_EDGE_TRAVERSAL_PATH:"__clientEdgeTraversalPath",FRAGMENTS_KEY:"__fragments",FRAGMENT_OWNER_KEY:"__fragmentOwner",FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT:"$isWithinUnmatchedTypeRefinement",FRAGMENT_PROP_NAME_KEY:"__fragmentPropName",MODULE_COMPONENT_KEY:"__module_component",ERRORS_KEY:"__errors",ID_KEY:"__id",REF_KEY:"__ref",REFS_KEY:"__refs",ROOT_ID:"client:root",ROOT_TYPE:"__Root",TYPENAME_KEY:"__typename",INVALIDATED_AT_KEY:"__invalidated_at",RELAY_RESOLVER_VALUE_KEY:"__resolverValue",RELAY_RESOLVER_INVALIDATION_KEY:"__resolverValueMayBeInvalid",RELAY_RESOLVER_SNAPSHOT_KEY:"__resolverSnapshot",RELAY_RESOLVER_ERROR_KEY:"__resolverError",RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS:"__resolverOutputTypeRecordIDs",formatStorageKey:p,getArgumentValue:d,getArgumentValues:E,getHandleStorageKey:function(e,r){var t=e.dynamicKey,o=e.handle,l=e.key,i=e.name,u=e.args,s=e.filters,f=a(o,l,i),c=null;return u&&s&&0!==u.length&&0!==s.length&&(c=u.filter((function(e){return s.indexOf(e.name)>-1}))),t&&(c=null!=c?[t].concat((0,n.default)(c)):[t]),null===c?f:p(f,E(c,r))},getStorageKey:function(e,r){if(e.storageKey)return e.storageKey;var t=function(e){if("RelayResolver"===e.kind||"RelayLiveResolver"===e.kind){var r,t;return null==e.args?null===(t=e.fragment)||void 0===t?void 0:t.args:null==(null===(r=e.fragment)||void 0===r?void 0:r.args)?e.args:e.args.concat(e.fragment.args)}return void 0===e.args?void 0:e.args}(e),n=e.name;return t&&0!==t.length?p(n,E(t,r)):n},getStableStorageKey:function(e,r){return p(e,l(r))},getModuleComponentKey:function(e){return"".concat("__module_component_").concat(e)},getModuleOperationKey:function(e){return"".concat("__module_operation_").concat(e)}};e.exports=g},function(e,r,t){"use strict";var n=t(7),a=t(17),o=a.weakObjectWrapper,l=a.weakObjectWrapperLive;e.exports={resolverDataInjector:n,weakObjectWrapper:o,weakObjectWrapperLive:l}},function(e,r,t){"use strict";var n=t(8).readFragment,a=t(0);e.exports=function(e,r,t,o){var l=r;return function(r,i){var u=n(e,r);if(null==t)return l(u,i);if(null==u){if(!0!==o)return l(null,i);a(!1,"Expected required resolver field `%s` in fragment `%s` to be present. But resolvers fragment data is null/undefined.",t,e.name)}if(t in u)return!0===o&&null==u[t]&&a(!1,"Expected required resolver field `%s` in fragment `%s` to be non-null.",t,e.name),l(u[t],i);a(!1,"Missing field `%s` in fragment `%s` in resolver response.",t,e.name)}}},function(e,r,t){"use strict";var n=t(9).getFragment,a=t(10).getSelector,o=t(0),l=[];var i={};e.exports={readFragment:function(e,r){if(!l.length)throw new Error("readFragment should be called only from within a Relay Resolver function.");var t=l[l.length-1],u=n(e),s=a(u,r);null==s&&o(!1,"Expected a selector for the fragment of the resolver ".concat(u.name,", but got null.")),"SingularReaderSelector"!==s.kind&&o(!1,"Expected a singular reader selector for the fragment of the resolver ".concat(u.name,", but it was plural."));var f=t.getDataForResolverFragment(s,r),c=f.data;if(f.isMissingData)throw i;return c},withResolverContext:function(e,r){l.push(e);try{return r()}finally{l.pop()}},RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL:i}},function(e,r,t){"use strict";var n=t(2),a=t(0),o=t(3);function l(e){var r=e;return"function"==typeof r?(r=r(),o(!1,"RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.","Fragment"===r.kind?r.name:r.operation.name)):r.default&&(r=r.default),r}function i(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.FRAGMENT}function u(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.REQUEST}function s(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.UPDATABLE_QUERY}function f(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.INLINE_DATA_FRAGMENT}function c(e){var r=l(e);return i(r)||a(!1,"GraphQLTag: Expected a fragment, got `%s`.",JSON.stringify(r)),r}e.exports={getFragment:c,getNode:l,getPaginationFragment:function(e){var r,t=c(e),n=null===(r=t.metadata)||void 0===r?void 0:r.refetch,a=null==n?void 0:n.connection;return null===n||"object"!=typeof n||null===a||"object"!=typeof a?null:t},getRefetchableFragment:function(e){var r,t=c(e),n=null===(r=t.metadata)||void 0===r?void 0:r.refetch;return null===n||"object"!=typeof n?null:t},getRequest:function(e){var r=l(e);return u(r)||a(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(r)),r},getUpdatableQuery:function(e){var r=l(e);return s(r)||a(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(r)),r},getInlineDataFragment:function(e){var r=l(e);return f(r)||a(!1,"GraphQLTag: Expected an inline data fragment, got `%s`.",JSON.stringify(r)),r},graphql:function(e){a(!1,"graphql: Unexpected invocation at runtime. Either the Babel transform was not set up, or it failed to identify this call site. Make sure it is being used verbatim as `graphql`. Note also that there cannot be a space between graphql and the backtick that follows.")},isFragment:i,isRequest:u,isUpdatableQuery:s,isInlineDataFragment:f}},function(e,r,t){"use strict";var n=t(11).getFragmentVariables,a=t(5),o=a.CLIENT_EDGE_TRAVERSAL_PATH,l=a.FRAGMENT_OWNER_KEY,i=a.FRAGMENT_POINTER_IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,u=a.FRAGMENTS_KEY,s=a.ID_KEY,f=t(16),c=t(0),d=t(3);function E(e,r){("object"!=typeof r||null===r||Array.isArray(r))&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(r));var t=r[s],a=r[u],f=r[l],E=r[o];if("string"==typeof t&&"object"==typeof a&&null!==a&&"object"==typeof a[e.name]&&null!==a[e.name]&&"object"==typeof f&&null!==f&&(null==E||Array.isArray(E))){var p=f,g=E,m=a[e.name];return A(e,t,n(e,p.variables,m),p,!0===m[i],g)}var _=JSON.stringify(r);return _.length>499&&(_=_.substr(0,498)+"…"),d(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`.",e.name,_,e.name),null}function p(e,r){var t=null;return r.forEach((function(r,n){var a=null!=r?E(e,r):null;null!=a&&(t=t||[]).push(a)})),null==t?null:{kind:"PluralReaderSelector",selectors:t}}function g(e,r){return null==r?r:e.metadata&&!0===e.metadata.plural?(Array.isArray(r)||c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(r),e.name),p(e,r)):(Array.isArray(r)&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(r),e.name),E(e,r))}function m(e,r){return null==r?r:e.metadata&&!0===e.metadata.plural?(Array.isArray(r)||c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(r),e.name),function(e,r){var t=null;return r.forEach((function(r){var n=null!=r?_(e,r):null;null!=n&&(t=t||[]).push(n)})),t}(e,r)):(Array.isArray(r)&&c(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(r),e.name),_(e,r))}function _(e,r){("object"!=typeof r||null===r||Array.isArray(r))&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(r));var t=r[s];return"string"==typeof t?t:(d(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`, or `null` is passed as the fragment reference for `%s` if it's conditonally included and the condition isn't met.",e.name,JSON.stringify(r),e.name,e.name),null)}function b(e,r){var t;return null==r?{}:!0===(null===(t=e.metadata)||void 0===t?void 0:t.plural)?(Array.isArray(r)||c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(r),e.name),R(e,r)):(Array.isArray(r)&&c(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(r),e.name),v(e,r)||{})}function v(e,r){var t=E(e,r);return t?t.variables:null}function R(e,r){var t={};return r.forEach((function(r,n){if(null!=r){var a=v(e,r);null!=a&&Object.assign(t,a)}})),t}function y(e,r){return e.owner===r.owner&&e.dataID===r.dataID&&e.node===r.node&&f(e.variables,r.variables)}function A(e,r,t,n){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=arguments.length>5?arguments[5]:void 0;return{kind:"SingularReaderSelector",dataID:r,isWithinUnmatchedTypeRefinement:a,clientEdgeTraversalPath:null!=o?o:null,node:e,variables:t,owner:n}}e.exports={areEqualSelectors:function(e,r){return e===r||(null==e?null==r:null==r?null==e:"SingularReaderSelector"===e.kind&&"SingularReaderSelector"===r.kind?y(e,r):"PluralReaderSelector"===e.kind&&"PluralReaderSelector"===r.kind&&(e.selectors.length===r.selectors.length&&e.selectors.every((function(e,t){return y(e,r.selectors[t])}))))},createReaderSelector:A,createNormalizationSelector:function(e,r,t){return{dataID:r,node:e,variables:t}},getDataIDsFromFragment:m,getDataIDsFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=e[n],o=r[n];t[n]=m(a,o)}return t},getSingularSelector:E,getPluralSelector:p,getSelector:g,getSelectorsFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=e[n],o=r[n];t[n]=g(a,o)}return t},getVariablesFromSingularFragment:v,getVariablesFromPluralFragment:R,getVariablesFromFragment:b,getVariablesFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=b(e[n],r[n]);Object.assign(t,a)}return t}}},function(e,r,t){"use strict";var n=(0,t(1).default)(t(4)),a=t(5).getArgumentValues,o=t(0);e.exports={getLocalVariables:function(e,r,t){if(null==r)return e;var o=(0,n.default)({},e),l=t?a(t,e):{};return r.forEach((function(e){var r,t=null!==(r=l[e.name])&&void 0!==r?r:e.defaultValue;o[e.name]=t})),o},getFragmentVariables:function(e,r,t){return null==e.argumentDefinitions?t:(e.argumentDefinitions.forEach((function(l){if(!t.hasOwnProperty(l.name))switch(a=a||(0,n.default)({},t),l.kind){case"LocalArgument":a[l.name]=l.defaultValue;break;case"RootArgument":if(!r.hasOwnProperty(l.name)){a[l.name]=void 0;break}a[l.name]=r[l.name];break;default:o(!1,"RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.",l.kind,e.name)}})),a||t);var a},getOperationVariables:function(e,r,t){var n={};return e.argumentDefinitions.forEach((function(e){var r=e.defaultValue;null!=t[e.name]&&(r=t[e.name]),n[e.name]=r})),null!=r&&Object.keys(r).forEach((function(e){n[e]=r[e].get()})),n}}},function(e,r){e.exports=a},function(e,r,t){"use strict";var n=t(14).DEFAULT_HANDLE_KEY,a=t(0);e.exports=function(e,r,t){return r&&r!==n?"__".concat(r,"_").concat(e):(null==t&&a(!1,"getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided"),"__".concat(t,"_").concat(e))}},function(e,r,t){"use strict";e.exports={DEFAULT_HANDLE_KEY:""}},function(e,r,t){"use strict";e.exports=function e(r){if(!r||"object"!=typeof r)return r;if(Array.isArray(r))return r.map(e);for(var t=Object.keys(r).sort(),n={},a=0;a<t.length;a++)n[t[a]]=e(r[t[a]]);return n}},function(e,r){e.exports=o},function(e,r,t){"use strict";var n=t(1).default,a=n(t(18)),o=n(t(4)),l=t(19),i=t(20).isSuspenseSentinel,u=t(0);function s(e,r,t){return function(){for(var n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];var s=e.apply(null,o);return null==s||i(s)?s:t?(Array.isArray(s)||u(!1,"Resolver is expected to return a plural value."),s.map((function(e){return(0,a.default)({},r,e)}))):(0,a.default)({},r,s)}}e.exports={weakObjectWrapperLive:function(e,r,t){return function(){for(var n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];var f=e.apply(null,a);return l(f)||u(!1,"Resolver is expected to return a LiveState value."),(0,o.default)((0,o.default)({},f),{},{read:s((function(){return f.read()}),r,t)})}},weakObjectWrapper:s}},function(e,r){e.exports=l},function(e,r,t){"use strict";e.exports=function(e){return null!=e&&"object"==typeof e&&"function"==typeof e.read&&"function"==typeof e.subscribe}},function(e,r,t){"use strict";var n=Object.freeze({__LIVE_RESOLVER_SUSPENSE_SENTINEL:!0});e.exports={isSuspenseSentinel:function(e){return e===n},suspenseSentinel:function(){return n}}}])}));
|