@joist/observable 4.2.3-next.8 → 4.2.3

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/README.md CHANGED
@@ -29,3 +29,31 @@ const state = new AppState();
29
29
  state.todos = [...state.todos, 'Build Shit'];
30
30
  state.userName = 'Danny Blue'
31
31
  ```
32
+
33
+ ## Computed Properties
34
+
35
+ The `@observe()` decorator can also be used to create computed properties that automatically update when their dependencies change. This is done by passing a mapper function to the decorator:
36
+
37
+ ```TS
38
+ import { observe } from '@joist/observable';
39
+
40
+ class UserProfile {
41
+ @observe()
42
+ accessor firstName = "John";
43
+
44
+ @observe()
45
+ accessor lastName = "Doe";
46
+
47
+ @observe((i) => `${i.firstName} ${i.lastName}`)
48
+ accessor fullName = "";
49
+ }
50
+
51
+ const profile = new UserProfile();
52
+ console.log(profile.fullName); // "John Doe"
53
+
54
+ // When dependencies change, computed properties update automatically
55
+ profile.firstName = "Jane";
56
+ console.log(profile.fullName); // "Jane Doe"
57
+ ```
58
+
59
+ The mapper function receives the instance as its parameter and should return the computed value. The computed property will automatically update whenever any of its dependencies (properties accessed within the mapper function) change.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/observable",
3
- "version": "4.2.3-next.8",
3
+ "version": "4.2.3",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -10,6 +10,7 @@ it("should return default metadata", () => {
10
10
  changes: new Changes(),
11
11
  scheduler: null,
12
12
  bindings: new Set<() => void>(),
13
+ initialized: new Set<string | symbol>(),
13
14
  });
14
15
  });
15
16
 
@@ -13,6 +13,7 @@ export class ObservableInstanceMetadata<T> {
13
13
  scheduler: Promise<void> | null = null;
14
14
  changes: Changes<T> = new Changes();
15
15
  bindings: Set<(changes: Changes<T>) => void> = new Set();
16
+ initialized: Set<string | symbol> = new Set();
16
17
  }
17
18
 
18
19
  export class ObservableInstanceMetaDataStore extends WeakMap<
@@ -36,10 +37,7 @@ export class ObservableMetadata<T> {
36
37
  effects: Set<EffectFn<T>> = new Set();
37
38
  }
38
39
 
39
- export class ObservableMetadataStore extends WeakMap<
40
- object,
41
- ObservableMetadata<unknown>
42
- > {
40
+ export class ObservableMetadataStore extends WeakMap<object, ObservableMetadata<unknown>> {
43
41
  read<T extends object>(key: object): ObservableMetadata<T> {
44
42
  let data = this.get(key);
45
43
 
@@ -56,5 +54,4 @@ export class ObservableMetadataStore extends WeakMap<
56
54
  export const instanceMetadataStore: ObservableInstanceMetaDataStore =
57
55
  new ObservableInstanceMetaDataStore();
58
56
 
59
- export const observableMetadataStore: ObservableMetadataStore =
60
- new ObservableMetadataStore();
57
+ export const observableMetadataStore: ObservableMetadataStore = new ObservableMetadataStore();
@@ -101,3 +101,56 @@ it("should upgrade custom elements", () => {
101
101
  customElements.define("observable-1", Counter);
102
102
  });
103
103
  });
104
+
105
+ describe("computed decorator", () => {
106
+ it("should compute values based on other properties", async () => {
107
+ class TestClass {
108
+ @observe()
109
+ accessor firstName = "John";
110
+
111
+ @observe()
112
+ accessor lastName = "Doe";
113
+
114
+ @observe((i) => `${i.firstName} ${i.lastName}`)
115
+ accessor fullName = "";
116
+ }
117
+
118
+ const instance = new TestClass();
119
+ assert.equal(instance.fullName, "John Doe");
120
+
121
+ // Update dependencies
122
+ instance.firstName = "Jane";
123
+
124
+ await Promise.resolve();
125
+
126
+ assert.equal(instance.fullName, "Jane Doe");
127
+ });
128
+
129
+ it("should handle multiple computed properties", async () => {
130
+ class TestClass {
131
+ @observe()
132
+ accessor x = 2;
133
+
134
+ @observe()
135
+ accessor y = 3;
136
+
137
+ @observe((i) => i.x + i.y)
138
+ accessor sum = 0;
139
+
140
+ @observe((i) => i.x * i.y)
141
+ accessor product = 0;
142
+ }
143
+
144
+ const instance = new TestClass();
145
+ assert.equal(instance.sum, 5);
146
+ assert.equal(instance.product, 6);
147
+
148
+ // Update dependencies
149
+ instance.x = 4;
150
+
151
+ await Promise.resolve();
152
+
153
+ assert.equal(instance.sum, 7);
154
+ assert.equal(instance.product, 12);
155
+ });
156
+ });
@@ -1,18 +1,20 @@
1
- import {
2
- type EffectFn,
3
- instanceMetadataStore,
4
- observableMetadataStore,
5
- } from "./metadata.js";
1
+ import { type EffectFn, instanceMetadataStore, observableMetadataStore } from "./metadata.js";
6
2
 
7
3
  const INIT_VALUE = Symbol("init");
8
4
 
9
- export function observe() {
10
- return function observeDecorator<This extends object, Value>(
5
+ export function observe<This extends object, Value>(mapper?: (instance: This) => Value) {
6
+ return function observeDecorato(
11
7
  base: ClassAccessorDecoratorTarget<This, Value>,
12
8
  ctx: ClassAccessorDecoratorContext<This, Value>,
13
9
  ): ClassAccessorDecoratorResult<This, Value> {
14
10
  const observableMeta = observableMetadataStore.read<This>(ctx.metadata);
15
11
 
12
+ if (mapper) {
13
+ observableMeta.effects.add(function mapperFn(this: This) {
14
+ ctx.access.set(this, mapper(this));
15
+ });
16
+ }
17
+
16
18
  return {
17
19
  init(value) {
18
20
  let val: Value | typeof INIT_VALUE = INIT_VALUE;
@@ -31,6 +33,19 @@ export function observe() {
31
33
 
32
34
  return value;
33
35
  },
36
+ get() {
37
+ if (mapper) {
38
+ const instanceMeta = instanceMetadataStore.read<This>(this);
39
+
40
+ if (!instanceMeta.initialized.has(ctx.name)) {
41
+ instanceMeta.initialized.add(ctx.name);
42
+
43
+ return mapper(this);
44
+ }
45
+ }
46
+
47
+ return base.get.call(this);
48
+ },
34
49
  set(newValue: Value) {
35
50
  const oldValue = base.get.call(this);
36
51
  const instanceMeta = instanceMetadataStore.read<This>(this);
package/src/lib.ts CHANGED
@@ -1,6 +1,3 @@
1
1
  export { observe, effect } from "./lib/observe.js";
2
2
  export { Changes, Change } from "./lib/metadata.js";
3
- export {
4
- instanceMetadataStore,
5
- observableMetadataStore,
6
- } from "./lib/metadata.js";
3
+ export { instanceMetadataStore, observableMetadataStore } from "./lib/metadata.js";
@@ -9,6 +9,7 @@ export declare class ObservableInstanceMetadata<T> {
9
9
  scheduler: Promise<void> | null;
10
10
  changes: Changes<T>;
11
11
  bindings: Set<(changes: Changes<T>) => void>;
12
+ initialized: Set<string | symbol>;
12
13
  }
13
14
  export declare class ObservableInstanceMetaDataStore extends WeakMap<object, ObservableInstanceMetadata<unknown>> {
14
15
  read<T extends object>(key: T): ObservableInstanceMetadata<T>;
@@ -5,6 +5,7 @@ export class ObservableInstanceMetadata {
5
5
  scheduler = null;
6
6
  changes = new Changes();
7
7
  bindings = new Set();
8
+ initialized = new Set();
8
9
  }
9
10
  export class ObservableInstanceMetaDataStore extends WeakMap {
10
11
  read(key) {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AASvD,MAAM,OAAO,OAAW,SAAQ,GAA6B;CAAG;AAEhE,MAAM,OAAO,0BAA0B;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,OAAO,GAAe,IAAI,OAAO,EAAE,CAAC;IACpC,QAAQ,GAAuC,IAAI,GAAG,EAAE,CAAC;CAC1D;AAED,MAAM,OAAO,+BAAgC,SAAQ,OAGpD;IACC,IAAI,CAAmB,GAAM;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,0BAA0B,EAAE,CAAC;YAExC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAAqC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;CACvC;AAED,MAAM,OAAO,uBAAwB,SAAQ,OAG5C;IACC,IAAI,CAAmB,GAAW;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAA6B,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAChC,IAAI,+BAA+B,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAClC,IAAI,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AASvD,MAAM,OAAO,OAAW,SAAQ,GAA6B;CAAG;AAEhE,MAAM,OAAO,0BAA0B;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,OAAO,GAAe,IAAI,OAAO,EAAE,CAAC;IACpC,QAAQ,GAAuC,IAAI,GAAG,EAAE,CAAC;IACzD,WAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;CAC/C;AAED,MAAM,OAAO,+BAAgC,SAAQ,OAGpD;IACC,IAAI,CAAmB,GAAM;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,0BAA0B,EAAE,CAAC;YAExC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAAqC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;CACvC;AAED,MAAM,OAAO,uBAAwB,SAAQ,OAA4C;IACvF,IAAI,CAAmB,GAAW;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAA6B,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAChC,IAAI,+BAA+B,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAA4B,IAAI,uBAAuB,EAAE,CAAC"}
@@ -7,6 +7,7 @@ it("should return default metadata", () => {
7
7
  changes: new Changes(),
8
8
  scheduler: null,
9
9
  bindings: new Set(),
10
+ initialized: new Set(),
10
11
  });
11
12
  });
12
13
  it("should return the same metadata object after init", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../src/lib/metadata.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAEzE,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QACrB,OAAO,EAAE,IAAI,OAAO,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI,GAAG,EAAc;KAChC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC3D,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../src/lib/metadata.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAEzE,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QACrB,OAAO,EAAE,IAAI,OAAO,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI,GAAG,EAAc;QAC/B,WAAW,EAAE,IAAI,GAAG,EAAmB;KACxC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC3D,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { type EffectFn } from "./metadata.js";
2
- export declare function observe(): <This extends object, Value>(base: ClassAccessorDecoratorTarget<This, Value>, ctx: ClassAccessorDecoratorContext<This, Value>) => ClassAccessorDecoratorResult<This, Value>;
2
+ export declare function observe<This extends object, Value>(mapper?: (instance: This) => Value): (base: ClassAccessorDecoratorTarget<This, Value>, ctx: ClassAccessorDecoratorContext<This, Value>) => ClassAccessorDecoratorResult<This, Value>;
3
3
  export declare function effect(): <T extends object>(value: EffectFn<T>, ctx: ClassMethodDecoratorContext<T>) => void;
@@ -1,8 +1,13 @@
1
- import { instanceMetadataStore, observableMetadataStore, } from "./metadata.js";
1
+ import { instanceMetadataStore, observableMetadataStore } from "./metadata.js";
2
2
  const INIT_VALUE = Symbol("init");
3
- export function observe() {
4
- return function observeDecorator(base, ctx) {
3
+ export function observe(mapper) {
4
+ return function observeDecorato(base, ctx) {
5
5
  const observableMeta = observableMetadataStore.read(ctx.metadata);
6
+ if (mapper) {
7
+ observableMeta.effects.add(function mapperFn() {
8
+ ctx.access.set(this, mapper(this));
9
+ });
10
+ }
6
11
  return {
7
12
  init(value) {
8
13
  let val = INIT_VALUE;
@@ -16,6 +21,16 @@ export function observe() {
16
21
  }
17
22
  return value;
18
23
  },
24
+ get() {
25
+ if (mapper) {
26
+ const instanceMeta = instanceMetadataStore.read(this);
27
+ if (!instanceMeta.initialized.has(ctx.name)) {
28
+ instanceMeta.initialized.add(ctx.name);
29
+ return mapper(this);
30
+ }
31
+ }
32
+ return base.get.call(this);
33
+ },
19
34
  set(newValue) {
20
35
  const oldValue = base.get.call(this);
21
36
  const instanceMeta = instanceMetadataStore.read(this);
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/lib/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,UAAU,OAAO;IACrB,OAAO,SAAS,gBAAgB,CAC9B,IAA+C,EAC/C,GAA+C;QAE/C,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExE,OAAO;YACL,IAAI,CAAC,KAAK;gBACR,IAAI,GAAG,GAA8B,UAAU,CAAC;gBAGhD,IAAI,CAAC;oBACH,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAEV,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;oBACvB,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAEvC,OAAO,GAAG,CAAC;gBACb,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,CAAC,QAAe;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAO,IAAI,CAAC,CAAC;gBAE5D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1B,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;wBACpC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;4BACnD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gCAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;4BAC1C,CAAC;4BAED,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gCAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;4BAC3C,CAAC;4BAED,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;4BAC9B,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAkB,EAAE;wBAC/C,QAAQ;wBACR,QAAQ;qBACT,CAAC,CAAC;oBAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,SAAS,eAAe,CAC7B,KAAkB,EAClB,GAAmC;QAEnC,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/lib/observe.ts"],"names":[],"mappings":"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"}
@@ -148,4 +148,100 @@ it("should upgrade custom elements", () => {
148
148
  customElements.define("observable-1", Counter);
149
149
  });
150
150
  });
151
+ describe("computed decorator", () => {
152
+ it("should compute values based on other properties", async () => {
153
+ let TestClass = (() => {
154
+ let _firstName_decorators;
155
+ let _firstName_initializers = [];
156
+ let _firstName_extraInitializers = [];
157
+ let _lastName_decorators;
158
+ let _lastName_initializers = [];
159
+ let _lastName_extraInitializers = [];
160
+ let _fullName_decorators;
161
+ let _fullName_initializers = [];
162
+ let _fullName_extraInitializers = [];
163
+ return class TestClass {
164
+ static {
165
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
166
+ _firstName_decorators = [observe()];
167
+ _lastName_decorators = [observe()];
168
+ _fullName_decorators = [observe((i) => `${i.firstName} ${i.lastName}`)];
169
+ __esDecorate(this, null, _firstName_decorators, { kind: "accessor", name: "firstName", static: false, private: false, access: { has: obj => "firstName" in obj, get: obj => obj.firstName, set: (obj, value) => { obj.firstName = value; } }, metadata: _metadata }, _firstName_initializers, _firstName_extraInitializers);
170
+ __esDecorate(this, null, _lastName_decorators, { kind: "accessor", name: "lastName", static: false, private: false, access: { has: obj => "lastName" in obj, get: obj => obj.lastName, set: (obj, value) => { obj.lastName = value; } }, metadata: _metadata }, _lastName_initializers, _lastName_extraInitializers);
171
+ __esDecorate(this, null, _fullName_decorators, { kind: "accessor", name: "fullName", static: false, private: false, access: { has: obj => "fullName" in obj, get: obj => obj.fullName, set: (obj, value) => { obj.fullName = value; } }, metadata: _metadata }, _fullName_initializers, _fullName_extraInitializers);
172
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
173
+ }
174
+ #firstName_accessor_storage = __runInitializers(this, _firstName_initializers, "John");
175
+ get firstName() { return this.#firstName_accessor_storage; }
176
+ set firstName(value) { this.#firstName_accessor_storage = value; }
177
+ #lastName_accessor_storage = (__runInitializers(this, _firstName_extraInitializers), __runInitializers(this, _lastName_initializers, "Doe"));
178
+ get lastName() { return this.#lastName_accessor_storage; }
179
+ set lastName(value) { this.#lastName_accessor_storage = value; }
180
+ #fullName_accessor_storage = (__runInitializers(this, _lastName_extraInitializers), __runInitializers(this, _fullName_initializers, ""));
181
+ get fullName() { return this.#fullName_accessor_storage; }
182
+ set fullName(value) { this.#fullName_accessor_storage = value; }
183
+ constructor() {
184
+ __runInitializers(this, _fullName_extraInitializers);
185
+ }
186
+ };
187
+ })();
188
+ const instance = new TestClass();
189
+ assert.equal(instance.fullName, "John Doe");
190
+ instance.firstName = "Jane";
191
+ await Promise.resolve();
192
+ assert.equal(instance.fullName, "Jane Doe");
193
+ });
194
+ it("should handle multiple computed properties", async () => {
195
+ let TestClass = (() => {
196
+ let _x_decorators;
197
+ let _x_initializers = [];
198
+ let _x_extraInitializers = [];
199
+ let _y_decorators;
200
+ let _y_initializers = [];
201
+ let _y_extraInitializers = [];
202
+ let _sum_decorators;
203
+ let _sum_initializers = [];
204
+ let _sum_extraInitializers = [];
205
+ let _product_decorators;
206
+ let _product_initializers = [];
207
+ let _product_extraInitializers = [];
208
+ return class TestClass {
209
+ static {
210
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
211
+ _x_decorators = [observe()];
212
+ _y_decorators = [observe()];
213
+ _sum_decorators = [observe((i) => i.x + i.y)];
214
+ _product_decorators = [observe((i) => i.x * i.y)];
215
+ __esDecorate(this, null, _x_decorators, { kind: "accessor", name: "x", static: false, private: false, access: { has: obj => "x" in obj, get: obj => obj.x, set: (obj, value) => { obj.x = value; } }, metadata: _metadata }, _x_initializers, _x_extraInitializers);
216
+ __esDecorate(this, null, _y_decorators, { kind: "accessor", name: "y", static: false, private: false, access: { has: obj => "y" in obj, get: obj => obj.y, set: (obj, value) => { obj.y = value; } }, metadata: _metadata }, _y_initializers, _y_extraInitializers);
217
+ __esDecorate(this, null, _sum_decorators, { kind: "accessor", name: "sum", static: false, private: false, access: { has: obj => "sum" in obj, get: obj => obj.sum, set: (obj, value) => { obj.sum = value; } }, metadata: _metadata }, _sum_initializers, _sum_extraInitializers);
218
+ __esDecorate(this, null, _product_decorators, { kind: "accessor", name: "product", static: false, private: false, access: { has: obj => "product" in obj, get: obj => obj.product, set: (obj, value) => { obj.product = value; } }, metadata: _metadata }, _product_initializers, _product_extraInitializers);
219
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
220
+ }
221
+ #x_accessor_storage = __runInitializers(this, _x_initializers, 2);
222
+ get x() { return this.#x_accessor_storage; }
223
+ set x(value) { this.#x_accessor_storage = value; }
224
+ #y_accessor_storage = (__runInitializers(this, _x_extraInitializers), __runInitializers(this, _y_initializers, 3));
225
+ get y() { return this.#y_accessor_storage; }
226
+ set y(value) { this.#y_accessor_storage = value; }
227
+ #sum_accessor_storage = (__runInitializers(this, _y_extraInitializers), __runInitializers(this, _sum_initializers, 0));
228
+ get sum() { return this.#sum_accessor_storage; }
229
+ set sum(value) { this.#sum_accessor_storage = value; }
230
+ #product_accessor_storage = (__runInitializers(this, _sum_extraInitializers), __runInitializers(this, _product_initializers, 0));
231
+ get product() { return this.#product_accessor_storage; }
232
+ set product(value) { this.#product_accessor_storage = value; }
233
+ constructor() {
234
+ __runInitializers(this, _product_extraInitializers);
235
+ }
236
+ };
237
+ })();
238
+ const instance = new TestClass();
239
+ assert.equal(instance.sum, 5);
240
+ assert.equal(instance.product, 6);
241
+ instance.x = 4;
242
+ await Promise.resolve();
243
+ assert.equal(instance.sum, 7);
244
+ assert.equal(instance.product, 12);
245
+ });
246
+ });
151
247
  //# sourceMappingURL=observe.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observe.test.js","sourceRoot":"","sources":["../../src/lib/observe.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.test.js","sourceRoot":"","sources":["../../src/lib/observe.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG9B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAE7B,OAAO;;;;;;yBAAP,OAAO;;;gDACV,OAAO,EAAE;wDAGT,MAAM,EAAE;oBAFT,0KAAgB,KAAK,6BAAL,KAAK,mGAAK;oBAEhB,gMAAO,aAAa,2DAI7B;;;gBAND,MAAM,4BAFF,iDAAO,sDAEa,CAAC,GAAC;gBAA1B,MAAM,KAAU,KAAK,YAFjB,OAAO,2BAEe;gBAA1B,WAAgB,KAAK,UAFjB,OAAO,mCAEe;gBAEhB,MAAM,CAAC,aAAa;oBAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAE/B,OAAO,EAAE,CAAC;gBACZ,CAAC;;;;;;QAGH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE/B,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC7C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO;;;;;;;yBAAP,OAAO;;;yCACV,OAAO,EAAE;oDAKT,MAAM,EAAE;oBAJT,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAIT,oDAAA,yBAAA;4BACR,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BAE5B,OAAO,EAAE,CAAC;wBACZ,CAAC,cAAA,2HAJS,SAAS,yBAAT,SAAS,6DAIlB;;;gBARD,2BAFI,mDAAO,+CAEM,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAIT,IAAA,SAAS,iDAIlB;;;;;;QAGH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE/B,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAC9C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO;;;;;;yBAAP,OAAO;;;yCACV,OAAO,EAAE;4CAET,MAAM,EAAE;oBAFE,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAEpB,2KAAA,QAAQ,6DAOjB;;;gBATU,2BADP,mDAAO,+CACiB,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAEpB,QAAQ,CAAC,OAAsB;oBACvC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACrC,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,CAAC;qBACZ,CAAC,CAAC;oBAEH,OAAO,EAAE,CAAC;gBACZ,CAAC;;;;;;QAGH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO;8BAAS,WAAW;;;;;;yBAA3B,OAAQ,SAAQ,WAAW;;;yCAC9B,OAAO,EAAE;4CAST,MAAM,EAAE;oBART,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAQT,2KAAA,QAAQ,6DAIjB;;;gBAZD,2BAFI,mDAAO,+CAEM,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAEnB;oBACE,KAAK,EAAE,CAAC;;oBAER,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;iBAC/B;gBAES,QAAQ;oBAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAE9B,OAAO,EAAE,CAAC;gBACZ,CAAC;;;QAGH,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAY,CAAC;QAC7D,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;QAEf,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEzB,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACnD,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACzD,SAAS;;;;;;;;;;yBAAT,SAAS;;;6CACZ,OAAO,EAAE;4CAGT,OAAO,EAAE;4CAGT,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAL/C,gLAAS,SAAS,6BAAT,SAAS,6FAAU;oBAG5B,6KAAS,QAAQ,6BAAR,QAAQ,2FAAS;oBAG1B,6KAAS,QAAQ,6BAAR,QAAQ,2FAAM;;;gBANvB,+EAAqB,MAAM,EAAC;gBAA5B,IAAS,SAAS,+CAAU;gBAA5B,IAAS,SAAS,qDAAU;gBAG5B,qIAAoB,KAAK,GAAC;gBAA1B,IAAS,QAAQ,8CAAS;gBAA1B,IAAS,QAAQ,oDAAS;gBAG1B,oIAAoB,EAAE,GAAC;gBAAvB,IAAS,QAAQ,8CAAM;gBAAvB,IAAS,QAAQ,oDAAM;;;;;;QAGzB,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAG5C,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC;QAE5B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YACpD,SAAS;;;;;;;;;;;;;yBAAT,SAAS;;;qCACZ,OAAO,EAAE;qCAGT,OAAO,EAAE;uCAGT,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;2CAGzB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAR1B,wJAAS,CAAC,6BAAD,CAAC,6EAAK;oBAGf,wJAAS,CAAC,6BAAD,CAAC,6EAAK;oBAGf,8JAAS,GAAG,6BAAH,GAAG,iFAAK;oBAGjB,0KAAS,OAAO,6BAAP,OAAO,yFAAK;;;gBATrB,+DAAa,CAAC,EAAC;gBAAf,IAAS,CAAC,uCAAK;gBAAf,IAAS,CAAC,6CAAK;gBAGf,+GAAa,CAAC,GAAC;gBAAf,IAAS,CAAC,uCAAK;gBAAf,IAAS,CAAC,6CAAK;gBAGf,mHAAe,CAAC,GAAC;gBAAjB,IAAS,GAAG,yCAAK;gBAAjB,IAAS,GAAG,+CAAK;gBAGjB,6HAAmB,CAAC,GAAC;gBAArB,IAAS,OAAO,6CAAK;gBAArB,IAAS,OAAO,mDAAK;;;;;;QAGvB,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAGlC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QAEf,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/target/lib.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { observe, effect } from "./lib/observe.js";
2
2
  export { Changes, Change } from "./lib/metadata.js";
3
- export { instanceMetadataStore, observableMetadataStore, } from "./lib/metadata.js";
3
+ export { instanceMetadataStore, observableMetadataStore } from "./lib/metadata.js";
package/target/lib.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { observe, effect } from "./lib/observe.js";
2
2
  export { Changes } from "./lib/metadata.js";
3
- export { instanceMetadataStore, observableMetadataStore, } from "./lib/metadata.js";
3
+ export { instanceMetadataStore, observableMetadataStore } from "./lib/metadata.js";
4
4
  //# sourceMappingURL=lib.js.map
package/target/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAU,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAU,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}