relay-runtime 0.0.0-main-d0afc516 → 0.0.0-main-e2a7e960
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/experimental.js.flow +5 -1
- package/index.js +1 -1
- package/lib/experimental.js +4 -1
- package/lib/store/experimental-live-resolvers/LiveResolverCache.js +2 -5
- package/lib/store/experimental-live-resolvers/isLiveStateValue.js +15 -0
- package/lib/store/experimental-live-resolvers/weakObjectWrapper.js +35 -2
- package/package.json +1 -1
- package/relay-runtime-experimental.js +2 -2
- package/relay-runtime-experimental.min.js +2 -2
- package/relay-runtime.js +1 -1
- package/relay-runtime.min.js +1 -1
- package/store/experimental-live-resolvers/LiveResolverCache.js.flow +1 -10
- package/store/experimental-live-resolvers/isLiveStateValue.js.flow +21 -0
- package/store/experimental-live-resolvers/weakObjectWrapper.js.flow +38 -1
package/experimental.js
CHANGED
package/experimental.js.flow
CHANGED
|
@@ -17,12 +17,16 @@ const {
|
|
|
17
17
|
suspenseSentinel,
|
|
18
18
|
} = require('./store/experimental-live-resolvers/LiveResolverSuspenseSentinel');
|
|
19
19
|
const resolverDataInjector = require('./store/experimental-live-resolvers/resolverDataInjector');
|
|
20
|
-
const
|
|
20
|
+
const {
|
|
21
|
+
weakObjectWrapper,
|
|
22
|
+
weakObjectWrapperLive,
|
|
23
|
+
} = require('./store/experimental-live-resolvers/weakObjectWrapper');
|
|
21
24
|
|
|
22
25
|
module.exports = {
|
|
23
26
|
resolverDataInjector,
|
|
24
27
|
isSuspenseSentinel,
|
|
25
28
|
LiveResolverStore,
|
|
26
29
|
weakObjectWrapper,
|
|
30
|
+
weakObjectWrapperLive,
|
|
27
31
|
suspenseSentinel,
|
|
28
32
|
};
|
package/index.js
CHANGED
package/lib/experimental.js
CHANGED
|
@@ -18,12 +18,15 @@ var _require = require('./store/experimental-live-resolvers/LiveResolverSuspense
|
|
|
18
18
|
|
|
19
19
|
var resolverDataInjector = require('./store/experimental-live-resolvers/resolverDataInjector');
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _require2 = require('./store/experimental-live-resolvers/weakObjectWrapper'),
|
|
22
|
+
weakObjectWrapper = _require2.weakObjectWrapper,
|
|
23
|
+
weakObjectWrapperLive = _require2.weakObjectWrapperLive;
|
|
22
24
|
|
|
23
25
|
module.exports = {
|
|
24
26
|
resolverDataInjector: resolverDataInjector,
|
|
25
27
|
isSuspenseSentinel: isSuspenseSentinel,
|
|
26
28
|
LiveResolverStore: LiveResolverStore,
|
|
27
29
|
weakObjectWrapper: weakObjectWrapper,
|
|
30
|
+
weakObjectWrapperLive: weakObjectWrapperLive,
|
|
28
31
|
suspenseSentinel: suspenseSentinel
|
|
29
32
|
};
|
|
@@ -56,6 +56,8 @@ var RELAY_RESOLVER_LIVE_STATE_DIRTY = '__resolverLiveStateDirty';
|
|
|
56
56
|
var RELAY_RESOLVER_RECORD_TYPENAME = '__RELAY_RESOLVER__';
|
|
57
57
|
|
|
58
58
|
var getOutputTypeRecordIDs = require('./getOutputTypeRecordIDs');
|
|
59
|
+
|
|
60
|
+
var isLiveStateValue = require('./isLiveStateValue');
|
|
59
61
|
/**
|
|
60
62
|
* An experimental fork of store/ResolverCache.js intended to let us experiment
|
|
61
63
|
* with Live Resolvers.
|
|
@@ -697,11 +699,6 @@ function expectRecord(source, recordID) {
|
|
|
697
699
|
var record = source.get(recordID);
|
|
698
700
|
!(record != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a record with ID `%s` to exist in the record source.', recordID) : invariant(false) : void 0;
|
|
699
701
|
return record;
|
|
700
|
-
} // Validate that a value is live state
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
function isLiveStateValue(v) {
|
|
704
|
-
return v != null && typeof v === 'object' && typeof v.read === 'function' && typeof v.subscribe === 'function';
|
|
705
702
|
}
|
|
706
703
|
|
|
707
704
|
function getUpdatedDataIDs(updatedRecords) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and 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
|
+
* @oncall relay
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
module.exports = function isLiveStateValue(v) {
|
|
14
|
+
return v != null && typeof v === 'object' && typeof v.read === 'function' && typeof v.subscribe === 'function';
|
|
15
|
+
};
|
|
@@ -13,14 +13,44 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
13
13
|
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
|
|
16
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
17
|
+
|
|
16
18
|
var invariant = require('invariant');
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
var isLiveStateValue = require('./isLiveStateValue');
|
|
21
|
+
/**
|
|
22
|
+
* Wrap the return `value` of the @live resolver that return @weak
|
|
23
|
+
* object into {`key`: `value`} object.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
function weakObjectWrapperLive(resolverFn, key, isPlural) {
|
|
19
28
|
return function () {
|
|
20
29
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
21
30
|
args[_key] = arguments[_key];
|
|
22
31
|
}
|
|
23
32
|
|
|
33
|
+
var liveState = resolverFn.apply(null, args);
|
|
34
|
+
!isLiveStateValue(liveState) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Resolver is expected to return a LiveState value.') : invariant(false) : void 0;
|
|
35
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, liveState), {}, {
|
|
36
|
+
read: weakObjectWrapper(function () {
|
|
37
|
+
return liveState.read();
|
|
38
|
+
}, key, isPlural)
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Wrap the return `value` of the resolver that return @weak
|
|
44
|
+
* object into {`key`: `value`} object.
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
function weakObjectWrapper(resolverFn, key, isPlural) {
|
|
49
|
+
return function () {
|
|
50
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
51
|
+
args[_key2] = arguments[_key2];
|
|
52
|
+
}
|
|
53
|
+
|
|
24
54
|
var data = resolverFn.apply(null, args);
|
|
25
55
|
|
|
26
56
|
if (isPlural) {
|
|
@@ -34,4 +64,7 @@ function weakObjectWrapper(resolverFn, key, isPlural) {
|
|
|
34
64
|
};
|
|
35
65
|
}
|
|
36
66
|
|
|
37
|
-
module.exports =
|
|
67
|
+
module.exports = {
|
|
68
|
+
weakObjectWrapperLive: weakObjectWrapperLive,
|
|
69
|
+
weakObjectWrapper: weakObjectWrapper
|
|
70
|
+
};
|