@joist/observable 4.0.0-next.4 → 4.0.0-next.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/observable",
3
- "version": "4.0.0-next.4",
3
+ "version": "4.0.0-next.6",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -57,6 +57,7 @@
57
57
  "test": {
58
58
  "command": "wtr --config wtr.config.mjs",
59
59
  "files": [
60
+ "wtr.config.mjs",
60
61
  "target/**"
61
62
  ],
62
63
  "output": [],
@@ -1,21 +1,16 @@
1
- import { expect } from '@open-wc/testing';
1
+ import { assert } from 'chai';
2
2
  import { ObservableInstanceMetaDataStore } from './metadata.js';
3
3
 
4
- describe('meta:meta', () => {
5
- it('should return default metadata', () => {
6
- const key = {};
7
- const data = new ObservableInstanceMetaDataStore().read(key);
4
+ it('should return default metadata', () => {
5
+ const key = {};
6
+ const data = new ObservableInstanceMetaDataStore().read(key);
8
7
 
9
- expect(data).to.deep.equal({
10
- changes: new Set(),
11
- scheduler: null
12
- });
13
- });
8
+ assert.deepEqual(data, { changes: new Set<string | symbol>(), scheduler: null });
9
+ });
14
10
 
15
- it('should return the same metadata object after init', () => {
16
- const key = {};
17
- const data = new ObservableInstanceMetaDataStore();
11
+ it('should return the same metadata object after init', () => {
12
+ const key = {};
13
+ const data = new ObservableInstanceMetaDataStore();
18
14
 
19
- expect(data.read(key)).to.equal(data.read(key));
20
- });
15
+ assert.equal(data.read(key), data.read(key));
21
16
  });
@@ -1,108 +1,98 @@
1
- import { expect, fixture, html } from '@open-wc/testing';
1
+ import { assert } from 'chai';
2
2
 
3
3
  import { effect, observe } from './observe.js';
4
4
 
5
- describe('observable: observe()', () => {
6
- it('should work with static accessors', (done) => {
5
+ it('should work with static accessors', () => {
6
+ return new Promise<void>((resolve) => {
7
7
  class Counter {
8
- @observe static accessor value = 0;
8
+ @observe()
9
+ static accessor value = 0;
9
10
 
10
- @effect static onPropChanged() {
11
- expect(Counter.value).to.equal(1);
11
+ @effect() static onPropChanged() {
12
+ assert.equal(Counter.value, 1);
12
13
 
13
- done();
14
+ resolve();
14
15
  }
15
16
  }
16
17
 
17
- expect(Counter.value).to.equal(0);
18
+ assert.equal(Counter.value, 0);
18
19
 
19
20
  Counter.value++;
20
21
 
21
- expect(Counter.value).to.equal(1);
22
+ assert.equal(Counter.value, 1);
22
23
  });
24
+ });
23
25
 
24
- it('should work with instance accessors', (done) => {
26
+ it('should work with instance accessors', () => {
27
+ return new Promise<void>((resolve) => {
25
28
  class Counter {
26
- @observe accessor value = 0;
29
+ @observe()
30
+ accessor value = 0;
27
31
 
28
32
  // confirm it works with private methods
29
33
  // @ts-ignore
30
- @effect #onChange() {
31
- expect(this.value).to.equal(1);
34
+ @effect() #onChange() {
35
+ assert.equal(this.value, 1);
32
36
 
33
- done();
37
+ resolve();
34
38
  }
35
39
  }
36
40
 
37
41
  const counter = new Counter();
38
42
 
39
- expect(counter.value).to.equal(0);
43
+ assert.equal(counter.value, 0);
40
44
 
41
45
  counter.value++;
42
46
 
43
- expect(counter.value).to.equal(1);
47
+ assert.equal(counter.value, 1);
44
48
  });
49
+ });
45
50
 
46
- it('should return a set of changed props', (done) => {
51
+ it('should return a set of changed props', () => {
52
+ return new Promise<void>((resolve) => {
47
53
  class Counter {
48
- @observe accessor value = 0;
49
-
50
- @effect onChange(changes: Set<symbol | string>) {
51
- expect(changes.has('value')).to.be.true;
52
-
53
- done();
54
- }
55
- }
56
-
57
- const counter = new Counter();
58
- counter.value++;
59
- });
54
+ @observe() accessor value = 0;
60
55
 
61
- it('should work as an even emitter', (done) => {
62
- class Counter extends EventTarget {
63
- @observe accessor value = 0;
56
+ @effect() onChange(changes: Set<symbol | string>) {
57
+ assert.ok(changes.has('value'));
64
58
 
65
- @effect onChange() {
66
- this.dispatchEvent(new Event('changed'));
59
+ resolve();
67
60
  }
68
61
  }
69
62
 
70
63
  const counter = new Counter();
71
-
72
- counter.addEventListener('changed', () => {
73
- expect(counter.value).to.equal(1);
74
-
75
- done();
76
- });
77
-
78
64
  counter.value++;
79
65
  });
66
+ });
80
67
 
81
- it('should upgrade custom elements', (done) => {
68
+ it('should upgrade custom elements', () => {
69
+ return new Promise<void>((resolve) => {
82
70
  class Counter extends HTMLElement {
83
- @observe accessor value = 0;
71
+ @observe()
72
+ accessor value = 0;
84
73
 
85
74
  constructor() {
86
75
  super();
87
76
 
88
- expect(this.value).to.equal(100);
77
+ assert.equal(this.value, 100);
89
78
  }
90
79
 
91
- @effect onChange() {
92
- expect(this.value).to.equal(101);
80
+ @effect() onChange() {
81
+ assert.equal(this.value, 101);
93
82
 
94
- done();
83
+ resolve();
95
84
  }
96
85
  }
97
86
 
98
- fixture<any>(html`<observable-1></observable-1>`).then((el) => {
99
- el.value = 100;
87
+ const el = document.createElement('observable-1') as Counter;
88
+ el.value = 100;
100
89
 
101
- customElements.whenDefined('observable-1').then(() => {
102
- el.value++;
103
- });
90
+ document.body.append(el);
104
91
 
105
- customElements.define('observable-1', Counter);
92
+ customElements.whenDefined('observable-1').then(() => {
93
+ el.value++;
106
94
  });
95
+
96
+ customElements.define('observable-1', Counter);
107
97
  });
108
98
  });
@@ -1,51 +1,58 @@
1
1
  import { EffectFn, instanceMetadataStore, observableMetadataStore } from './metadata.js';
2
2
 
3
- export function observe<This extends object, Value>(
4
- base: ClassAccessorDecoratorTarget<This, Value>,
5
- ctx: ClassAccessorDecoratorContext<This, Value>
6
- ): ClassAccessorDecoratorResult<This, Value> {
7
- return {
8
- init(value) {
9
- let val: Value | null = null;
10
-
11
- // START: Make upgradable custom elements work
12
- try {
13
- val = ctx.access.get(this);
14
- } catch {}
15
-
16
- if (val) {
17
- delete (<any>this)[ctx.name];
18
-
19
- return val;
3
+ export function observe() {
4
+ return function observeDecorator<This extends object, Value>(
5
+ base: ClassAccessorDecoratorTarget<This, Value>,
6
+ ctx: ClassAccessorDecoratorContext<This, Value>
7
+ ): ClassAccessorDecoratorResult<This, Value> {
8
+ return {
9
+ init(value) {
10
+ let val: Value | null = null;
11
+
12
+ // START: Make upgradable custom elements work
13
+ try {
14
+ val = ctx.access.get(this);
15
+ } catch {}
16
+
17
+ if (val) {
18
+ delete (<any>this)[ctx.name];
19
+
20
+ return val;
21
+ }
22
+ // END
23
+
24
+ return value;
25
+ },
26
+ set(value) {
27
+ const instanceMeta = instanceMetadataStore.read(this);
28
+ const observableMeta = observableMetadataStore.read(ctx.metadata);
29
+
30
+ if (instanceMeta.scheduler === null) {
31
+ instanceMeta.scheduler = Promise.resolve().then(() => {
32
+ for (let effect of observableMeta.effects) {
33
+ effect.call(this, instanceMeta.changes);
34
+ }
35
+
36
+ instanceMeta.scheduler = null;
37
+ instanceMeta.changes.clear();
38
+ });
39
+ }
40
+
41
+ instanceMeta.changes.add(ctx.name);
42
+
43
+ base.set.call(this, value);
20
44
  }
21
- // END
22
-
23
- return value;
24
- },
25
- set(value) {
26
- const instanceMeta = instanceMetadataStore.read(this);
27
- const observableMeta = observableMetadataStore.read(ctx.metadata);
28
-
29
- if (instanceMeta.scheduler === null) {
30
- instanceMeta.scheduler = Promise.resolve().then(() => {
31
- for (let effect of observableMeta.effects) {
32
- effect.call(this, instanceMeta.changes);
33
- }
34
-
35
- instanceMeta.scheduler = null;
36
- instanceMeta.changes.clear();
37
- });
38
- }
39
-
40
- instanceMeta.changes.add(ctx.name);
41
-
42
- base.set.call(this, value);
43
- }
45
+ };
44
46
  };
45
47
  }
46
48
 
47
- export function effect<T extends object>(value: EffectFn, ctx: ClassMethodDecoratorContext<T>) {
48
- const data = observableMetadataStore.read(ctx.metadata);
49
+ export function effect() {
50
+ return function effectDecorator<T extends object>(
51
+ value: EffectFn,
52
+ ctx: ClassMethodDecoratorContext<T>
53
+ ) {
54
+ const data = observableMetadataStore.read(ctx.metadata);
49
55
 
50
- data.effects.add(value);
56
+ data.effects.add(value);
57
+ };
51
58
  }
@@ -1,18 +1,13 @@
1
- import { expect } from '@open-wc/testing';
1
+ import { assert } from 'chai';
2
2
  import { ObservableInstanceMetaDataStore } from './metadata.js';
3
- describe('meta:meta', () => {
4
- it('should return default metadata', () => {
5
- const key = {};
6
- const data = new ObservableInstanceMetaDataStore().read(key);
7
- expect(data).to.deep.equal({
8
- changes: new Set(),
9
- scheduler: null
10
- });
11
- });
12
- it('should return the same metadata object after init', () => {
13
- const key = {};
14
- const data = new ObservableInstanceMetaDataStore();
15
- expect(data.read(key)).to.equal(data.read(key));
16
- });
3
+ it('should return default metadata', () => {
4
+ const key = {};
5
+ const data = new ObservableInstanceMetaDataStore().read(key);
6
+ assert.deepEqual(data, { changes: new Set(), scheduler: null });
7
+ });
8
+ it('should return the same metadata object after init', () => {
9
+ const key = {};
10
+ const data = new ObservableInstanceMetaDataStore();
11
+ assert.equal(data.read(key), data.read(key));
17
12
  });
18
13
  //# sourceMappingURL=metadata.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../src/lib/metadata.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAEhE,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7D,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,+BAA+B,EAAE,CAAC;QAEnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,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;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAEhE,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,EAAE,OAAO,EAAE,IAAI,GAAG,EAAmB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACnF,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 { EffectFn } from './metadata.js';
2
- export declare function observe<This extends object, Value>(base: ClassAccessorDecoratorTarget<This, Value>, ctx: ClassAccessorDecoratorContext<This, Value>): ClassAccessorDecoratorResult<This, Value>;
3
- export declare function effect<T extends object>(value: EffectFn, ctx: ClassMethodDecoratorContext<T>): void;
2
+ export declare function observe(): <This extends object, Value>(base: ClassAccessorDecoratorTarget<This, Value>, ctx: ClassAccessorDecoratorContext<This, Value>) => ClassAccessorDecoratorResult<This, Value>;
3
+ export declare function effect(): <T extends object>(value: EffectFn, ctx: ClassMethodDecoratorContext<T>) => void;
@@ -1,37 +1,41 @@
1
1
  import { instanceMetadataStore, observableMetadataStore } from './metadata.js';
2
- export function observe(base, ctx) {
3
- return {
4
- init(value) {
5
- let val = null;
6
- try {
7
- val = ctx.access.get(this);
2
+ export function observe() {
3
+ return function observeDecorator(base, ctx) {
4
+ return {
5
+ init(value) {
6
+ let val = null;
7
+ try {
8
+ val = ctx.access.get(this);
9
+ }
10
+ catch { }
11
+ if (val) {
12
+ delete this[ctx.name];
13
+ return val;
14
+ }
15
+ return value;
16
+ },
17
+ set(value) {
18
+ const instanceMeta = instanceMetadataStore.read(this);
19
+ const observableMeta = observableMetadataStore.read(ctx.metadata);
20
+ if (instanceMeta.scheduler === null) {
21
+ instanceMeta.scheduler = Promise.resolve().then(() => {
22
+ for (let effect of observableMeta.effects) {
23
+ effect.call(this, instanceMeta.changes);
24
+ }
25
+ instanceMeta.scheduler = null;
26
+ instanceMeta.changes.clear();
27
+ });
28
+ }
29
+ instanceMeta.changes.add(ctx.name);
30
+ base.set.call(this, value);
8
31
  }
9
- catch { }
10
- if (val) {
11
- delete this[ctx.name];
12
- return val;
13
- }
14
- return value;
15
- },
16
- set(value) {
17
- const instanceMeta = instanceMetadataStore.read(this);
18
- const observableMeta = observableMetadataStore.read(ctx.metadata);
19
- if (instanceMeta.scheduler === null) {
20
- instanceMeta.scheduler = Promise.resolve().then(() => {
21
- for (let effect of observableMeta.effects) {
22
- effect.call(this, instanceMeta.changes);
23
- }
24
- instanceMeta.scheduler = null;
25
- instanceMeta.changes.clear();
26
- });
27
- }
28
- instanceMeta.changes.add(ctx.name);
29
- base.set.call(this, value);
30
- }
32
+ };
31
33
  };
32
34
  }
33
- export function effect(value, ctx) {
34
- const data = observableMetadataStore.read(ctx.metadata);
35
- data.effects.add(value);
35
+ export function effect() {
36
+ return function effectDecorator(value, ctx) {
37
+ const data = observableMetadataStore.read(ctx.metadata);
38
+ data.effects.add(value);
39
+ };
36
40
  }
37
41
  //# sourceMappingURL=observe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/lib/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAEzF,MAAM,UAAU,OAAO,CACrB,IAA+C,EAC/C,GAA+C;IAE/C,OAAO;QACL,IAAI,CAAC,KAAK;YACR,IAAI,GAAG,GAAiB,IAAI,CAAC;YAG7B,IAAI,CAAC;gBACH,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,IAAI,GAAG,EAAE,CAAC;gBACR,OAAa,IAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAE7B,OAAO,GAAG,CAAC;YACb,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,GAAG,CAAC,KAAK;YACP,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAElE,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACpC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;oBACnD,KAAK,IAAI,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;wBAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;oBAC1C,CAAC;oBAED,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC9B,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;YAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAmB,KAAe,EAAE,GAAmC;IAC3F,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAExD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/lib/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAEzF,MAAM,UAAU,OAAO;IACrB,OAAO,SAAS,gBAAgB,CAC9B,IAA+C,EAC/C,GAA+C;QAE/C,OAAO;YACL,IAAI,CAAC,KAAK;gBACR,IAAI,GAAG,GAAiB,IAAI,CAAC;gBAG7B,IAAI,CAAC;oBACH,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAEV,IAAI,GAAG,EAAE,CAAC;oBACR,OAAa,IAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAE7B,OAAO,GAAG,CAAC;gBACb,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,CAAC,KAAK;gBACP,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAElE,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;oBACpC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;wBACnD,KAAK,IAAI,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;4BAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;wBAC1C,CAAC;wBAED,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;wBAC9B,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC/B,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,SAAS,eAAe,CAC7B,KAAe,EACf,GAAmC;QAEnC,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
2
- import { expect, fixture, html } from '@open-wc/testing';
2
+ import { assert } from 'chai';
3
3
  import { effect, observe } from './observe.js';
4
- describe('observable: observe()', () => {
5
- it('should work with static accessors', (done) => {
4
+ it('should work with static accessors', () => {
5
+ return new Promise((resolve) => {
6
6
  let Counter = (() => {
7
7
  let _staticExtraInitializers = [];
8
8
  let _static_value_decorators;
@@ -12,8 +12,8 @@ describe('observable: observe()', () => {
12
12
  return class Counter {
13
13
  static {
14
14
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
15
- _static_value_decorators = [observe];
16
- _static_onPropChanged_decorators = [effect];
15
+ _static_value_decorators = [observe()];
16
+ _static_onPropChanged_decorators = [effect()];
17
17
  __esDecorate(this, null, _static_value_decorators, { kind: "accessor", name: "value", static: true, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _static_value_initializers, _static_value_extraInitializers);
18
18
  __esDecorate(this, null, _static_onPropChanged_decorators, { kind: "method", name: "onPropChanged", static: true, private: false, access: { has: obj => "onPropChanged" in obj, get: obj => obj.onPropChanged }, metadata: _metadata }, null, _staticExtraInitializers);
19
19
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -22,19 +22,21 @@ describe('observable: observe()', () => {
22
22
  static get value() { return Counter.#value_accessor_storage; }
23
23
  static set value(value) { Counter.#value_accessor_storage = value; }
24
24
  static onPropChanged() {
25
- expect(Counter.value).to.equal(1);
26
- done();
25
+ assert.equal(Counter.value, 1);
26
+ resolve();
27
27
  }
28
28
  static {
29
29
  __runInitializers(this, _static_value_extraInitializers);
30
30
  }
31
31
  };
32
32
  })();
33
- expect(Counter.value).to.equal(0);
33
+ assert.equal(Counter.value, 0);
34
34
  Counter.value++;
35
- expect(Counter.value).to.equal(1);
35
+ assert.equal(Counter.value, 1);
36
36
  });
37
- it('should work with instance accessors', (done) => {
37
+ });
38
+ it('should work with instance accessors', () => {
39
+ return new Promise((resolve) => {
38
40
  let Counter = (() => {
39
41
  let _instanceExtraInitializers = [];
40
42
  let _value_decorators;
@@ -45,12 +47,12 @@ describe('observable: observe()', () => {
45
47
  return class Counter {
46
48
  static {
47
49
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
48
- _value_decorators = [observe];
49
- _private_onChange_decorators = [effect];
50
+ _value_decorators = [observe()];
51
+ _private_onChange_decorators = [effect()];
50
52
  __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
51
53
  __esDecorate(this, _private_onChange_descriptor = { value: __setFunctionName(function () {
52
- expect(this.value).to.equal(1);
53
- done();
54
+ assert.equal(this.value, 1);
55
+ resolve();
54
56
  }, "#onChange") }, _private_onChange_decorators, { kind: "method", name: "#onChange", static: false, private: true, access: { has: obj => #onChange in obj, get: obj => obj.#onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
55
57
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
56
58
  }
@@ -64,11 +66,13 @@ describe('observable: observe()', () => {
64
66
  };
65
67
  })();
66
68
  const counter = new Counter();
67
- expect(counter.value).to.equal(0);
69
+ assert.equal(counter.value, 0);
68
70
  counter.value++;
69
- expect(counter.value).to.equal(1);
71
+ assert.equal(counter.value, 1);
70
72
  });
71
- it('should return a set of changed props', (done) => {
73
+ });
74
+ it('should return a set of changed props', () => {
75
+ return new Promise((resolve) => {
72
76
  let Counter = (() => {
73
77
  let _instanceExtraInitializers = [];
74
78
  let _value_decorators;
@@ -78,8 +82,8 @@ describe('observable: observe()', () => {
78
82
  return class Counter {
79
83
  static {
80
84
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
81
- _value_decorators = [observe];
82
- _onChange_decorators = [effect];
85
+ _value_decorators = [observe()];
86
+ _onChange_decorators = [effect()];
83
87
  __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
84
88
  __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
85
89
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -88,54 +92,20 @@ describe('observable: observe()', () => {
88
92
  get value() { return this.#value_accessor_storage; }
89
93
  set value(value) { this.#value_accessor_storage = value; }
90
94
  onChange(changes) {
91
- expect(changes.has('value')).to.be.true;
92
- done();
93
- }
94
- constructor() {
95
- __runInitializers(this, _value_extraInitializers);
96
- }
97
- };
98
- })();
99
- const counter = new Counter();
100
- counter.value++;
101
- });
102
- it('should work as an even emitter', (done) => {
103
- let Counter = (() => {
104
- let _classSuper = EventTarget;
105
- let _instanceExtraInitializers = [];
106
- let _value_decorators;
107
- let _value_initializers = [];
108
- let _value_extraInitializers = [];
109
- let _onChange_decorators;
110
- return class Counter extends _classSuper {
111
- static {
112
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
113
- _value_decorators = [observe];
114
- _onChange_decorators = [effect];
115
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
116
- __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
117
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
118
- }
119
- #value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, 0));
120
- get value() { return this.#value_accessor_storage; }
121
- set value(value) { this.#value_accessor_storage = value; }
122
- onChange() {
123
- this.dispatchEvent(new Event('changed'));
95
+ assert.ok(changes.has('value'));
96
+ resolve();
124
97
  }
125
98
  constructor() {
126
- super(...arguments);
127
99
  __runInitializers(this, _value_extraInitializers);
128
100
  }
129
101
  };
130
102
  })();
131
103
  const counter = new Counter();
132
- counter.addEventListener('changed', () => {
133
- expect(counter.value).to.equal(1);
134
- done();
135
- });
136
104
  counter.value++;
137
105
  });
138
- it('should upgrade custom elements', (done) => {
106
+ });
107
+ it('should upgrade custom elements', () => {
108
+ return new Promise((resolve) => {
139
109
  let Counter = (() => {
140
110
  let _classSuper = HTMLElement;
141
111
  let _instanceExtraInitializers = [];
@@ -146,8 +116,8 @@ describe('observable: observe()', () => {
146
116
  return class Counter extends _classSuper {
147
117
  static {
148
118
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
149
- _value_decorators = [observe];
150
- _onChange_decorators = [effect];
119
+ _value_decorators = [observe()];
120
+ _onChange_decorators = [effect()];
151
121
  __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
152
122
  __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
153
123
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -158,21 +128,21 @@ describe('observable: observe()', () => {
158
128
  constructor() {
159
129
  super();
160
130
  __runInitializers(this, _value_extraInitializers);
161
- expect(this.value).to.equal(100);
131
+ assert.equal(this.value, 100);
162
132
  }
163
133
  onChange() {
164
- expect(this.value).to.equal(101);
165
- done();
134
+ assert.equal(this.value, 101);
135
+ resolve();
166
136
  }
167
137
  };
168
138
  })();
169
- fixture(html `<observable-1></observable-1>`).then((el) => {
170
- el.value = 100;
171
- customElements.whenDefined('observable-1').then(() => {
172
- el.value++;
173
- });
174
- customElements.define('observable-1', Counter);
139
+ const el = document.createElement('observable-1');
140
+ el.value = 100;
141
+ document.body.append(el);
142
+ customElements.whenDefined('observable-1').then(() => {
143
+ el.value++;
175
144
  });
145
+ customElements.define('observable-1', Counter);
176
146
  });
177
147
  });
178
148
  //# 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":"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"}
@@ -1,24 +0,0 @@
1
- import { expect } from '@open-wc/testing';
2
-
3
- import { observe } from './observe.js';
4
- import { watch } from './watch.js';
5
-
6
- describe('observable: observe()', () => {
7
- it('should watch externally from the class', (done) => {
8
- class Counter {
9
- @observe static accessor value = 0;
10
- }
11
-
12
- watch(Counter, () => {
13
- expect(Counter.value).to.equal(1);
14
-
15
- done();
16
- });
17
-
18
- expect(Counter.value).to.equal(0);
19
-
20
- Counter.value++;
21
-
22
- expect(Counter.value).to.equal(1);
23
- });
24
- });
package/src/lib/watch.ts DELETED
@@ -1,11 +0,0 @@
1
- import { EffectFn, observableMetadataStore } from './metadata.js';
2
-
3
- export function watch(value: new () => object, cb: EffectFn) {
4
- const key = value[Symbol.metadata];
5
-
6
- if (key) {
7
- const meta = observableMetadataStore.read(key);
8
-
9
- meta.effects.add(cb);
10
- }
11
- }
@@ -1,2 +0,0 @@
1
- import { EffectFn } from './metadata.js';
2
- export declare function watch(value: new () => object, cb: EffectFn): void;
@@ -1,9 +0,0 @@
1
- import { observableMetadataStore } from './metadata.js';
2
- export function watch(value, cb) {
3
- const key = value[Symbol.metadata];
4
- if (key) {
5
- const meta = observableMetadataStore.read(key);
6
- meta.effects.add(cb);
7
- }
8
- }
9
- //# sourceMappingURL=watch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/lib/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,UAAU,KAAK,CAAC,KAAuB,EAAE,EAAY;IACzD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,35 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { expect } from '@open-wc/testing';
3
- import { observe } from './observe.js';
4
- import { watch } from './watch.js';
5
- describe('observable: observe()', () => {
6
- it('should watch externally from the class', (done) => {
7
- let Counter = (() => {
8
- let _static_value_decorators;
9
- let _static_value_initializers = [];
10
- let _static_value_extraInitializers = [];
11
- return class Counter {
12
- static {
13
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
14
- _static_value_decorators = [observe];
15
- __esDecorate(this, null, _static_value_decorators, { kind: "accessor", name: "value", static: true, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _static_value_initializers, _static_value_extraInitializers);
16
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
17
- }
18
- static #value_accessor_storage = __runInitializers(this, _static_value_initializers, 0);
19
- static get value() { return Counter.#value_accessor_storage; }
20
- static set value(value) { Counter.#value_accessor_storage = value; }
21
- static {
22
- __runInitializers(this, _static_value_extraInitializers);
23
- }
24
- };
25
- })();
26
- watch(Counter, () => {
27
- expect(Counter.value).to.equal(1);
28
- done();
29
- });
30
- expect(Counter.value).to.equal(0);
31
- Counter.value++;
32
- expect(Counter.value).to.equal(1);
33
- });
34
- });
35
- //# sourceMappingURL=watch.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.test.js","sourceRoot":"","sources":["../../src/lib/watch.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,wCAAwC,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9C,OAAO;;;;yBAAP,OAAO;;;gDACV,OAAO;oBAAC,0KAAgB,KAAK,6BAAL,KAAK,mGAAK;;;gBAA1B,MAAM,+EAAkB,CAAC,EAAC;gBAA1B,MAAM,KAAU,KAAK,YAD1B,OAAO,2BACwB;gBAA1B,WAAgB,KAAK,UAD1B,OAAO,mCACwB;;;;;;QAGrC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}