@isograph/react 0.4.2 → 0.5.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.
Files changed (144) hide show
  1. package/.turbo/turbo-compile-libs.log +2 -2
  2. package/dist/core/FragmentReference.d.ts +4 -2
  3. package/dist/core/FragmentReference.d.ts.map +1 -1
  4. package/dist/core/FragmentReference.js +2 -2
  5. package/dist/core/IsographEnvironment.d.ts +19 -11
  6. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  7. package/dist/core/IsographEnvironment.js +27 -2
  8. package/dist/core/PromiseWrapper.d.ts +13 -7
  9. package/dist/core/PromiseWrapper.d.ts.map +1 -1
  10. package/dist/core/areEqualWithDeepComparison.d.ts.map +1 -1
  11. package/dist/core/areEqualWithDeepComparison.js +5 -0
  12. package/dist/core/brand.d.ts +17 -0
  13. package/dist/core/brand.d.ts.map +1 -1
  14. package/dist/core/cache.d.ts +10 -7
  15. package/dist/core/cache.d.ts.map +1 -1
  16. package/dist/core/cache.js +102 -74
  17. package/dist/core/check.d.ts +8 -4
  18. package/dist/core/check.d.ts.map +1 -1
  19. package/dist/core/check.js +10 -7
  20. package/dist/core/componentCache.d.ts +1 -1
  21. package/dist/core/componentCache.d.ts.map +1 -1
  22. package/dist/core/componentCache.js +6 -4
  23. package/dist/core/entrypoint.d.ts +17 -7
  24. package/dist/core/entrypoint.d.ts.map +1 -1
  25. package/dist/core/garbageCollection.d.ts +8 -2
  26. package/dist/core/garbageCollection.d.ts.map +1 -1
  27. package/dist/core/garbageCollection.js +36 -14
  28. package/dist/core/logging.d.ts +16 -3
  29. package/dist/core/logging.d.ts.map +1 -1
  30. package/dist/core/makeNetworkRequest.d.ts +4 -2
  31. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  32. package/dist/core/makeNetworkRequest.js +115 -38
  33. package/dist/core/optimisticProxy.d.ts +59 -0
  34. package/dist/core/optimisticProxy.d.ts.map +1 -0
  35. package/dist/core/optimisticProxy.js +399 -0
  36. package/dist/core/read.d.ts +3 -2
  37. package/dist/core/read.d.ts.map +1 -1
  38. package/dist/core/read.js +158 -123
  39. package/dist/core/reader.d.ts +10 -5
  40. package/dist/core/reader.d.ts.map +1 -1
  41. package/dist/core/startUpdate.d.ts +3 -2
  42. package/dist/core/startUpdate.d.ts.map +1 -1
  43. package/dist/core/startUpdate.js +35 -36
  44. package/dist/index.d.ts +2 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2 -1
  47. package/dist/loadable-hooks/useClientSideDefer.d.ts +9 -4
  48. package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
  49. package/dist/loadable-hooks/useClientSideDefer.js +34 -1
  50. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +5 -3
  51. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  52. package/dist/loadable-hooks/useConnectionSpecPagination.js +27 -13
  53. package/dist/loadable-hooks/useImperativeLoadableField.d.ts +1 -1
  54. package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
  55. package/dist/loadable-hooks/useSkipLimitPagination.d.ts +1 -1
  56. package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
  57. package/dist/loadable-hooks/useSkipLimitPagination.js +1 -1
  58. package/dist/react/FragmentReader.d.ts +2 -1
  59. package/dist/react/FragmentReader.d.ts.map +1 -1
  60. package/dist/react/FragmentRenderer.d.ts +2 -1
  61. package/dist/react/FragmentRenderer.d.ts.map +1 -1
  62. package/dist/react/LoadableFieldReader.d.ts +9 -3
  63. package/dist/react/LoadableFieldReader.d.ts.map +1 -1
  64. package/dist/react/LoadableFieldReader.js +40 -1
  65. package/dist/react/LoadableFieldRenderer.d.ts +9 -3
  66. package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
  67. package/dist/react/LoadableFieldRenderer.js +36 -1
  68. package/dist/react/useImperativeReference.d.ts +4 -3
  69. package/dist/react/useImperativeReference.d.ts.map +1 -1
  70. package/dist/react/useImperativeReference.js +3 -5
  71. package/dist/react/useLazyReference.d.ts +2 -1
  72. package/dist/react/useLazyReference.d.ts.map +1 -1
  73. package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
  74. package/dist/react/useReadAndSubscribe.js +1 -3
  75. package/dist/react/useResult.d.ts.map +1 -1
  76. package/dist/react/useResult.js +6 -5
  77. package/package.json +16 -17
  78. package/src/core/FragmentReference.ts +10 -4
  79. package/src/core/IsographEnvironment.ts +59 -13
  80. package/src/core/PromiseWrapper.ts +14 -7
  81. package/src/core/areEqualWithDeepComparison.ts +5 -0
  82. package/src/core/brand.ts +18 -0
  83. package/src/core/cache.ts +186 -91
  84. package/src/core/check.ts +21 -10
  85. package/src/core/componentCache.ts +8 -4
  86. package/src/core/entrypoint.ts +35 -6
  87. package/src/core/garbageCollection.ts +61 -19
  88. package/src/core/logging.ts +15 -3
  89. package/src/core/makeNetworkRequest.ts +307 -74
  90. package/src/core/optimisticProxy.ts +563 -0
  91. package/src/core/read.ts +233 -163
  92. package/src/core/reader.ts +11 -7
  93. package/src/core/startUpdate.ts +47 -32
  94. package/src/index.ts +2 -1
  95. package/src/loadable-hooks/useClientSideDefer.ts +76 -26
  96. package/src/loadable-hooks/useConnectionSpecPagination.ts +34 -17
  97. package/src/loadable-hooks/useImperativeLoadableField.ts +2 -2
  98. package/src/loadable-hooks/useSkipLimitPagination.ts +2 -3
  99. package/src/react/FragmentReader.tsx +3 -1
  100. package/src/react/FragmentRenderer.tsx +8 -1
  101. package/src/react/LoadableFieldReader.tsx +123 -12
  102. package/src/react/LoadableFieldRenderer.tsx +122 -12
  103. package/src/react/useImperativeReference.ts +20 -11
  104. package/src/react/useLazyReference.ts +17 -6
  105. package/src/react/useReadAndSubscribe.ts +1 -8
  106. package/src/react/useResult.ts +9 -11
  107. package/src/tests/__isograph/Node/__link/output_type.ts +3 -0
  108. package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +3 -3
  109. package/src/tests/__isograph/Query/linkedUpdate/entrypoint.ts +3 -1
  110. package/src/tests/__isograph/Query/linkedUpdate/param_type.ts +4 -4
  111. package/src/tests/__isograph/Query/linkedUpdate/raw_response_type.ts +13 -0
  112. package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +6 -6
  113. package/src/tests/__isograph/Query/meName/entrypoint.ts +3 -1
  114. package/src/tests/__isograph/Query/meName/raw_response_type.ts +7 -0
  115. package/src/tests/__isograph/Query/meName/resolver_reader.ts +2 -2
  116. package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +3 -1
  117. package/src/tests/__isograph/Query/meNameSuccessor/raw_response_type.ts +14 -0
  118. package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +4 -4
  119. package/src/tests/__isograph/Query/nodeField/entrypoint.ts +3 -1
  120. package/src/tests/__isograph/Query/nodeField/raw_response_type.ts +7 -0
  121. package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +2 -2
  122. package/src/tests/__isograph/Query/normalizeUndefinedField/entrypoint.ts +33 -0
  123. package/src/tests/__isograph/Query/normalizeUndefinedField/normalization_ast.ts +25 -0
  124. package/src/tests/__isograph/Query/normalizeUndefinedField/output_type.ts +3 -0
  125. package/src/tests/__isograph/Query/normalizeUndefinedField/param_type.ts +9 -0
  126. package/src/tests/__isograph/Query/normalizeUndefinedField/query_text.ts +6 -0
  127. package/src/tests/__isograph/Query/normalizeUndefinedField/raw_response_type.ts +7 -0
  128. package/src/tests/__isograph/Query/normalizeUndefinedField/resolver_reader.ts +38 -0
  129. package/src/tests/__isograph/Query/startUpdate/entrypoint.ts +3 -1
  130. package/src/tests/__isograph/Query/startUpdate/raw_response_type.ts +8 -0
  131. package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +3 -3
  132. package/src/tests/__isograph/Query/subquery/entrypoint.ts +3 -1
  133. package/src/tests/__isograph/Query/subquery/raw_response_type.ts +9 -0
  134. package/src/tests/__isograph/Query/subquery/resolver_reader.ts +3 -3
  135. package/src/tests/__isograph/iso.ts +11 -1
  136. package/src/tests/garbageCollection.test.ts +8 -5
  137. package/src/tests/meNameSuccessor.ts +6 -3
  138. package/src/tests/nodeQuery.ts +4 -2
  139. package/src/tests/normalizeData.test.ts +89 -15
  140. package/src/tests/optimisticProxy.test.ts +860 -0
  141. package/src/tests/startUpdate.test.ts +8 -6
  142. package/vitest.config.ts +10 -1
  143. package/src/tests/__isograph/Economist/link/output_type.ts +0 -2
  144. package/src/tests/__isograph/Node/link/output_type.ts +0 -3
@@ -4,14 +4,14 @@ import type { ExtractUpdatableData } from '../core/FragmentReference';
4
4
  import {
5
5
  createIsographEnvironment,
6
6
  ROOT_ID,
7
- type IsographStore,
7
+ type BaseStoreLayerData,
8
8
  } from '../core/IsographEnvironment';
9
9
  import { createUpdatableProxy } from '../core/startUpdate';
10
10
  import { iso } from './__isograph/iso';
11
11
  import type { Query__linkedUpdate__param } from './__isograph/Query/linkedUpdate/param_type';
12
12
  import type { Query__startUpdate__param } from './__isograph/Query/startUpdate/param_type';
13
13
 
14
- const getDefaultStore = (): IsographStore => ({
14
+ const getDefaultStore = (): BaseStoreLayerData => ({
15
15
  Query: {
16
16
  [ROOT_ID]: {
17
17
  node____id___0: {
@@ -56,7 +56,7 @@ export const linkedUpdate = iso(`
56
56
  }
57
57
  }
58
58
  john_stuart_mill: node(id: 1) {
59
- link
59
+ __link
60
60
  asEconomist {
61
61
  name
62
62
  }
@@ -88,6 +88,7 @@ describe('startUpdate', () => {
88
88
 
89
89
  data = createUpdatableProxy(
90
90
  environment,
91
+ environment.store,
91
92
  item,
92
93
  {
93
94
  suspendIfInFlight: true,
@@ -100,7 +101,7 @@ describe('startUpdate', () => {
100
101
  test('updates updatable scalar nested in updatable object', () => {
101
102
  data.node!.asEconomist!.name = 'Updated Jeremy Bentham';
102
103
 
103
- expect(environment.store).toMatchObject({
104
+ expect(environment.store.data).toMatchObject({
104
105
  Economist: {
105
106
  '0': {
106
107
  name: 'Updated Jeremy Bentham',
@@ -126,7 +127,7 @@ describe('startUpdate', () => {
126
127
  data.node = data.john_stuart_mill;
127
128
  jeremy!.asEconomist!.name = 'Updated Jeremy Bentham';
128
129
 
129
- expect(environment.store).toMatchObject({
130
+ expect(environment.store.data).toMatchObject({
130
131
  Economist: {
131
132
  '0': {
132
133
  name: 'Updated Jeremy Bentham',
@@ -159,6 +160,7 @@ describe('startUpdate', () => {
159
160
 
160
161
  data = createUpdatableProxy(
161
162
  environment,
163
+ environment.store,
162
164
  item,
163
165
  {
164
166
  suspendIfInFlight: true,
@@ -181,7 +183,7 @@ describe('startUpdate', () => {
181
183
  test('updates scalar in cache', () => {
182
184
  data.node!.asEconomist!.name = 'Foo';
183
185
 
184
- expect(environment.store).toMatchObject({
186
+ expect(environment.store.data).toMatchObject({
185
187
  Economist: {
186
188
  0: {
187
189
  name: 'Foo',
package/vitest.config.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import path from 'node:path';
1
2
  import babel from 'vite-plugin-babel';
2
3
  import commonjs from 'vite-plugin-commonjs';
3
4
  import { defineProject } from 'vitest/config';
@@ -8,7 +9,15 @@ export default defineProject({
8
9
  filter: /\.[jt]sx?$/,
9
10
  babelConfig: {
10
11
  presets: ['@babel/preset-typescript'],
11
- plugins: [require('../isograph-babel-plugin/BabelPluginIsograph')],
12
+ plugins: [
13
+ [
14
+ path.join(
15
+ __dirname,
16
+ '../isograph-babel-plugin/BabelPluginIsograph',
17
+ ),
18
+ { searchFrom: __dirname },
19
+ ],
20
+ ],
12
21
  },
13
22
  }),
14
23
  commonjs({
@@ -1,2 +0,0 @@
1
- import type { Link } from '@isograph/react';
2
- export type Economist__link__output_type = Link<"Economist">;
@@ -1,3 +0,0 @@
1
- import type { Link } from '@isograph/react';
2
- export type Node__link__output_type =
3
- | Link<"Economist">;