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 CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-d0afc516
2
+ * Relay v0.0.0-main-e2a7e960
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
@@ -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 weakObjectWrapper = require('./store/experimental-live-resolvers/weakObjectWrapper');
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-d0afc516
2
+ * Relay v0.0.0-main-e2a7e960
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
@@ -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 weakObjectWrapper = require('./store/experimental-live-resolvers/weakObjectWrapper');
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
- function weakObjectWrapper(resolverFn, key, isPlural) {
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 = weakObjectWrapper;
67
+ module.exports = {
68
+ weakObjectWrapperLive: weakObjectWrapperLive,
69
+ weakObjectWrapper: weakObjectWrapper
70
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "relay-runtime",
3
3
  "description": "A core runtime for building GraphQL-driven applications.",
4
- "version": "0.0.0-main-d0afc516",
4
+ "version": "0.0.0-main-e2a7e960",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "relay"