@joist/di 4.2.4-next.9 → 4.2.4

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2019-2020 Danny Blue
3
+ Copyright (c) 2019-2025 Danny Blue
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
21
+ THE SOFTWARE.
package/README.md CHANGED
@@ -164,18 +164,20 @@ class Logger {
164
164
  }
165
165
 
166
166
  const app = new Injector([
167
- {
168
- provide: Logger,
169
- factory() {
170
- const params = new URLSearchParams(window.location.search);
167
+ [
168
+ Logger,
169
+ {
170
+ factory() {
171
+ const params = new URLSearchParams(window.location.search);
171
172
 
172
- if (params.has("debug")) {
173
- return console;
174
- }
173
+ if (params.has("debug")) {
174
+ return console;
175
+ }
175
176
 
176
- return new Logger(); // noop logger
177
+ return new Logger(); // noop logger
178
+ },
177
179
  },
178
- },
180
+ ],
179
181
  ]);
180
182
  ```
181
183
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/di",
3
- "version": "4.2.4-next.9",
3
+ "version": "4.2.4",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -1,3 +1,12 @@
1
+ declare global {
2
+ interface ElementEventMap {
3
+ "context-request": ContextRequestEvent<Context<unknown, unknown>>;
4
+ }
5
+ interface DocumentEventMap {
6
+ "context-request": ContextRequestEvent<Context<unknown, unknown>>;
7
+ }
8
+ }
9
+
1
10
  /**
2
11
  * A context key.
3
12
  *
@@ -15,12 +24,7 @@ export type UnknownContext = Context<unknown, unknown>;
15
24
  /**
16
25
  * A helper type which can extract a Context value type from a Context type
17
26
  */
18
- export type ContextType<T extends UnknownContext> = T extends Context<
19
- infer _,
20
- infer V
21
- >
22
- ? V
23
- : never;
27
+ export type ContextType<T extends UnknownContext> = T extends Context<infer _, infer V> ? V : never;
24
28
 
25
29
  /**
26
30
  * A function which creates a Context value object
@@ -34,10 +38,7 @@ export function createContext<KeyType, ValueType>(key: KeyType) {
34
38
  * A callback which is provided by a context requester and is called with the value satisfying the request.
35
39
  * This callback can be called multiple times by context providers as the requested value is changed.
36
40
  */
37
- export type ContextCallback<ValueType> = (
38
- value: ValueType,
39
- unsubscribe?: () => void,
40
- ) => void;
41
+ export type ContextCallback<ValueType> = (value: ValueType, unsubscribe?: () => void) => void;
41
42
 
42
43
  /**
43
44
  * An event fired by a context requester to signal it desires a named context.
@@ -54,11 +55,7 @@ export class ContextRequestEvent<T extends UnknownContext> extends Event {
54
55
  callback: ContextCallback<ContextType<T>>;
55
56
  subscribe?: boolean;
56
57
 
57
- public constructor(
58
- context: T,
59
- callback: ContextCallback<ContextType<T>>,
60
- subscribe?: boolean,
61
- ) {
58
+ public constructor(context: T, callback: ContextCallback<ContextType<T>>, subscribe?: boolean) {
62
59
  super("context-request", { bubbles: true, composed: true });
63
60
 
64
61
  this.context = context;
@@ -66,13 +63,3 @@ export class ContextRequestEvent<T extends UnknownContext> extends Event {
66
63
  this.subscribe = subscribe;
67
64
  }
68
65
  }
69
-
70
- declare global {
71
- interface HTMLElementEventMap {
72
- /**
73
- * A 'context-request' event can be emitted by any element which desires
74
- * a context value to be injected by an external provider.
75
- */
76
- "context-request": ContextRequestEvent<Context<unknown, unknown>>;
77
- }
78
- }
@@ -1,12 +1,12 @@
1
1
  import { assert } from "chai";
2
2
 
3
3
  import { INJECTOR_CTX } from "../context/injector.js";
4
- import {
5
- ContextRequestEvent,
6
- type UnknownContext,
7
- } from "../context/protocol.js";
4
+ import { ContextRequestEvent, type UnknownContext } from "../context/protocol.js";
8
5
  import { Injector } from "../injector.js";
9
6
  import { DOMInjector } from "./dom-injector.js";
7
+ import { readInjector } from "../metadata.js";
8
+ import { injectable } from "../injectable.js";
9
+ import { inject } from "../inject.js";
10
10
 
11
11
  it("should respond to elements looking for an injector", () => {
12
12
  const injector = new DOMInjector();
@@ -60,3 +60,47 @@ it("should throw an error if attempting to attach an already attached DOMInjecto
60
60
  injector.attach(el);
61
61
  });
62
62
  });
63
+
64
+ it("should correctly add injector to the target element", () => {
65
+ const injector = new DOMInjector();
66
+
67
+ injector.attach(document.body);
68
+
69
+ assert.instanceOf(readInjector(document.body), DOMInjector);
70
+ assert.equal(readInjector(document.body), injector);
71
+
72
+ injector.detach();
73
+ });
74
+
75
+ it("should apply parent to child", (done) => {
76
+ class TestConfig {
77
+ path = "/foo";
78
+ }
79
+
80
+ const injector = new DOMInjector({
81
+ providers: [[TestConfig, { factory: () => ({ path: "/bar" }) }]],
82
+ });
83
+
84
+ injector.attach(document.body);
85
+
86
+ @injectable()
87
+ class MyElement extends HTMLElement {
88
+ #config = inject(TestConfig);
89
+
90
+ connectedCallback(): void {
91
+ const config = this.#config();
92
+ assert.equal(config.path, "/bar");
93
+
94
+ done();
95
+ }
96
+ }
97
+
98
+ customElements.define("dom-injector-test", MyElement);
99
+
100
+ const child = new MyElement();
101
+
102
+ document.body.append(child);
103
+
104
+ child.remove();
105
+ injector.detach();
106
+ });
@@ -1,22 +1,19 @@
1
1
  import { INJECTOR_CTX } from "../context/injector.js";
2
- import {
3
- ContextRequestEvent,
4
- type UnknownContext,
5
- } from "../context/protocol.js";
6
- import { Injector } from "../injector.js";
2
+ import { ContextRequestEvent, type UnknownContext } from "../context/protocol.js";
3
+ import { INJECTOR, Injector } from "../injector.js";
7
4
 
8
5
  /**
9
6
  * Special Injector that allows you to register an injector with a particular DOM element.
10
7
  */
11
8
  export class DOMInjector extends Injector {
12
- #element: HTMLElement | null = null;
9
+ #element: Document | HTMLElement | null = null;
13
10
  #controller: AbortController | null = null;
14
11
 
15
12
  get isAttached(): boolean {
16
13
  return this.#element !== null && this.#controller !== null;
17
14
  }
18
15
 
19
- attach(element: HTMLElement): void {
16
+ attach(element: Document | HTMLElement): void {
20
17
  if (this.isAttached) {
21
18
  throw new Error(
22
19
  `This DOMInjector is already attached to ${this.#element}. Detach first before attaching again`,
@@ -26,9 +23,13 @@ export class DOMInjector extends Injector {
26
23
  this.#element = element;
27
24
  this.#controller = new AbortController();
28
25
 
26
+ Reflect.set(element, INJECTOR, this);
27
+
29
28
  this.#element.addEventListener(
30
29
  "context-request",
31
- (e: ContextRequestEvent<UnknownContext>) => {
30
+ (event) => {
31
+ const e = event as ContextRequestEvent<UnknownContext>;
32
+
32
33
  if (e.context === INJECTOR_CTX) {
33
34
  if (e.target !== element) {
34
35
  e.stopPropagation();
@@ -173,3 +173,79 @@ it("should provide the same context in disconnectedCallback as connectedCallback
173
173
 
174
174
  app.detach();
175
175
  });
176
+
177
+ it("should call disconnectedCallback when element is removed from DOM", async () => {
178
+ @injectable()
179
+ class TestElement extends HTMLElement {
180
+ connectedCalled = false;
181
+ disconnectedCalled = false;
182
+
183
+ connectedCallback(): void {
184
+ this.connectedCalled = true;
185
+ }
186
+
187
+ disconnectedCallback(): void {
188
+ this.disconnectedCalled = true;
189
+ }
190
+ }
191
+
192
+ customElements.define("test-disconnect", TestElement);
193
+
194
+ const el = new TestElement();
195
+
196
+ // Initially, neither callback should have been called
197
+ assert.isFalse(el.connectedCalled);
198
+ assert.isFalse(el.disconnectedCalled);
199
+
200
+ // Add to DOM - connectedCallback should be called
201
+ document.body.append(el);
202
+ assert.isTrue(el.connectedCalled);
203
+ assert.isFalse(el.disconnectedCalled);
204
+
205
+ // Remove from DOM - disconnectedCallback should be called
206
+ el.remove();
207
+ assert.isTrue(el.connectedCalled);
208
+ assert.isTrue(el.disconnectedCalled);
209
+ });
210
+
211
+ it("should call connected and disconnected callbacks when element is replaced", async () => {
212
+ const calls: string[] = [];
213
+
214
+ @injectable()
215
+ class TestElement1 extends HTMLElement {
216
+ connectedCallback(): void {
217
+ calls.push("1-connected");
218
+ }
219
+
220
+ disconnectedCallback(): void {
221
+ calls.push("1-disconnected");
222
+ }
223
+ }
224
+
225
+ @injectable()
226
+ class TestElement2 extends HTMLElement {
227
+ connectedCallback(): void {
228
+ calls.push("2-connected");
229
+ }
230
+
231
+ disconnectedCallback(): void {
232
+ calls.push("2-disconnected");
233
+ }
234
+ }
235
+
236
+ customElements.define("test-disconnect-2", TestElement1);
237
+ customElements.define("test-disconnect-3", TestElement2);
238
+
239
+ const el1 = new TestElement1();
240
+ const el2 = new TestElement2();
241
+
242
+ assert.isEmpty(calls);
243
+
244
+ document.body.append(el1);
245
+
246
+ assert.deepEqual(calls, ["1-connected"]);
247
+
248
+ el1.replaceWith(el2);
249
+
250
+ assert.deepEqual(calls, ["1-connected", "1-disconnected", "2-connected"]);
251
+ });
@@ -8,9 +8,10 @@ import type { ConstructableToken } from "../provider.js";
8
8
 
9
9
  export type InjectableEl = HTMLElement & { [INJECTOR]: Injector };
10
10
 
11
- export function injectableEl<
12
- T extends ConstructableToken<InjectableEl>,
13
- >(Base: T, ctx: ClassDecoratorContext): T {
11
+ export function injectableEl<T extends ConstructableToken<InjectableEl>>(
12
+ Base: T,
13
+ ctx: ClassDecoratorContext,
14
+ ): T {
14
15
  const metadata: InjectableMetadata<InjectableEl> = ctx.metadata;
15
16
 
16
17
  const def = {
@@ -1,3 +1,11 @@
1
+ declare global {
2
+ interface ElementEventMap {
3
+ "context-request": ContextRequestEvent<Context<unknown, unknown>>;
4
+ }
5
+ interface DocumentEventMap {
6
+ "context-request": ContextRequestEvent<Context<unknown, unknown>>;
7
+ }
8
+ }
1
9
  export type Context<KeyType, ValueType> = KeyType & {
2
10
  __context__: ValueType;
3
11
  };
@@ -11,8 +19,3 @@ export declare class ContextRequestEvent<T extends UnknownContext> extends Event
11
19
  subscribe?: boolean;
12
20
  constructor(context: T, callback: ContextCallback<ContextType<T>>, subscribe?: boolean);
13
21
  }
14
- declare global {
15
- interface HTMLElementEventMap {
16
- "context-request": ContextRequestEvent<Context<unknown, unknown>>;
17
- }
18
- }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/lib/context/protocol.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,aAAa,CAAqB,GAAY;IAC5D,OAAO,GAAkC,CAAC;AAC5C,CAAC;AAqBD,MAAM,OAAO,mBAA8C,SAAQ,KAAK;IACtE,OAAO,CAAI;IACX,QAAQ,CAAkC;IAC1C,SAAS,CAAW;IAEpB,YACE,OAAU,EACV,QAAyC,EACzC,SAAmB;QAEnB,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/lib/context/protocol.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,aAAa,CAAqB,GAAY;IAC5D,OAAO,GAAkC,CAAC;AAC5C,CAAC;AAkBD,MAAM,OAAO,mBAA8C,SAAQ,KAAK;IACtE,OAAO,CAAI;IACX,QAAQ,CAAkC;IAC1C,SAAS,CAAW;IAEpB,YAAmB,OAAU,EAAE,QAAyC,EAAE,SAAmB;QAC3F,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
@@ -2,6 +2,6 @@ import { Injector } from "../injector.js";
2
2
  export declare class DOMInjector extends Injector {
3
3
  #private;
4
4
  get isAttached(): boolean;
5
- attach(element: HTMLElement): void;
5
+ attach(element: Document | HTMLElement): void;
6
6
  detach(): void;
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { INJECTOR_CTX } from "../context/injector.js";
2
- import { ContextRequestEvent, } from "../context/protocol.js";
3
- import { Injector } from "../injector.js";
2
+ import { ContextRequestEvent } from "../context/protocol.js";
3
+ import { INJECTOR, Injector } from "../injector.js";
4
4
  export class DOMInjector extends Injector {
5
5
  #element = null;
6
6
  #controller = null;
@@ -13,7 +13,9 @@ export class DOMInjector extends Injector {
13
13
  }
14
14
  this.#element = element;
15
15
  this.#controller = new AbortController();
16
- this.#element.addEventListener("context-request", (e) => {
16
+ Reflect.set(element, INJECTOR, this);
17
+ this.#element.addEventListener("context-request", (event) => {
18
+ const e = event;
17
19
  if (e.context === INJECTOR_CTX) {
18
20
  if (e.target !== element) {
19
21
  e.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"dom-injector.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK1C,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,QAAQ,GAAuB,IAAI,CAAC;IACpC,WAAW,GAA2B,IAAI,CAAC;IAE3C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,OAAoB;QACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,QAAQ,uCAAuC,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAC5B,iBAAiB,EACjB,CAAC,CAAsC,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACzB,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CACpC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,aAAa,CACzB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"dom-injector.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAuB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKpD,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,QAAQ,GAAkC,IAAI,CAAC;IAC/C,WAAW,GAA2B,IAAI,CAAC;IAE3C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,OAA+B;QACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,QAAQ,uCAAuC,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAC5B,iBAAiB,EACjB,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,CAAC,GAAG,KAA4C,CAAC;YAEvD,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACzB,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CACpC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,aAAa,CACzB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF"}
@@ -1,8 +1,12 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
1
2
  import { assert } from "chai";
2
3
  import { INJECTOR_CTX } from "../context/injector.js";
3
- import { ContextRequestEvent, } from "../context/protocol.js";
4
+ import { ContextRequestEvent } from "../context/protocol.js";
4
5
  import { Injector } from "../injector.js";
5
6
  import { DOMInjector } from "./dom-injector.js";
7
+ import { readInjector } from "../metadata.js";
8
+ import { injectable } from "../injectable.js";
9
+ import { inject } from "../inject.js";
6
10
  it("should respond to elements looking for an injector", () => {
7
11
  const injector = new DOMInjector();
8
12
  injector.attach(document.body);
@@ -38,4 +42,49 @@ it("should throw an error if attempting to attach an already attached DOMInjecto
38
42
  injector.attach(el);
39
43
  });
40
44
  });
45
+ it("should correctly add injector to the target element", () => {
46
+ const injector = new DOMInjector();
47
+ injector.attach(document.body);
48
+ assert.instanceOf(readInjector(document.body), DOMInjector);
49
+ assert.equal(readInjector(document.body), injector);
50
+ injector.detach();
51
+ });
52
+ it("should apply parent to child", (done) => {
53
+ class TestConfig {
54
+ path = "/foo";
55
+ }
56
+ const injector = new DOMInjector({
57
+ providers: [[TestConfig, { factory: () => ({ path: "/bar" }) }]],
58
+ });
59
+ injector.attach(document.body);
60
+ let MyElement = (() => {
61
+ let _classDecorators = [injectable()];
62
+ let _classDescriptor;
63
+ let _classExtraInitializers = [];
64
+ let _classThis;
65
+ let _classSuper = HTMLElement;
66
+ var MyElement = class extends _classSuper {
67
+ static { _classThis = this; }
68
+ static {
69
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
70
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
71
+ MyElement = _classThis = _classDescriptor.value;
72
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
73
+ __runInitializers(_classThis, _classExtraInitializers);
74
+ }
75
+ #config = inject(TestConfig);
76
+ connectedCallback() {
77
+ const config = this.#config();
78
+ assert.equal(config.path, "/bar");
79
+ done();
80
+ }
81
+ };
82
+ return MyElement = _classThis;
83
+ })();
84
+ customElements.define("dom-injector-test", MyElement);
85
+ const child = new MyElement();
86
+ document.body.append(child);
87
+ child.remove();
88
+ injector.detach();
89
+ });
41
90
  //# sourceMappingURL=dom-injector.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom-injector.test.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAC5D,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,MAAM,GAAoB,IAAI,CAAC;IAEnC,IAAI,CAAC,aAAa,CAChB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1C,MAAM,GAAG,CAAC,CAAC;IACb,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,MAAM,EAAE,GAAG,CAAC,CAAsC,EAAE,EAAE;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAC/B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAEtD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;IACvF,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEpB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAChB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dom-injector.test.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"injectable-el.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,UAAU,YAAY,CAE1B,IAAO,EAAE,GAA0B;IACnC,MAAM,QAAQ,GAAqC,GAAG,CAAC,QAAQ,CAAC;IAEhE,MAAM,GAAG,GAAG;QACV,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAM,SAAQ,IAAI;YAC7B,YAAY,GAAG,CAAQ;gBACrB,KAAK,EAAE,CAAC;gBAER,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEhC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;wBACpD,CAAC,CAAC,eAAe,EAAE,CAAC;wBAEpB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YAED,iBAAiB;gBACf,IAAI,CAAC,aAAa,CAChB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC9B,CAAC,CAAC,CACH,CAAC;gBAEF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAE1D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,oBAAoB;gBAIlB,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;oBAC/B,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;YACpC,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"injectable-el.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,GAA0B;IAE1B,MAAM,QAAQ,GAAqC,GAAG,CAAC,QAAQ,CAAC;IAEhE,MAAM,GAAG,GAAG;QACV,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAM,SAAQ,IAAI;YAC7B,YAAY,GAAG,CAAQ;gBACrB,KAAK,EAAE,CAAC;gBAER,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEhC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;wBACpD,CAAC,CAAC,eAAe,EAAE,CAAC;wBAEpB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YAED,iBAAiB;gBACf,IAAI,CAAC,aAAa,CAChB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC9B,CAAC,CAAC,CACH,CAAC;gBAEF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAE1D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,oBAAoB;gBAIlB,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;oBAC/B,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;YACpC,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -281,4 +281,102 @@ it("should provide the same context in disconnectedCallback as connectedCallback
281
281
  assert.equal(el.connected, el.disconnected);
282
282
  app.detach();
283
283
  });
284
+ it("should call disconnectedCallback when element is removed from DOM", async () => {
285
+ let TestElement = (() => {
286
+ let _classDecorators = [injectable()];
287
+ let _classDescriptor;
288
+ let _classExtraInitializers = [];
289
+ let _classThis;
290
+ let _classSuper = HTMLElement;
291
+ var TestElement = class extends _classSuper {
292
+ static { _classThis = this; }
293
+ static {
294
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
295
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
296
+ TestElement = _classThis = _classDescriptor.value;
297
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
298
+ __runInitializers(_classThis, _classExtraInitializers);
299
+ }
300
+ connectedCalled = false;
301
+ disconnectedCalled = false;
302
+ connectedCallback() {
303
+ this.connectedCalled = true;
304
+ }
305
+ disconnectedCallback() {
306
+ this.disconnectedCalled = true;
307
+ }
308
+ };
309
+ return TestElement = _classThis;
310
+ })();
311
+ customElements.define("test-disconnect", TestElement);
312
+ const el = new TestElement();
313
+ assert.isFalse(el.connectedCalled);
314
+ assert.isFalse(el.disconnectedCalled);
315
+ document.body.append(el);
316
+ assert.isTrue(el.connectedCalled);
317
+ assert.isFalse(el.disconnectedCalled);
318
+ el.remove();
319
+ assert.isTrue(el.connectedCalled);
320
+ assert.isTrue(el.disconnectedCalled);
321
+ });
322
+ it("should call connected and disconnected callbacks when element is replaced", async () => {
323
+ const calls = [];
324
+ let TestElement1 = (() => {
325
+ let _classDecorators = [injectable()];
326
+ let _classDescriptor;
327
+ let _classExtraInitializers = [];
328
+ let _classThis;
329
+ let _classSuper = HTMLElement;
330
+ var TestElement1 = class extends _classSuper {
331
+ static { _classThis = this; }
332
+ static {
333
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
334
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
335
+ TestElement1 = _classThis = _classDescriptor.value;
336
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
337
+ __runInitializers(_classThis, _classExtraInitializers);
338
+ }
339
+ connectedCallback() {
340
+ calls.push("1-connected");
341
+ }
342
+ disconnectedCallback() {
343
+ calls.push("1-disconnected");
344
+ }
345
+ };
346
+ return TestElement1 = _classThis;
347
+ })();
348
+ let TestElement2 = (() => {
349
+ let _classDecorators = [injectable()];
350
+ let _classDescriptor;
351
+ let _classExtraInitializers = [];
352
+ let _classThis;
353
+ let _classSuper = HTMLElement;
354
+ var TestElement2 = class extends _classSuper {
355
+ static { _classThis = this; }
356
+ static {
357
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
358
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
359
+ TestElement2 = _classThis = _classDescriptor.value;
360
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
361
+ __runInitializers(_classThis, _classExtraInitializers);
362
+ }
363
+ connectedCallback() {
364
+ calls.push("2-connected");
365
+ }
366
+ disconnectedCallback() {
367
+ calls.push("2-disconnected");
368
+ }
369
+ };
370
+ return TestElement2 = _classThis;
371
+ })();
372
+ customElements.define("test-disconnect-2", TestElement1);
373
+ customElements.define("test-disconnect-3", TestElement2);
374
+ const el1 = new TestElement1();
375
+ const el2 = new TestElement2();
376
+ assert.isEmpty(calls);
377
+ document.body.append(el1);
378
+ assert.deepEqual(calls, ["1-connected"]);
379
+ el1.replaceWith(el2);
380
+ assert.deepEqual(calls, ["1-connected", "1-disconnected", "2-connected"]);
381
+ });
284
382
  //# sourceMappingURL=injectable-el.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"injectable-el.test.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injectable-el.test.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.test.ts"],"names":[],"mappings":"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"}