@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 +2 -1
- package/src/lib/metadata.test.ts +10 -15
- package/src/lib/observe.test.ts +43 -53
- package/src/lib/observe.ts +50 -43
- package/target/lib/metadata.test.js +10 -15
- package/target/lib/metadata.test.js.map +1 -1
- package/target/lib/observe.d.ts +2 -2
- package/target/lib/observe.js +35 -31
- package/target/lib/observe.js.map +1 -1
- package/target/lib/observe.test.js +39 -69
- package/target/lib/observe.test.js.map +1 -1
- package/src/lib/watch.test.ts +0 -24
- package/src/lib/watch.ts +0 -11
- package/target/lib/watch.d.ts +0 -2
- package/target/lib/watch.js +0 -9
- package/target/lib/watch.js.map +0 -1
- package/target/lib/watch.test.d.ts +0 -1
- package/target/lib/watch.test.js +0 -35
- package/target/lib/watch.test.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joist/observable",
|
|
3
|
-
"version": "4.0.0-next.
|
|
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": [],
|
package/src/lib/metadata.test.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
import { ObservableInstanceMetaDataStore } from './metadata.js';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
scheduler: null
|
|
12
|
-
});
|
|
13
|
-
});
|
|
8
|
+
assert.deepEqual(data, { changes: new Set<string | symbol>(), scheduler: null });
|
|
9
|
+
});
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
it('should return the same metadata object after init', () => {
|
|
12
|
+
const key = {};
|
|
13
|
+
const data = new ObservableInstanceMetaDataStore();
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
});
|
|
15
|
+
assert.equal(data.read(key), data.read(key));
|
|
21
16
|
});
|
package/src/lib/observe.test.ts
CHANGED
|
@@ -1,108 +1,98 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
|
|
3
3
|
import { effect, observe } from './observe.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
it('should work with static accessors', () => {
|
|
6
|
+
return new Promise<void>((resolve) => {
|
|
7
7
|
class Counter {
|
|
8
|
-
@observe
|
|
8
|
+
@observe()
|
|
9
|
+
static accessor value = 0;
|
|
9
10
|
|
|
10
|
-
@effect static onPropChanged() {
|
|
11
|
-
|
|
11
|
+
@effect() static onPropChanged() {
|
|
12
|
+
assert.equal(Counter.value, 1);
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
resolve();
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
assert.equal(Counter.value, 0);
|
|
18
19
|
|
|
19
20
|
Counter.value++;
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
assert.equal(Counter.value, 1);
|
|
22
23
|
});
|
|
24
|
+
});
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
it('should work with instance accessors', () => {
|
|
27
|
+
return new Promise<void>((resolve) => {
|
|
25
28
|
class Counter {
|
|
26
|
-
@observe
|
|
29
|
+
@observe()
|
|
30
|
+
accessor value = 0;
|
|
27
31
|
|
|
28
32
|
// confirm it works with private methods
|
|
29
33
|
// @ts-ignore
|
|
30
|
-
@effect #onChange() {
|
|
31
|
-
|
|
34
|
+
@effect() #onChange() {
|
|
35
|
+
assert.equal(this.value, 1);
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
resolve();
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
const counter = new Counter();
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
assert.equal(counter.value, 0);
|
|
40
44
|
|
|
41
45
|
counter.value++;
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
assert.equal(counter.value, 1);
|
|
44
48
|
});
|
|
49
|
+
});
|
|
45
50
|
|
|
46
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
@observe accessor value = 0;
|
|
56
|
+
@effect() onChange(changes: Set<symbol | string>) {
|
|
57
|
+
assert.ok(changes.has('value'));
|
|
64
58
|
|
|
65
|
-
|
|
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
|
-
|
|
68
|
+
it('should upgrade custom elements', () => {
|
|
69
|
+
return new Promise<void>((resolve) => {
|
|
82
70
|
class Counter extends HTMLElement {
|
|
83
|
-
@observe
|
|
71
|
+
@observe()
|
|
72
|
+
accessor value = 0;
|
|
84
73
|
|
|
85
74
|
constructor() {
|
|
86
75
|
super();
|
|
87
76
|
|
|
88
|
-
|
|
77
|
+
assert.equal(this.value, 100);
|
|
89
78
|
}
|
|
90
79
|
|
|
91
|
-
@effect onChange() {
|
|
92
|
-
|
|
80
|
+
@effect() onChange() {
|
|
81
|
+
assert.equal(this.value, 101);
|
|
93
82
|
|
|
94
|
-
|
|
83
|
+
resolve();
|
|
95
84
|
}
|
|
96
85
|
}
|
|
97
86
|
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
const el = document.createElement('observable-1') as Counter;
|
|
88
|
+
el.value = 100;
|
|
100
89
|
|
|
101
|
-
|
|
102
|
-
el.value++;
|
|
103
|
-
});
|
|
90
|
+
document.body.append(el);
|
|
104
91
|
|
|
105
|
-
|
|
92
|
+
customElements.whenDefined('observable-1').then(() => {
|
|
93
|
+
el.value++;
|
|
106
94
|
});
|
|
95
|
+
|
|
96
|
+
customElements.define('observable-1', Counter);
|
|
107
97
|
});
|
|
108
98
|
});
|
package/src/lib/observe.ts
CHANGED
|
@@ -1,51 +1,58 @@
|
|
|
1
1
|
import { EffectFn, instanceMetadataStore, observableMetadataStore } from './metadata.js';
|
|
2
2
|
|
|
3
|
-
export function observe
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
|
|
48
|
-
|
|
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
|
-
|
|
56
|
+
data.effects.add(value);
|
|
57
|
+
};
|
|
51
58
|
}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
import { ObservableInstanceMetaDataStore } from './metadata.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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,
|
|
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"}
|
package/target/lib/observe.d.ts
CHANGED
|
@@ -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>)
|
|
3
|
-
export declare function effect<T extends object>(value: EffectFn, ctx: ClassMethodDecoratorContext<T>)
|
|
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;
|
package/target/lib/observe.js
CHANGED
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
import { instanceMetadataStore, observableMetadataStore } from './metadata.js';
|
|
2
|
-
export function observe(
|
|
3
|
-
return {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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(
|
|
34
|
-
|
|
35
|
-
|
|
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,
|
|
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 {
|
|
2
|
+
import { assert } from 'chai';
|
|
3
3
|
import { effect, observe } from './observe.js';
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
26
|
-
|
|
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
|
-
|
|
33
|
+
assert.equal(Counter.value, 0);
|
|
34
34
|
Counter.value++;
|
|
35
|
-
|
|
35
|
+
assert.equal(Counter.value, 1);
|
|
36
36
|
});
|
|
37
|
-
|
|
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
|
-
|
|
53
|
-
|
|
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
|
-
|
|
69
|
+
assert.equal(counter.value, 0);
|
|
68
70
|
counter.value++;
|
|
69
|
-
|
|
71
|
+
assert.equal(counter.value, 1);
|
|
70
72
|
});
|
|
71
|
-
|
|
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
|
-
|
|
92
|
-
|
|
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
|
-
|
|
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
|
-
|
|
131
|
+
assert.equal(this.value, 100);
|
|
162
132
|
}
|
|
163
133
|
onChange() {
|
|
164
|
-
|
|
165
|
-
|
|
134
|
+
assert.equal(this.value, 101);
|
|
135
|
+
resolve();
|
|
166
136
|
}
|
|
167
137
|
};
|
|
168
138
|
})();
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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":";AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"observe.test.js","sourceRoot":"","sources":["../../src/lib/observe.test.ts"],"names":[],"mappings":"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"}
|
package/src/lib/watch.test.ts
DELETED
|
@@ -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
|
-
}
|
package/target/lib/watch.d.ts
DELETED
package/target/lib/watch.js
DELETED
package/target/lib/watch.js.map
DELETED
|
@@ -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 {};
|
package/target/lib/watch.test.js
DELETED
|
@@ -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"}
|