@tstdl/base 0.84.26 → 0.84.27

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.
@@ -38,5 +38,6 @@ export declare class BrowserController implements AsyncDisposable, Injectable<Br
38
38
  [disposeAsync](): Promise<void>;
39
39
  newContext(options?: NewBrowserContextOptions): Promise<BrowserContextController>;
40
40
  close(): Promise<void>;
41
+ waitForNoContexts(): Promise<void>;
41
42
  waitForClose(): Promise<void>;
42
43
  }
@@ -75,6 +75,15 @@ let BrowserController = class BrowserController2 {
75
75
  await this.browser.close();
76
76
  }
77
77
  }
78
+ async waitForNoContexts() {
79
+ while (true) {
80
+ const contexts = this.browser.contexts();
81
+ if (contexts.length == 0) {
82
+ break;
83
+ }
84
+ await new Promise((resolve) => contexts[0].once("close", () => resolve()));
85
+ }
86
+ }
78
87
  async waitForClose() {
79
88
  return new Promise((resolve) => {
80
89
  if (!this.browser.isConnected()) {
@@ -32,5 +32,6 @@ export declare class BrowserService implements AsyncDisposable, Injectable<Brows
32
32
  [disposeAsync](): Promise<void>;
33
33
  newBrowser(options?: NewBrowserOptions): Promise<BrowserController>;
34
34
  newPersistentContext(dataDirectory: string, browserOptions?: NewBrowserOptions, contextOptions?: NewBrowserContextOptions): Promise<BrowserContextController>;
35
+ waitForNoBrowsers(): Promise<void>;
35
36
  dispose(): Promise<void>;
36
37
  }
@@ -94,6 +94,18 @@ let BrowserService = class BrowserService2 {
94
94
  context.once("close", () => this.persistentBrowserContexts.delete(context));
95
95
  return new import_browser_context_controller.BrowserContextController(context, mergedBrowserOptions.defaultNewContextOptions);
96
96
  }
97
+ async waitForNoBrowsers() {
98
+ while (true) {
99
+ if (this.browsers.size == 0) {
100
+ break;
101
+ }
102
+ for (const browser of this.browsers) {
103
+ if (browser.isConnected()) {
104
+ await new Promise((resolve) => browser.once("disconnected", () => resolve()));
105
+ }
106
+ }
107
+ }
108
+ }
97
109
  async dispose() {
98
110
  for (const browser of this.browsers) {
99
111
  if (browser.isConnected()) {
@@ -19,6 +19,7 @@ export declare class PageController extends DocumentController<Page> implements
19
19
  close(): Promise<void>;
20
20
  setExtraHttpHeaders(headers: Record<string, string>): Promise<void>;
21
21
  waitForClose(): Promise<void>;
22
+ url(): string;
22
23
  /**
23
24
  * @param frameSelector frame name, url or url predicate
24
25
  * @returns
@@ -57,6 +57,9 @@ class PageController extends import_document_controller.DocumentController {
57
57
  this.page.once("close", () => resolve());
58
58
  });
59
59
  }
60
+ url() {
61
+ return this.page.url();
62
+ }
60
63
  /**
61
64
  * @param frameSelector frame name, url or url predicate
62
65
  * @returns
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.84.26",
3
+ "version": "0.84.27",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"