@joist/observable 3.1.1 → 3.1.2
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 +1 -1
- package/target/lib/{meta.d.ts → metadata.d.ts} +3 -4
- package/target/lib/{meta.js → metadata.js} +6 -5
- package/target/lib/metadata.js.map +1 -0
- package/target/lib/{meta.test.js → metadata.test.js} +2 -3
- package/target/lib/metadata.test.js.map +1 -0
- package/target/lib/observe.d.ts +1 -1
- package/target/lib/observe.js +9 -16
- package/target/lib/observe.js.map +1 -1
- package/target/lib/observe.test.js +28 -11
- package/target/lib/observe.test.js.map +1 -1
- package/target/lib/watch.d.ts +1 -1
- package/target/lib/watch.js +1 -1
- package/target/lib/watch.js.map +1 -1
- package/target/lib/watch.test.js +5 -3
- package/target/lib/watch.test.js.map +1 -1
- package/target/lib/meta.js.map +0 -1
- package/target/lib/meta.test.js.map +0 -1
- /package/target/lib/{meta.test.d.ts → metadata.test.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export type EffectFn = (changes: Set<string | symbol>) => void;
|
|
2
|
-
export declare abstract class MetadataStore<
|
|
2
|
+
export declare abstract class MetadataStore<Metadata> {
|
|
3
3
|
#private;
|
|
4
|
-
read<T extends object>(value: T):
|
|
5
|
-
abstract init():
|
|
4
|
+
read<T extends object>(value: T): Metadata;
|
|
5
|
+
abstract init(): Metadata;
|
|
6
6
|
}
|
|
7
7
|
export declare class ObservableInstanceMetadata {
|
|
8
8
|
scheduler: Promise<void> | null;
|
|
9
|
-
upgradable: Map<string | symbol, unknown>;
|
|
10
9
|
changes: Set<string | symbol>;
|
|
11
10
|
}
|
|
12
11
|
export declare class ObservableInstanceMetaDataStore extends MetadataStore<ObservableInstanceMetadata> {
|
|
@@ -2,15 +2,16 @@ Symbol.metadata ??= Symbol('Symbol.metadata');
|
|
|
2
2
|
export class MetadataStore {
|
|
3
3
|
#data = new WeakMap();
|
|
4
4
|
read(value) {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
let data = this.#data.get(value);
|
|
6
|
+
if (!data) {
|
|
7
|
+
data = this.init();
|
|
8
|
+
this.#data.set(value, data);
|
|
7
9
|
}
|
|
8
|
-
return
|
|
10
|
+
return data;
|
|
9
11
|
}
|
|
10
12
|
}
|
|
11
13
|
export class ObservableInstanceMetadata {
|
|
12
14
|
scheduler = null;
|
|
13
|
-
upgradable = new Map();
|
|
14
15
|
changes = new Set();
|
|
15
16
|
}
|
|
16
17
|
export class ObservableInstanceMetaDataStore extends MetadataStore {
|
|
@@ -28,4 +29,4 @@ export class ObservableMetadataStore extends MetadataStore {
|
|
|
28
29
|
}
|
|
29
30
|
export const instanceMetadataStore = new ObservableInstanceMetaDataStore();
|
|
30
31
|
export const observableMetadataStore = new ObservableMetadataStore();
|
|
31
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +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;AAIvD,MAAM,OAAgB,aAAa;IACjC,KAAK,GAAG,IAAI,OAAO,EAAoB,CAAC;IAExC,IAAI,CAAmB,KAAQ;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAED,MAAM,OAAO,0BAA0B;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;CACtC;AAED,MAAM,OAAO,+BAAgC,SAAQ,aAAyC;IAC5F,IAAI;QACF,OAAO,IAAI,0BAA0B,EAAE,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAkB,IAAI,GAAG,EAAE,CAAC;CACpC;AAED,MAAM,OAAO,uBAAwB,SAAQ,aAAiC;IAC5E,IAAI;QACF,OAAO,IAAI,kBAAkB,EAAE,CAAC;IAClC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,+BAA+B,EAAE,CAAC;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { expect } from '@open-wc/testing';
|
|
2
|
-
import { ObservableInstanceMetaDataStore } from './
|
|
2
|
+
import { ObservableInstanceMetaDataStore } from './metadata.js';
|
|
3
3
|
describe('meta:meta', () => {
|
|
4
4
|
it('should return default metadata', () => {
|
|
5
5
|
const key = {};
|
|
6
6
|
const data = new ObservableInstanceMetaDataStore().read(key);
|
|
7
7
|
expect(data).to.deep.equal({
|
|
8
8
|
changes: new Set(),
|
|
9
|
-
upgradable: new Map(),
|
|
10
9
|
scheduler: null,
|
|
11
10
|
});
|
|
12
11
|
});
|
|
@@ -16,4 +15,4 @@ describe('meta:meta', () => {
|
|
|
16
15
|
expect(data.read(key)).to.equal(data.read(key));
|
|
17
16
|
});
|
|
18
17
|
});
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=metadata.test.js.map
|
|
@@ -0,0 +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"}
|
package/target/lib/observe.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { EffectFn } from './
|
|
1
|
+
import { EffectFn } from './metadata.js';
|
|
2
2
|
export declare function observe<This extends object, Value>(base: ClassAccessorDecoratorTarget<This, Value>, ctx: ClassAccessorDecoratorContext<This, Value>): ClassAccessorDecoratorResult<This, Value>;
|
|
3
3
|
export declare function effect<T extends object>(value: EffectFn, ctx: ClassMethodDecoratorContext<T>): void;
|
package/target/lib/observe.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
import { instanceMetadataStore, observableMetadataStore } from './
|
|
1
|
+
import { instanceMetadataStore, observableMetadataStore } from './metadata.js';
|
|
2
2
|
export function observe(base, ctx) {
|
|
3
|
-
ctx.addInitializer(function () {
|
|
4
|
-
const instanceMeta = instanceMetadataStore.read(this);
|
|
5
|
-
let value;
|
|
6
|
-
try {
|
|
7
|
-
value = ctx.access.get(this);
|
|
8
|
-
}
|
|
9
|
-
catch { }
|
|
10
|
-
if (value) {
|
|
11
|
-
delete this[ctx.name];
|
|
12
|
-
instanceMeta.upgradable.set(ctx.name, value);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
3
|
return {
|
|
16
4
|
init(value) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
let val = null;
|
|
6
|
+
try {
|
|
7
|
+
val = ctx.access.get(this);
|
|
8
|
+
}
|
|
9
|
+
catch { }
|
|
10
|
+
if (val) {
|
|
11
|
+
delete this[ctx.name];
|
|
12
|
+
return val;
|
|
20
13
|
}
|
|
21
14
|
return value;
|
|
22
15
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/lib/observe.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -7,24 +7,27 @@ describe('observable: observe()', () => {
|
|
|
7
7
|
let _staticExtraInitializers = [];
|
|
8
8
|
let _static_value_decorators;
|
|
9
9
|
let _static_value_initializers = [];
|
|
10
|
+
let _static_value_extraInitializers = [];
|
|
10
11
|
let _static_onPropChanged_decorators;
|
|
11
12
|
return class Counter {
|
|
12
13
|
static {
|
|
13
14
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
14
15
|
_static_value_decorators = [observe];
|
|
15
16
|
_static_onPropChanged_decorators = [effect];
|
|
16
|
-
__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,
|
|
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);
|
|
17
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);
|
|
18
19
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
19
|
-
__runInitializers(this, _staticExtraInitializers);
|
|
20
20
|
}
|
|
21
|
-
static #value_accessor_storage = __runInitializers(this, _static_value_initializers, 0);
|
|
21
|
+
static #value_accessor_storage = (__runInitializers(this, _staticExtraInitializers), __runInitializers(this, _static_value_initializers, 0));
|
|
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
25
|
expect(Counter.value).to.equal(1);
|
|
26
26
|
done();
|
|
27
27
|
}
|
|
28
|
+
static {
|
|
29
|
+
__runInitializers(this, _static_value_extraInitializers);
|
|
30
|
+
}
|
|
28
31
|
};
|
|
29
32
|
})();
|
|
30
33
|
expect(Counter.value).to.equal(0);
|
|
@@ -36,6 +39,7 @@ describe('observable: observe()', () => {
|
|
|
36
39
|
let _instanceExtraInitializers = [];
|
|
37
40
|
let _value_decorators;
|
|
38
41
|
let _value_initializers = [];
|
|
42
|
+
let _value_extraInitializers = [];
|
|
39
43
|
let _private_onChange_decorators;
|
|
40
44
|
let _private_onChange_descriptor;
|
|
41
45
|
return class Counter {
|
|
@@ -43,7 +47,7 @@ describe('observable: observe()', () => {
|
|
|
43
47
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
44
48
|
_value_decorators = [observe];
|
|
45
49
|
_private_onChange_decorators = [effect];
|
|
46
|
-
__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,
|
|
50
|
+
__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);
|
|
47
51
|
__esDecorate(this, _private_onChange_descriptor = { value: __setFunctionName(function () {
|
|
48
52
|
expect(this.value).to.equal(1);
|
|
49
53
|
done();
|
|
@@ -54,6 +58,9 @@ describe('observable: observe()', () => {
|
|
|
54
58
|
get value() { return this.#value_accessor_storage; }
|
|
55
59
|
set value(value) { this.#value_accessor_storage = value; }
|
|
56
60
|
get #onChange() { return _private_onChange_descriptor.value; }
|
|
61
|
+
constructor() {
|
|
62
|
+
__runInitializers(this, _value_extraInitializers);
|
|
63
|
+
}
|
|
57
64
|
};
|
|
58
65
|
})();
|
|
59
66
|
const counter = new Counter();
|
|
@@ -66,13 +73,14 @@ describe('observable: observe()', () => {
|
|
|
66
73
|
let _instanceExtraInitializers = [];
|
|
67
74
|
let _value_decorators;
|
|
68
75
|
let _value_initializers = [];
|
|
76
|
+
let _value_extraInitializers = [];
|
|
69
77
|
let _onChange_decorators;
|
|
70
78
|
return class Counter {
|
|
71
79
|
static {
|
|
72
80
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
73
81
|
_value_decorators = [observe];
|
|
74
82
|
_onChange_decorators = [effect];
|
|
75
|
-
__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,
|
|
83
|
+
__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);
|
|
76
84
|
__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);
|
|
77
85
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
78
86
|
}
|
|
@@ -81,14 +89,14 @@ describe('observable: observe()', () => {
|
|
|
81
89
|
set value(value) { this.#value_accessor_storage = value; }
|
|
82
90
|
onChange(changes) {
|
|
83
91
|
expect(changes.has('value')).to.be.true;
|
|
84
|
-
console.log('####################', this.value);
|
|
85
92
|
done();
|
|
86
93
|
}
|
|
94
|
+
constructor() {
|
|
95
|
+
__runInitializers(this, _value_extraInitializers);
|
|
96
|
+
}
|
|
87
97
|
};
|
|
88
98
|
})();
|
|
89
99
|
const counter = new Counter();
|
|
90
|
-
const counter2 = new Counter();
|
|
91
|
-
console.log(counter2);
|
|
92
100
|
counter.value++;
|
|
93
101
|
});
|
|
94
102
|
it('should work as an even emitter', (done) => {
|
|
@@ -97,13 +105,14 @@ describe('observable: observe()', () => {
|
|
|
97
105
|
let _instanceExtraInitializers = [];
|
|
98
106
|
let _value_decorators;
|
|
99
107
|
let _value_initializers = [];
|
|
108
|
+
let _value_extraInitializers = [];
|
|
100
109
|
let _onChange_decorators;
|
|
101
110
|
return class Counter extends _classSuper {
|
|
102
111
|
static {
|
|
103
112
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
104
113
|
_value_decorators = [observe];
|
|
105
114
|
_onChange_decorators = [effect];
|
|
106
|
-
__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,
|
|
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);
|
|
107
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);
|
|
108
117
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
109
118
|
}
|
|
@@ -113,6 +122,10 @@ describe('observable: observe()', () => {
|
|
|
113
122
|
onChange() {
|
|
114
123
|
this.dispatchEvent(new Event('changed'));
|
|
115
124
|
}
|
|
125
|
+
constructor() {
|
|
126
|
+
super(...arguments);
|
|
127
|
+
__runInitializers(this, _value_extraInitializers);
|
|
128
|
+
}
|
|
116
129
|
};
|
|
117
130
|
})();
|
|
118
131
|
const counter = new Counter();
|
|
@@ -128,13 +141,14 @@ describe('observable: observe()', () => {
|
|
|
128
141
|
let _instanceExtraInitializers = [];
|
|
129
142
|
let _value_decorators;
|
|
130
143
|
let _value_initializers = [];
|
|
144
|
+
let _value_extraInitializers = [];
|
|
131
145
|
let _onChange_decorators;
|
|
132
146
|
return class Counter extends _classSuper {
|
|
133
147
|
static {
|
|
134
148
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
135
149
|
_value_decorators = [observe];
|
|
136
150
|
_onChange_decorators = [effect];
|
|
137
|
-
__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,
|
|
151
|
+
__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);
|
|
138
152
|
__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);
|
|
139
153
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
140
154
|
}
|
|
@@ -143,6 +157,7 @@ describe('observable: observe()', () => {
|
|
|
143
157
|
set value(value) { this.#value_accessor_storage = value; }
|
|
144
158
|
constructor() {
|
|
145
159
|
super();
|
|
160
|
+
__runInitializers(this, _value_extraInitializers);
|
|
146
161
|
expect(this.value).to.equal(100);
|
|
147
162
|
}
|
|
148
163
|
onChange() {
|
|
@@ -153,8 +168,10 @@ describe('observable: observe()', () => {
|
|
|
153
168
|
})();
|
|
154
169
|
fixture(html `<observable-1></observable-1>`).then((el) => {
|
|
155
170
|
el.value = 100;
|
|
171
|
+
customElements.whenDefined('observable-1').then(() => {
|
|
172
|
+
el.value++;
|
|
173
|
+
});
|
|
156
174
|
customElements.define('observable-1', Counter);
|
|
157
|
-
el.value++;
|
|
158
175
|
});
|
|
159
176
|
});
|
|
160
177
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.test.js","sourceRoot":"","sources":["../../src/lib/observe.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,mCAAmC,EAAE,CAAC,IAAI,EAAE,EAAE;YACzC,OAAO
|
|
1
|
+
{"version":3,"file":"observe.test.js","sourceRoot":"","sources":["../../src/lib/observe.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,mCAAmC,EAAE,CAAC,IAAI,EAAE,EAAE;YACzC,OAAO;;;;;;yBAAP,OAAO;;;gDACV,OAAO;wDAEP,MAAM;oBAFE,0KAAgB,KAAK,6BAAL,KAAK,mGAAK;oBAE3B,gMAAO,aAAa,2DAI3B;;;gBANQ,MAAM,4BADX,iDAAO,sDACsB,CAAC,GAAC;gBAA1B,MAAM,KAAU,KAAK,YAD1B,OAAO,2BACwB;gBAA1B,WAAgB,KAAK,UAD1B,OAAO,mCACwB;gBAE3B,MAAM,CAAC,aAAa;oBAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAElC,IAAI,EAAE,CAAC;gBACT,CAAC;;;;;;QAGH,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;IAEH,EAAE,CAAC,qCAAqC,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3C,OAAO;;;;;;;yBAAP,OAAO;;;yCACV,OAAO;oDAIP,MAAM;oBAJE,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAIpB,oDAAA,yBAAA;4BACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAE/B,IAAI,EAAE,CAAC;wBACT,CAAC,cAAA,2HAJO,SAAS,yBAAT,SAAS,6DAIhB;;;gBARQ,2BADL,mDAAO,+CACe,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAIpB,IAAA,SAAS,iDAIhB;;;;;;QAGH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,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;IAEH,EAAE,CAAC,sCAAsC,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5C,OAAO;;;;;;yBAAP,OAAO;;;yCACV,OAAO;4CAEP,MAAM;oBAFE,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAEpB,2KAAA,QAAQ,6DAIf;;;gBANQ,2BADL,mDAAO,+CACe,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAEpB,QAAQ,CAAC,OAA6B;oBAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAExC,IAAI,EAAE,CAAC;gBACT,CAAC;;;;;;QAGH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,OAAO;8BAAS,WAAW;;;;;;yBAA3B,OAAQ,SAAQ,WAAW;;;yCAC9B,OAAO;4CAEP,MAAM;oBAFE,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAEpB,2KAAA,QAAQ,6DAEf;;;gBAJQ,2BADL,mDAAO,+CACe,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAEpB,QAAQ;oBACd,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3C,CAAC;;;;;;;QAGH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,OAAO;8BAAS,WAAW;;;;;;yBAA3B,OAAQ,SAAQ,WAAW;;;yCAC9B,OAAO;4CAQP,MAAM;oBARE,oKAAS,KAAK,6BAAL,KAAK,qFAAK;oBAQpB,2KAAA,QAAQ,6DAIf;;;gBAZQ,2BADL,mDAAO,+CACe,CAAC,GAAC;gBAAnB,IAAS,KAAK,2CAAK;gBAAnB,IAAS,KAAK,iDAAK;gBAE5B;oBACE,KAAK,EAAE,CAAC;;oBAER,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAClC;gBAEO,QAAQ;oBACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAEjC,IAAI,EAAE,CAAC;gBACT,CAAC;;;QAGH,OAAO,CAAM,IAAI,CAAA,+BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YAC5D,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;YAEf,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnD,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/target/lib/watch.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EffectFn } from './
|
|
1
|
+
import { EffectFn } from './metadata.js';
|
|
2
2
|
export declare function watch(value: new () => object, cb: EffectFn): void;
|
package/target/lib/watch.js
CHANGED
package/target/lib/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/lib/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,uBAAuB,EAAE,MAAM,
|
|
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"}
|
package/target/lib/watch.test.js
CHANGED
|
@@ -5,20 +5,22 @@ import { watch } from './watch.js';
|
|
|
5
5
|
describe('observable: observe()', () => {
|
|
6
6
|
it('should watch externally from the class', (done) => {
|
|
7
7
|
let Counter = (() => {
|
|
8
|
-
let _staticExtraInitializers = [];
|
|
9
8
|
let _static_value_decorators;
|
|
10
9
|
let _static_value_initializers = [];
|
|
10
|
+
let _static_value_extraInitializers = [];
|
|
11
11
|
return class Counter {
|
|
12
12
|
static {
|
|
13
13
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
14
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,
|
|
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
16
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
17
|
-
__runInitializers(this, _staticExtraInitializers);
|
|
18
17
|
}
|
|
19
18
|
static #value_accessor_storage = __runInitializers(this, _static_value_initializers, 0);
|
|
20
19
|
static get value() { return Counter.#value_accessor_storage; }
|
|
21
20
|
static set value(value) { Counter.#value_accessor_storage = value; }
|
|
21
|
+
static {
|
|
22
|
+
__runInitializers(this, _static_value_extraInitializers);
|
|
23
|
+
}
|
|
22
24
|
};
|
|
23
25
|
})();
|
|
24
26
|
watch(Counter, () => {
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"}
|
package/target/lib/meta.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/lib/meta.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAIvD,MAAM,OAAgB,aAAa;IACjC,KAAK,GAAG,IAAI,OAAO,EAAa,CAAC;IAEjC,IAAI,CAAmB,KAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAChC,CAAC;CAGF;AAED,MAAM,OAAO,0BAA0B;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACjD,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;CACtC;AAED,MAAM,OAAO,+BAAgC,SAAQ,aAAyC;IAC5F,IAAI;QACF,OAAO,IAAI,0BAA0B,EAAE,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAkB,IAAI,GAAG,EAAE,CAAC;CACpC;AAED,MAAM,OAAO,uBAAwB,SAAQ,aAAiC;IAC5E,IAAI;QACF,OAAO,IAAI,kBAAkB,EAAE,CAAC;IAClC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,+BAA+B,EAAE,CAAC;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta.test.js","sourceRoot":"","sources":["../../src/lib/meta.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAE5D,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,UAAU,EAAE,IAAI,GAAG,EAAE;YACrB,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"}
|
|
File without changes
|