jazz-tools 0.8.44 → 0.8.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. package/.turbo/turbo-build.log +16 -10
  2. package/CHANGELOG.md +12 -0
  3. package/dist/chunk-5WLKIDKU.js +2844 -0
  4. package/dist/chunk-5WLKIDKU.js.map +1 -0
  5. package/dist/index.native.js +63 -0
  6. package/dist/index.native.js.map +1 -0
  7. package/dist/index.web.js +61 -0
  8. package/dist/index.web.js.map +1 -0
  9. package/package.json +9 -12
  10. package/src/coValues/account.ts +21 -9
  11. package/src/coValues/coFeed.ts +4 -3
  12. package/src/coValues/coList.ts +8 -5
  13. package/src/coValues/coMap.ts +6 -3
  14. package/src/coValues/deepLoading.ts +6 -12
  15. package/src/coValues/extensions/imageDef.ts +3 -1
  16. package/src/coValues/group.ts +8 -11
  17. package/src/coValues/inbox.ts +377 -0
  18. package/src/coValues/interfaces.ts +9 -6
  19. package/src/coValues/profile.ts +11 -0
  20. package/src/coValues/registeredSchemas.ts +12 -0
  21. package/src/exports.ts +21 -15
  22. package/src/implementation/anonymousJazzAgent.ts +6 -0
  23. package/src/implementation/createContext.ts +6 -7
  24. package/src/implementation/refs.ts +1 -1
  25. package/src/implementation/subscriptionScope.ts +1 -1
  26. package/src/index.native.ts +0 -1
  27. package/src/internal.ts +1 -9
  28. package/src/tests/account.test.ts +2 -2
  29. package/src/tests/coFeed.test.ts +0 -9
  30. package/src/tests/coMap.test.ts +2 -2
  31. package/src/tests/groupsAndAccounts.test.ts +1 -1
  32. package/src/tests/inbox.test.ts +256 -0
  33. package/src/tests/schemaUnion.test.ts +1 -1
  34. package/src/tests/utils.ts +14 -0
  35. package/tsup.config.ts +13 -0
  36. package/dist/native/coValues/account.js +0 -221
  37. package/dist/native/coValues/account.js.map +0 -1
  38. package/dist/native/coValues/coFeed.js +0 -571
  39. package/dist/native/coValues/coFeed.js.map +0 -1
  40. package/dist/native/coValues/coList.js +0 -404
  41. package/dist/native/coValues/coList.js.map +0 -1
  42. package/dist/native/coValues/coMap.js +0 -537
  43. package/dist/native/coValues/coMap.js.map +0 -1
  44. package/dist/native/coValues/deepLoading.js +0 -63
  45. package/dist/native/coValues/deepLoading.js.map +0 -1
  46. package/dist/native/coValues/extensions/imageDef.js +0 -42
  47. package/dist/native/coValues/extensions/imageDef.js.map +0 -1
  48. package/dist/native/coValues/group.js +0 -136
  49. package/dist/native/coValues/group.js.map +0 -1
  50. package/dist/native/coValues/interfaces.js +0 -135
  51. package/dist/native/coValues/interfaces.js.map +0 -1
  52. package/dist/native/coValues/schemaUnion.js +0 -89
  53. package/dist/native/coValues/schemaUnion.js.map +0 -1
  54. package/dist/native/exports.js +0 -5
  55. package/dist/native/exports.js.map +0 -1
  56. package/dist/native/implementation/createContext.js +0 -157
  57. package/dist/native/implementation/createContext.js.map +0 -1
  58. package/dist/native/implementation/devtoolsFormatters.js +0 -95
  59. package/dist/native/implementation/devtoolsFormatters.js.map +0 -1
  60. package/dist/native/implementation/errors.js +0 -2
  61. package/dist/native/implementation/errors.js.map +0 -1
  62. package/dist/native/implementation/inspect.js +0 -2
  63. package/dist/native/implementation/inspect.js.map +0 -1
  64. package/dist/native/implementation/refs.js +0 -115
  65. package/dist/native/implementation/refs.js.map +0 -1
  66. package/dist/native/implementation/schema.js +0 -96
  67. package/dist/native/implementation/schema.js.map +0 -1
  68. package/dist/native/implementation/subscriptionScope.js +0 -91
  69. package/dist/native/implementation/subscriptionScope.js.map +0 -1
  70. package/dist/native/implementation/symbols.js +0 -4
  71. package/dist/native/implementation/symbols.js.map +0 -1
  72. package/dist/native/index.native.js +0 -3
  73. package/dist/native/index.native.js.map +0 -1
  74. package/dist/native/internal.js +0 -18
  75. package/dist/native/internal.js.map +0 -1
  76. package/dist/native/lib/cache.js +0 -13
  77. package/dist/native/lib/cache.js.map +0 -1
  78. package/dist/native/lib/cache.test.js +0 -52
  79. package/dist/native/lib/cache.test.js.map +0 -1
  80. package/dist/web/coValues/account.js +0 -221
  81. package/dist/web/coValues/account.js.map +0 -1
  82. package/dist/web/coValues/coFeed.js +0 -571
  83. package/dist/web/coValues/coFeed.js.map +0 -1
  84. package/dist/web/coValues/coList.js +0 -404
  85. package/dist/web/coValues/coList.js.map +0 -1
  86. package/dist/web/coValues/coMap.js +0 -537
  87. package/dist/web/coValues/coMap.js.map +0 -1
  88. package/dist/web/coValues/deepLoading.js +0 -63
  89. package/dist/web/coValues/deepLoading.js.map +0 -1
  90. package/dist/web/coValues/extensions/imageDef.js +0 -42
  91. package/dist/web/coValues/extensions/imageDef.js.map +0 -1
  92. package/dist/web/coValues/group.js +0 -136
  93. package/dist/web/coValues/group.js.map +0 -1
  94. package/dist/web/coValues/interfaces.js +0 -135
  95. package/dist/web/coValues/interfaces.js.map +0 -1
  96. package/dist/web/coValues/schemaUnion.js +0 -89
  97. package/dist/web/coValues/schemaUnion.js.map +0 -1
  98. package/dist/web/exports.js +0 -5
  99. package/dist/web/exports.js.map +0 -1
  100. package/dist/web/implementation/createContext.js +0 -157
  101. package/dist/web/implementation/createContext.js.map +0 -1
  102. package/dist/web/implementation/devtoolsFormatters.js +0 -95
  103. package/dist/web/implementation/devtoolsFormatters.js.map +0 -1
  104. package/dist/web/implementation/errors.js +0 -2
  105. package/dist/web/implementation/errors.js.map +0 -1
  106. package/dist/web/implementation/inspect.js +0 -2
  107. package/dist/web/implementation/inspect.js.map +0 -1
  108. package/dist/web/implementation/refs.js +0 -115
  109. package/dist/web/implementation/refs.js.map +0 -1
  110. package/dist/web/implementation/schema.js +0 -96
  111. package/dist/web/implementation/schema.js.map +0 -1
  112. package/dist/web/implementation/subscriptionScope.js +0 -91
  113. package/dist/web/implementation/subscriptionScope.js.map +0 -1
  114. package/dist/web/implementation/symbols.js +0 -4
  115. package/dist/web/implementation/symbols.js.map +0 -1
  116. package/dist/web/index.web.js +0 -3
  117. package/dist/web/index.web.js.map +0 -1
  118. package/dist/web/internal.js +0 -18
  119. package/dist/web/internal.js.map +0 -1
  120. package/dist/web/lib/cache.js +0 -13
  121. package/dist/web/lib/cache.js.map +0 -1
  122. package/dist/web/lib/cache.test.js +0 -52
  123. package/dist/web/lib/cache.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/implementation/errors.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export const inspect = Symbol.for("nodejs.util.inspect.custom");
2
- //# sourceMappingURL=inspect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/implementation/inspect.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC"}
@@ -1,115 +0,0 @@
1
- import { instantiateRefEncoded, isRefEncoded, subscriptionsScopes, } from "../internal.js";
2
- import { coValuesCache } from "../lib/cache.js";
3
- const TRACE_ACCESSES = false;
4
- export class Ref {
5
- constructor(id, controlledAccount, schema) {
6
- this.id = id;
7
- this.controlledAccount = controlledAccount;
8
- this.schema = schema;
9
- if (!isRefEncoded(schema)) {
10
- throw new Error("Ref must be constructed with a ref schema");
11
- }
12
- }
13
- get value() {
14
- const node = "node" in this.controlledAccount
15
- ? this.controlledAccount.node
16
- : this.controlledAccount._raw.core.node;
17
- const raw = node.getLoaded(this.id);
18
- if (raw) {
19
- return coValuesCache.get(raw, () => instantiateRefEncoded(this.schema, raw));
20
- }
21
- else {
22
- return null;
23
- }
24
- }
25
- async loadHelper() {
26
- const node = "node" in this.controlledAccount
27
- ? this.controlledAccount.node
28
- : this.controlledAccount._raw.core.node;
29
- const raw = await node.load(this.id);
30
- if (raw === "unavailable") {
31
- return "unavailable";
32
- }
33
- else {
34
- return new Ref(this.id, this.controlledAccount, this.schema).value;
35
- }
36
- }
37
- async load() {
38
- const result = await this.loadHelper();
39
- if (result === "unavailable") {
40
- return undefined;
41
- }
42
- else {
43
- return result;
44
- }
45
- }
46
- accessFrom(fromScopeValue, key) {
47
- const subScope = subscriptionsScopes.get(fromScopeValue);
48
- subScope?.onRefAccessedOrSet(fromScopeValue.id, this.id);
49
- TRACE_ACCESSES &&
50
- console.log(subScope?.scopeID, "accessing", fromScopeValue, key, this.id);
51
- if (this.value && subScope) {
52
- subscriptionsScopes.set(this.value, subScope);
53
- }
54
- if (subScope) {
55
- const cached = subScope.cachedValues[this.id];
56
- if (cached) {
57
- TRACE_ACCESSES && console.log("cached", cached);
58
- return cached;
59
- }
60
- else if (this.value !== null) {
61
- const freshValueInstance = instantiateRefEncoded(this.schema, this.value?._raw);
62
- TRACE_ACCESSES && console.log("freshValueInstance", freshValueInstance);
63
- subScope.cachedValues[this.id] = freshValueInstance;
64
- subscriptionsScopes.set(freshValueInstance, subScope);
65
- return freshValueInstance;
66
- }
67
- else {
68
- return null;
69
- }
70
- }
71
- else {
72
- return this.value;
73
- }
74
- }
75
- }
76
- export function makeRefs(getIdForKey, getKeysWithIds, controlledAccount, refSchemaForKey) {
77
- const refs = {};
78
- return new Proxy(refs, {
79
- get(_target, key) {
80
- if (key === Symbol.iterator) {
81
- return function* () {
82
- for (const key of getKeysWithIds()) {
83
- yield new Ref(getIdForKey(key), controlledAccount, refSchemaForKey(key));
84
- }
85
- };
86
- }
87
- if (typeof key === "symbol")
88
- return undefined;
89
- if (key === "length") {
90
- return getKeysWithIds().length;
91
- }
92
- const id = getIdForKey(key);
93
- if (!id)
94
- return undefined;
95
- return new Ref(id, controlledAccount, refSchemaForKey(key));
96
- },
97
- ownKeys() {
98
- return getKeysWithIds().map((key) => key.toString());
99
- },
100
- getOwnPropertyDescriptor(target, key) {
101
- const id = getIdForKey(key);
102
- if (id) {
103
- return {
104
- enumerable: true,
105
- configurable: true,
106
- writable: true,
107
- };
108
- }
109
- else {
110
- return Reflect.getOwnPropertyDescriptor(target, key);
111
- }
112
- },
113
- });
114
- }
115
- //# sourceMappingURL=refs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../../src/implementation/refs.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
1
- import { ItemsSym, MembersSym, SchemaInit, isCoValueClass, } from "../internal.js";
2
- /** @category Schema definition */
3
- export const Encoders = {
4
- Date: {
5
- encode: (value) => value.toISOString(),
6
- decode: (value) => new Date(value),
7
- },
8
- };
9
- const optional = {
10
- ref: optionalRef,
11
- json() {
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- return { [SchemaInit]: "json" };
14
- },
15
- encoded(arg) {
16
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
- return { [SchemaInit]: { encoded: arg } };
18
- },
19
- string: {
20
- [SchemaInit]: "json",
21
- },
22
- number: {
23
- [SchemaInit]: "json",
24
- },
25
- boolean: {
26
- [SchemaInit]: "json",
27
- },
28
- null: {
29
- [SchemaInit]: "json",
30
- },
31
- Date: {
32
- [SchemaInit]: { encoded: Encoders.Date },
33
- },
34
- literal(..._lit) {
35
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- return { [SchemaInit]: "json" };
37
- },
38
- };
39
- /** @category Schema definition */
40
- export const co = {
41
- string: {
42
- [SchemaInit]: "json",
43
- },
44
- number: {
45
- [SchemaInit]: "json",
46
- },
47
- boolean: {
48
- [SchemaInit]: "json",
49
- },
50
- null: {
51
- [SchemaInit]: "json",
52
- },
53
- Date: {
54
- [SchemaInit]: { encoded: Encoders.Date },
55
- },
56
- literal(..._lit) {
57
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
- return { [SchemaInit]: "json" };
59
- },
60
- json() {
61
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
- return { [SchemaInit]: "json" };
63
- },
64
- encoded(arg) {
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- return { [SchemaInit]: { encoded: arg } };
67
- },
68
- ref,
69
- items: ItemsSym,
70
- members: MembersSym,
71
- optional,
72
- };
73
- function optionalRef(arg) {
74
- return ref(arg, { optional: true });
75
- }
76
- function ref(arg, options) {
77
- return {
78
- [SchemaInit]: {
79
- ref: arg,
80
- optional: options?.optional || false,
81
- },
82
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
- };
84
- }
85
- export function isRefEncoded(schema) {
86
- return (typeof schema === "object" &&
87
- "ref" in schema &&
88
- "optional" in schema &&
89
- typeof schema.ref === "function");
90
- }
91
- export function instantiateRefEncoded(schema, raw) {
92
- return isCoValueClass(schema.ref)
93
- ? schema.ref.fromRaw(raw)
94
- : schema.ref(raw).fromRaw(raw);
95
- }
96
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/implementation/schema.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- export const subscriptionsScopes = new WeakMap();
2
- const TRACE_INVALIDATIONS = false;
3
- export class SubscriptionScope {
4
- constructor(root, rootSchema, onUpdate) {
5
- this.scopeID = `scope-${Math.random().toString(36).slice(2)}`;
6
- this.entries = new Map();
7
- this.scheduledUpdate = false;
8
- this.cachedValues = {};
9
- this.parents = {};
10
- this.rootEntry = {
11
- state: "loaded",
12
- value: root._raw,
13
- rawUnsub: () => { }, // placeholder
14
- };
15
- this.entries.set(root.id, this.rootEntry);
16
- subscriptionsScopes.set(root, this);
17
- this.subscriber = root._loadedAs;
18
- this.scheduleUpdate = () => {
19
- const value = rootSchema.fromRaw(this.rootEntry.value);
20
- subscriptionsScopes.set(value, this);
21
- onUpdate(value);
22
- };
23
- this.rootEntry.rawUnsub = root._raw.core.subscribe((rawUpdate) => {
24
- if (!rawUpdate)
25
- return;
26
- this.rootEntry.value = rawUpdate;
27
- this.scheduleUpdate();
28
- });
29
- }
30
- onRefAccessedOrSet(fromId, accessedOrSetId) {
31
- // console.log("onRefAccessedOrSet", this.scopeID, accessedOrSetId);
32
- if (!accessedOrSetId) {
33
- return;
34
- }
35
- this.parents[accessedOrSetId] = this.parents[accessedOrSetId] || new Set();
36
- this.parents[accessedOrSetId].add(fromId);
37
- if (!this.entries.has(accessedOrSetId)) {
38
- const loadingEntry = {
39
- state: "loading",
40
- immediatelyUnsub: false,
41
- };
42
- this.entries.set(accessedOrSetId, loadingEntry);
43
- const node = this.subscriber._type === "Account"
44
- ? this.subscriber._raw.core.node
45
- : this.subscriber.node;
46
- void node.loadCoValueCore(accessedOrSetId).then((core) => {
47
- if (loadingEntry.state === "loading" && loadingEntry.immediatelyUnsub) {
48
- return;
49
- }
50
- if (core !== "unavailable") {
51
- const entry = {
52
- state: "loaded",
53
- rawUnsub: () => { }, // placeholder
54
- };
55
- this.entries.set(accessedOrSetId, entry);
56
- const rawUnsub = core.subscribe((rawUpdate) => {
57
- // console.log("ref update", this.scopeID, accessedOrSetId, JSON.stringify(rawUpdate))
58
- if (!rawUpdate)
59
- return;
60
- this.invalidate(accessedOrSetId);
61
- this.scheduleUpdate();
62
- });
63
- entry.rawUnsub = rawUnsub;
64
- }
65
- });
66
- }
67
- }
68
- invalidate(id, fromChild, seen = new Set()) {
69
- if (seen.has(id))
70
- return;
71
- TRACE_INVALIDATIONS &&
72
- console.log("invalidating", fromChild, "->", id, this.cachedValues[id]);
73
- delete this.cachedValues[id];
74
- seen.add(id);
75
- for (const parent of this.parents[id] || []) {
76
- this.invalidate(parent, id, seen);
77
- }
78
- }
79
- unsubscribeAll() {
80
- for (const entry of this.entries.values()) {
81
- if (entry.state === "loaded") {
82
- entry.rawUnsub();
83
- }
84
- else {
85
- entry.immediatelyUnsub = true;
86
- }
87
- }
88
- this.entries.clear();
89
- }
90
- }
91
- //# sourceMappingURL=subscriptionScope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscriptionScope.js","sourceRoot":"","sources":["../../../src/implementation/subscriptionScope.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export const SchemaInit = Symbol.for("SchemaInit");
2
- export const ItemsSym = Symbol.for("items");
3
- export const MembersSym = Symbol.for("members");
4
- //# sourceMappingURL=symbols.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/implementation/symbols.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAGnD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAG5C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from "./exports.js";
2
- export { cojsonInternals, MAX_RECOMMENDED_TX_SIZE, WasmCrypto } from "cojson";
3
- //# sourceMappingURL=index.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.web.js","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,18 +0,0 @@
1
- export * from "./implementation/symbols.js";
2
- export * from "./implementation/inspect.js";
3
- export * from "./coValues/interfaces.js";
4
- export * from "./coValues/coMap.js";
5
- export * from "./coValues/account.js";
6
- export * from "./coValues/coList.js";
7
- export * from "./coValues/coFeed.js";
8
- export * from "./coValues/schemaUnion.js";
9
- export * from "./coValues/group.js";
10
- export * from "./implementation/errors.js";
11
- export * from "./implementation/refs.js";
12
- export * from "./implementation/schema.js";
13
- export * from "./implementation/subscriptionScope.js";
14
- export * from "./coValues/deepLoading.js";
15
- export * from "./coValues/extensions/imageDef.js";
16
- export * from "./implementation/createContext.js";
17
- import "./implementation/devtoolsFormatters.js";
18
- //# sourceMappingURL=internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AAEpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAE1C,cAAc,mCAAmC,CAAC;AAElD,cAAc,mCAAmC,CAAC;AAElD,OAAO,wCAAwC,CAAC"}
@@ -1,13 +0,0 @@
1
- const weakMap = new WeakMap();
2
- export const coValuesCache = {
3
- get: (raw, compute) => {
4
- const cached = weakMap.get(raw);
5
- if (cached) {
6
- return cached;
7
- }
8
- const computed = compute();
9
- weakMap.set(raw, computed);
10
- return computed;
11
- },
12
- };
13
- //# sourceMappingURL=cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/cache.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAuB,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,CAAoB,GAAe,EAAE,OAAgB,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAW,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1,52 +0,0 @@
1
- import { describe, expect, test } from "vitest";
2
- import { coValuesCache } from "./cache.js";
3
- describe("coValuesCache", () => {
4
- test("should return computed value when not cached", () => {
5
- const mockRawValue = { type: "comap" };
6
- const mockCoValue = { id: "test" };
7
- let computeCalls = 0;
8
- const result = coValuesCache.get(mockRawValue, () => {
9
- computeCalls++;
10
- return mockCoValue;
11
- });
12
- expect(result).toBe(mockCoValue);
13
- expect(computeCalls).toBe(1);
14
- });
15
- test("should return cached value on subsequent calls", () => {
16
- const mockRawValue = { type: "comap" };
17
- const mockCoValue = { id: "test" };
18
- let computeCalls = 0;
19
- // First call
20
- const result1 = coValuesCache.get(mockRawValue, () => {
21
- computeCalls++;
22
- return mockCoValue;
23
- });
24
- // Second call with same raw value
25
- const result2 = coValuesCache.get(mockRawValue, () => {
26
- computeCalls++;
27
- return mockCoValue;
28
- });
29
- expect(result1).toBe(mockCoValue);
30
- expect(result2).toBe(mockCoValue);
31
- expect(computeCalls).toBe(1); // Compute should only be called once
32
- });
33
- test("should cache different values for different raw values", () => {
34
- const mockRawValue1 = { type: "comap" };
35
- const mockRawValue2 = { type: "colist" };
36
- const mockCoValue1 = { id: "test1" };
37
- const mockCoValue2 = { id: "test2" };
38
- let computeCalls = 0;
39
- const result1 = coValuesCache.get(mockRawValue1, () => {
40
- computeCalls++;
41
- return mockCoValue1;
42
- });
43
- const result2 = coValuesCache.get(mockRawValue2, () => {
44
- computeCalls++;
45
- return mockCoValue2;
46
- });
47
- expect(result1).toBe(mockCoValue1);
48
- expect(result2).toBe(mockCoValue2);
49
- expect(computeCalls).toBe(2); // Should compute once for each unique raw value
50
- });
51
- });
52
- //# sourceMappingURL=cache.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.test.js","sourceRoot":"","sources":["../../../src/lib/cache.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAgB,CAAC;QACrD,MAAM,WAAW,GAAG,EAAE,EAAE,EAAE,MAAM,EAAwB,CAAC;QACzD,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE;YAClD,YAAY,EAAE,CAAC;YACf,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAgB,CAAC;QACrD,MAAM,WAAW,GAAG,EAAE,EAAE,EAAE,MAAM,EAAwB,CAAC;QACzD,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,aAAa;QACb,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE;YACnD,YAAY,EAAE,CAAC;YACf,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE;YACnD,YAAY,EAAE,CAAC;YACf,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAClE,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,OAAO,EAAgB,CAAC;QACtD,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAgB,CAAC;QACvD,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,OAAO,EAAwB,CAAC;QAC3D,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,OAAO,EAAwB,CAAC;QAC3D,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE;YACpD,YAAY,EAAE,CAAC;YACf,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE;YACpD,YAAY,EAAE,CAAC;YACf,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}