jazz-tools 0.7.0-alpha.34 → 0.7.0-alpha.35

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,9 @@
1
1
 
2
- > jazz-tools@0.7.0-alpha.32 build /Users/anselm/jazz/jazz/packages/jazz-tools
2
+ > jazz-tools@0.7.0-alpha.34 build /Users/anselm/jazz/jazz/packages/jazz-tools
3
3
  > npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
5
5
 
6
- > jazz-tools@0.7.0-alpha.32 lint
6
+ > jazz-tools@0.7.0-alpha.34 lint
7
7
  > eslint src/**/*.ts
8
8
 
9
9
 
@@ -76,7 +76,9 @@
76
76
  83:17 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
77
77
 
78
78
  /Users/anselm/jazz/jazz/packages/jazz-tools/src/implementation/subscriptionScope.ts
79
- 6:23 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
79
+ 13:23 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
80
+ 67:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
81
+ 69:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
80
82
 
81
83
  /Users/anselm/jazz/jazz/packages/jazz-tools/src/tests/coList.test.ts
82
84
  0:0 warning File ignored because of a matching ignore pattern. Use "--no-ignore" to override
@@ -90,5 +92,5 @@
90
92
  /Users/anselm/jazz/jazz/packages/jazz-tools/src/tests/groupsAndAccounts.test.ts
91
93
  0:0 warning File ignored because of a matching ignore pattern. Use "--no-ignore" to override
92
94
 
93
- 59 problems (0 errors, 59 warnings)
95
+ 61 problems (0 errors, 61 warnings)
94
96
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # jazz-autosub
2
2
 
3
+ ## 0.7.0-alpha.35
4
+
5
+ ### Patch Changes
6
+
7
+ - Cache CoValue proxies
8
+ - Updated dependencies
9
+ - cojson@0.7.0-alpha.35
10
+ - cojson-transport-nodejs-ws@0.7.0-alpha.35
11
+
3
12
  ## 0.7.0-alpha.34
4
13
 
5
14
  ### Patch Changes
@@ -1,5 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
  import { instantiateRefEncoded, isRefEncoded, subscriptionsScopes, } from "../internal.js";
3
+ const refCache = new WeakMap();
3
4
  export class Ref {
4
5
  constructor(id, controlledAccount, schema) {
5
6
  this.id = id;
@@ -10,13 +11,17 @@ export class Ref {
10
11
  }
11
12
  }
12
13
  get value() {
13
- if (this.cachedValue)
14
- return this.cachedValue;
15
14
  // TODO: cache it for object identity!!!
16
15
  const raw = this.controlledAccount._raw.core.node.getLoaded(this.id);
17
16
  if (raw) {
18
- const value = instantiateRefEncoded(this.schema, raw);
19
- this.cachedValue = value;
17
+ let value = refCache.get(raw);
18
+ if (value) {
19
+ // console.log("Using cached value for " + this.id);
20
+ }
21
+ else {
22
+ value = instantiateRefEncoded(this.schema, raw);
23
+ refCache.set(raw, value);
24
+ }
20
25
  return value;
21
26
  }
22
27
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/implementation/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/implementation/refs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,13 +5,13 @@
5
5
  "types": "./src/index.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.7.0-alpha.34",
8
+ "version": "0.7.0-alpha.35",
9
9
  "dependencies": {
10
10
  "@effect/schema": "^0.66.16",
11
11
  "effect": "^3.1.3",
12
12
  "fast-check": "^3.17.2",
13
- "cojson": "0.7.0-alpha.29",
14
- "cojson-transport-nodejs-ws": "0.7.0-alpha.29"
13
+ "cojson": "0.7.0-alpha.35",
14
+ "cojson-transport-nodejs-ws": "0.7.0-alpha.35"
15
15
  },
16
16
  "devDependencies": {
17
17
  "typescript": "^5.3.3",
@@ -14,9 +14,9 @@ import {
14
14
  subscriptionsScopes,
15
15
  } from "../internal.js";
16
16
 
17
- export class Ref<out V extends CoValue> {
18
- private cachedValue: V | undefined;
17
+ const refCache = new WeakMap<RawCoValue, CoValue>();
19
18
 
19
+ export class Ref<out V extends CoValue> {
20
20
  constructor(
21
21
  readonly id: ID<V>,
22
22
  readonly controlledAccount: Account & Me,
@@ -28,15 +28,19 @@ export class Ref<out V extends CoValue> {
28
28
  }
29
29
 
30
30
  get value() {
31
- if (this.cachedValue) return this.cachedValue;
32
31
  // TODO: cache it for object identity!!!
33
32
  const raw = this.controlledAccount._raw.core.node.getLoaded(
34
33
  this.id as unknown as CoID<RawCoValue>
35
34
  );
36
35
  if (raw) {
37
- const value = instantiateRefEncoded(this.schema, raw);
38
- this.cachedValue = value;
39
- return value;
36
+ let value = refCache.get(raw);
37
+ if (value) {
38
+ // console.log("Using cached value for " + this.id);
39
+ } else {
40
+ value = instantiateRefEncoded(this.schema, raw);
41
+ refCache.set(raw, value);
42
+ }
43
+ return value as V;
40
44
  } else {
41
45
  return null;
42
46
  }