@joist/observable 4.0.0-next.42 → 4.0.0-next.45

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.42",
3
+ "version": "4.0.0-next.45",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -1,15 +1,15 @@
1
- import { assert } from 'chai';
1
+ import { assert } from "chai";
2
2
 
3
- import { Changes, ObservableInstanceMetaDataStore } from './metadata.js';
3
+ import { Changes, ObservableInstanceMetaDataStore } from "./metadata.js";
4
4
 
5
- it('should return default metadata', () => {
5
+ it("should return default metadata", () => {
6
6
  const key = {};
7
7
  const data = new ObservableInstanceMetaDataStore().read(key);
8
8
 
9
9
  assert.deepEqual(data, { changes: new Changes(), scheduler: null });
10
10
  });
11
11
 
12
- it('should return the same metadata object after init', () => {
12
+ it("should return the same metadata object after init", () => {
13
13
  const key = {};
14
14
  const data = new ObservableInstanceMetaDataStore();
15
15
 
@@ -1,8 +1,11 @@
1
- (Symbol as any).metadata ??= Symbol('Symbol.metadata');
1
+ (Symbol as any).metadata ??= Symbol("Symbol.metadata");
2
2
 
3
3
  export type EffectFn<T> = (changes: Changes<T>) => void;
4
4
 
5
- export class Changes<T> extends Map<keyof T, { oldValue: unknown; newValue: unknown }> {}
5
+ export class Changes<T> extends Map<
6
+ keyof T,
7
+ { oldValue: unknown; newValue: unknown }
8
+ > {}
6
9
 
7
10
  export class ObservableInstanceMetadata<T> {
8
11
  scheduler: Promise<void> | null = null;
@@ -30,7 +33,10 @@ export class ObservableMetadata<T> {
30
33
  effects: Set<EffectFn<T>> = new Set();
31
34
  }
32
35
 
33
- export class ObservableMetadataStore extends WeakMap<object, ObservableMetadata<unknown>> {
36
+ export class ObservableMetadataStore extends WeakMap<
37
+ object,
38
+ ObservableMetadata<unknown>
39
+ > {
34
40
  read<T extends object>(key: object): ObservableMetadata<T> {
35
41
  let data = this.get(key);
36
42
 
@@ -47,4 +53,5 @@ export class ObservableMetadataStore extends WeakMap<object, ObservableMetadata<
47
53
  export const instanceMetadataStore: ObservableInstanceMetaDataStore =
48
54
  new ObservableInstanceMetaDataStore();
49
55
 
50
- export const observableMetadataStore: ObservableMetadataStore = new ObservableMetadataStore();
56
+ export const observableMetadataStore: ObservableMetadataStore =
57
+ new ObservableMetadataStore();
@@ -1,10 +1,11 @@
1
- import { assert } from 'chai';
1
+ import { assert } from "chai";
2
2
 
3
- import { effect, observe } from './observe.js';
4
- import { Changes } from './metadata.js';
3
+ import type { Changes } from "./metadata.js";
4
+ import { effect, observe } from "./observe.js";
5
5
 
6
- it('should work with static accessors', () => {
6
+ it("should work with static accessors", () => {
7
7
  return new Promise<void>((resolve) => {
8
+ // biome-ignore lint/complexity/noStaticOnlyClass: <explanation>
8
9
  class Counter {
9
10
  @observe()
10
11
  static accessor value = 0;
@@ -24,7 +25,7 @@ it('should work with static accessors', () => {
24
25
  });
25
26
  });
26
27
 
27
- it('should work with instance accessors', () => {
28
+ it("should work with instance accessors", () => {
28
29
  return new Promise<void>((resolve) => {
29
30
  class Counter {
30
31
  @observe()
@@ -49,15 +50,15 @@ it('should work with instance accessors', () => {
49
50
  });
50
51
  });
51
52
 
52
- it('should return a set of changed props', () => {
53
+ it("should return a set of changed props", () => {
53
54
  return new Promise<void>((resolve) => {
54
55
  class Counter {
55
56
  @observe() accessor value = 0;
56
57
 
57
58
  @effect() onChange(changes: Changes<this>) {
58
- assert.deepEqual(changes.get('value'), {
59
+ assert.deepEqual(changes.get("value"), {
59
60
  oldValue: 0,
60
- newValue: 1
61
+ newValue: 1,
61
62
  });
62
63
 
63
64
  resolve();
@@ -69,7 +70,7 @@ it('should return a set of changed props', () => {
69
70
  });
70
71
  });
71
72
 
72
- it('should upgrade custom elements', () => {
73
+ it("should upgrade custom elements", () => {
73
74
  return new Promise<void>((resolve) => {
74
75
  class Counter extends HTMLElement {
75
76
  @observe()
@@ -88,15 +89,15 @@ it('should upgrade custom elements', () => {
88
89
  }
89
90
  }
90
91
 
91
- const el = document.createElement('observable-1') as Counter;
92
+ const el = document.createElement("observable-1") as Counter;
92
93
  el.value = 100;
93
94
 
94
95
  document.body.append(el);
95
96
 
96
- customElements.whenDefined('observable-1').then(() => {
97
+ customElements.whenDefined("observable-1").then(() => {
97
98
  el.value++;
98
99
  });
99
100
 
100
- customElements.define('observable-1', Counter);
101
+ customElements.define("observable-1", Counter);
101
102
  });
102
103
  });
@@ -1,9 +1,13 @@
1
- import { EffectFn, instanceMetadataStore, observableMetadataStore } from './metadata.js';
1
+ import {
2
+ type EffectFn,
3
+ instanceMetadataStore,
4
+ observableMetadataStore,
5
+ } from "./metadata.js";
2
6
 
3
7
  export function observe() {
4
8
  return function observeDecorator<This extends object, Value>(
5
9
  base: ClassAccessorDecoratorTarget<This, Value>,
6
- ctx: ClassAccessorDecoratorContext<This, Value>
10
+ ctx: ClassAccessorDecoratorContext<This, Value>,
7
11
  ): ClassAccessorDecoratorResult<This, Value> {
8
12
  const observableMeta = observableMetadataStore.read<This>(ctx.metadata);
9
13
 
@@ -25,27 +29,31 @@ export function observe() {
25
29
 
26
30
  return value;
27
31
  },
28
- set(value) {
29
- const instanceMeta = instanceMetadataStore.read<This>(this);
32
+ set(newValue: Value) {
33
+ const oldValue = base.get.call(this);
30
34
 
31
- if (instanceMeta.scheduler === null) {
32
- instanceMeta.scheduler = Promise.resolve().then(() => {
33
- for (let effect of observableMeta.effects) {
34
- effect.call(this, instanceMeta.changes);
35
- }
35
+ if (newValue !== oldValue) {
36
+ const instanceMeta = instanceMetadataStore.read<This>(this);
36
37
 
37
- instanceMeta.scheduler = null;
38
- instanceMeta.changes.clear();
39
- });
40
- }
38
+ if (instanceMeta.scheduler === null) {
39
+ instanceMeta.scheduler = Promise.resolve().then(() => {
40
+ for (const effect of observableMeta.effects) {
41
+ effect.call(this, instanceMeta.changes);
42
+ }
43
+
44
+ instanceMeta.scheduler = null;
45
+ instanceMeta.changes.clear();
46
+ });
47
+ }
41
48
 
42
- instanceMeta.changes.set(ctx.name as keyof This, {
43
- oldValue: base.get.call(this) as This[keyof This],
44
- newValue: value as This[keyof This]
45
- });
49
+ instanceMeta.changes.set(ctx.name as keyof This, {
50
+ oldValue,
51
+ newValue,
52
+ });
46
53
 
47
- base.set.call(this, value);
48
- }
54
+ base.set.call(this, newValue);
55
+ }
56
+ },
49
57
  };
50
58
  };
51
59
  }
@@ -53,7 +61,7 @@ export function observe() {
53
61
  export function effect() {
54
62
  return function effectDecorator<T extends object>(
55
63
  value: EffectFn<T>,
56
- ctx: ClassMethodDecoratorContext<T>
64
+ ctx: ClassMethodDecoratorContext<T>,
57
65
  ): void {
58
66
  const data = observableMetadataStore.read<T>(ctx.metadata);
59
67
 
package/src/lib.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { observe, effect } from './lib/observe.js';
2
- export { Changes } from './lib/metadata.js';
1
+ export { observe, effect } from "./lib/observe.js";
2
+ export { Changes } from "./lib/metadata.js";
@@ -1,4 +1,4 @@
1
- Symbol.metadata ??= Symbol('Symbol.metadata');
1
+ Symbol.metadata ??= Symbol("Symbol.metadata");
2
2
  export class Changes extends Map {
3
3
  }
4
4
  export class ObservableInstanceMetadata {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAIvD,MAAM,OAAO,OAAW,SAAQ,GAAsD;CAAG;AAEzF,MAAM,OAAO,0BAA0B;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,OAAO,GAAe,IAAI,OAAO,EAAE,CAAC;CACrC;AAED,MAAM,OAAO,+BAAgC,SAAQ,OAGpD;IACC,IAAI,CAAmB,GAAM;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,0BAA0B,EAAE,CAAC;YAExC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;CACvC;AAED,MAAM,OAAO,uBAAwB,SAAQ,OAA4C;IACvF,IAAI,CAAmB,GAAW;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAA6B,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAChC,IAAI,+BAA+B,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAA4B,IAAI,uBAAuB,EAAE,CAAC"}
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,OAAO,OAAW,SAAQ,GAG/B;CAAG;AAEJ,MAAM,OAAO,0BAA0B;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,OAAO,GAAe,IAAI,OAAO,EAAE,CAAC;CACrC;AAED,MAAM,OAAO,+BAAgC,SAAQ,OAGpD;IACC,IAAI,CAAmB,GAAM;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,0BAA0B,EAAE,CAAC;YAExC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;CACvC;AAED,MAAM,OAAO,uBAAwB,SAAQ,OAG5C;IACC,IAAI,CAAmB,GAAW;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,IAA6B,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAChC,IAAI,+BAA+B,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAClC,IAAI,uBAAuB,EAAE,CAAC"}
@@ -1,11 +1,11 @@
1
- import { assert } from 'chai';
2
- import { Changes, ObservableInstanceMetaDataStore } from './metadata.js';
3
- it('should return default metadata', () => {
1
+ import { assert } from "chai";
2
+ import { Changes, ObservableInstanceMetaDataStore } from "./metadata.js";
3
+ it("should return default metadata", () => {
4
4
  const key = {};
5
5
  const data = new ObservableInstanceMetaDataStore().read(key);
6
6
  assert.deepEqual(data, { changes: new Changes(), scheduler: null });
7
7
  });
8
- it('should return the same metadata object after init', () => {
8
+ it("should return the same metadata object after init", () => {
9
9
  const key = {};
10
10
  const data = new ObservableInstanceMetaDataStore();
11
11
  assert.equal(data.read(key), data.read(key));
@@ -1,3 +1,3 @@
1
- import { EffectFn } from './metadata.js';
1
+ import { type 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<T>, ctx: ClassMethodDecoratorContext<T>) => void;
@@ -1,4 +1,4 @@
1
- import { instanceMetadataStore, observableMetadataStore } from './metadata.js';
1
+ import { instanceMetadataStore, observableMetadataStore, } from "./metadata.js";
2
2
  export function observe() {
3
3
  return function observeDecorator(base, ctx) {
4
4
  const observableMeta = observableMetadataStore.read(ctx.metadata);
@@ -15,23 +15,26 @@ export function observe() {
15
15
  }
16
16
  return value;
17
17
  },
18
- set(value) {
19
- const instanceMeta = instanceMetadataStore.read(this);
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();
18
+ set(newValue) {
19
+ const oldValue = base.get.call(this);
20
+ if (newValue !== oldValue) {
21
+ const instanceMeta = instanceMetadataStore.read(this);
22
+ if (instanceMeta.scheduler === null) {
23
+ instanceMeta.scheduler = Promise.resolve().then(() => {
24
+ for (const effect of observableMeta.effects) {
25
+ effect.call(this, instanceMeta.changes);
26
+ }
27
+ instanceMeta.scheduler = null;
28
+ instanceMeta.changes.clear();
29
+ });
30
+ }
31
+ instanceMeta.changes.set(ctx.name, {
32
+ oldValue,
33
+ newValue,
27
34
  });
35
+ base.set.call(this, newValue);
28
36
  }
29
- instanceMeta.changes.set(ctx.name, {
30
- oldValue: base.get.call(this),
31
- newValue: value
32
- });
33
- base.set.call(this, value);
34
- }
37
+ },
35
38
  };
36
39
  };
37
40
  }
@@ -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;IACrB,OAAO,SAAS,gBAAgB,CAC9B,IAA+C,EAC/C,GAA+C;QAE/C,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExE,OAAO;YACL,IAAI,CAAC,KAAK;gBACR,IAAI,GAAG,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,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAEvC,OAAO,GAAG,CAAC;gBACb,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,CAAC,KAAK;gBACP,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAO,IAAI,CAAC,CAAC;gBAE5D,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,IAAkB,EAAE;oBAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAqB;oBACjD,QAAQ,EAAE,KAAyB;iBACpC,CAAC,CAAC;gBAEH,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,KAAkB,EAClB,GAAmC;QAEnC,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/lib/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,OAAO;IACrB,OAAO,SAAS,gBAAgB,CAC9B,IAA+C,EAC/C,GAA+C;QAE/C,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExE,OAAO;YACL,IAAI,CAAC,KAAK;gBACR,IAAI,GAAG,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,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAEvC,OAAO,GAAG,CAAC;gBACb,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,CAAC,QAAe;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAO,IAAI,CAAC,CAAC;oBAE5D,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;wBACpC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;4BACnD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gCAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;4BAC1C,CAAC;4BAED,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;4BAC9B,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAkB,EAAE;wBAC/C,QAAQ;wBACR,QAAQ;qBACT,CAAC,CAAC;oBAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,SAAS,eAAe,CAC7B,KAAkB,EAClB,GAAmC;QAEnC,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
2
- import { assert } from 'chai';
3
- import { effect, observe } from './observe.js';
4
- it('should work with static accessors', () => {
2
+ import { assert } from "chai";
3
+ import { effect, observe } from "./observe.js";
4
+ it("should work with static accessors", () => {
5
5
  return new Promise((resolve) => {
6
6
  let Counter = (() => {
7
7
  let _staticExtraInitializers = [];
@@ -35,7 +35,7 @@ it('should work with static accessors', () => {
35
35
  assert.equal(Counter.value, 1);
36
36
  });
37
37
  });
38
- it('should work with instance accessors', () => {
38
+ it("should work with instance accessors", () => {
39
39
  return new Promise((resolve) => {
40
40
  let Counter = (() => {
41
41
  let _instanceExtraInitializers = [];
@@ -71,7 +71,7 @@ it('should work with instance accessors', () => {
71
71
  assert.equal(counter.value, 1);
72
72
  });
73
73
  });
74
- it('should return a set of changed props', () => {
74
+ it("should return a set of changed props", () => {
75
75
  return new Promise((resolve) => {
76
76
  let Counter = (() => {
77
77
  let _instanceExtraInitializers = [];
@@ -92,9 +92,9 @@ it('should return a set of changed props', () => {
92
92
  get value() { return this.#value_accessor_storage; }
93
93
  set value(value) { this.#value_accessor_storage = value; }
94
94
  onChange(changes) {
95
- assert.deepEqual(changes.get('value'), {
95
+ assert.deepEqual(changes.get("value"), {
96
96
  oldValue: 0,
97
- newValue: 1
97
+ newValue: 1,
98
98
  });
99
99
  resolve();
100
100
  }
@@ -107,7 +107,7 @@ it('should return a set of changed props', () => {
107
107
  counter.value++;
108
108
  });
109
109
  });
110
- it('should upgrade custom elements', () => {
110
+ it("should upgrade custom elements", () => {
111
111
  return new Promise((resolve) => {
112
112
  let Counter = (() => {
113
113
  let _classSuper = HTMLElement;
@@ -139,13 +139,13 @@ it('should upgrade custom elements', () => {
139
139
  }
140
140
  };
141
141
  })();
142
- const el = document.createElement('observable-1');
142
+ const el = document.createElement("observable-1");
143
143
  el.value = 100;
144
144
  document.body.append(el);
145
- customElements.whenDefined('observable-1').then(() => {
145
+ customElements.whenDefined("observable-1").then(() => {
146
146
  el.value++;
147
147
  });
148
- customElements.define('observable-1', Counter);
148
+ customElements.define("observable-1", Counter);
149
149
  });
150
150
  });
151
151
  //# 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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"}
package/target/lib.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { observe, effect } from './lib/observe.js';
2
- export { Changes } from './lib/metadata.js';
1
+ export { observe, effect } from "./lib/observe.js";
2
+ export { Changes } from "./lib/metadata.js";
package/target/lib.js CHANGED
@@ -1,3 +1,3 @@
1
- export { observe, effect } from './lib/observe.js';
2
- export { Changes } from './lib/metadata.js';
1
+ export { observe, effect } from "./lib/observe.js";
2
+ export { Changes } from "./lib/metadata.js";
3
3
  //# sourceMappingURL=lib.js.map