ewvjs 1.0.20 → 1.0.21

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/dist/window.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare class Window {
8
8
  private _menuCallbacks;
9
9
  private _exposedFunctions;
10
10
  private _isClosed;
11
+ private _closeNotified;
11
12
  private _pendingApiInjection;
12
13
  on_context_menu: (items: any[]) => ContextMenuItem[] | null | Promise<ContextMenuItem[] | null>;
13
14
  on_close: () => void;
@@ -61,6 +62,8 @@ export declare class Window {
61
62
  private _on_message;
62
63
  private _parseParams;
63
64
  private _handleMenuClick;
65
+ private _invokeEventCallback;
66
+ private _notifyClosed;
64
67
  private _handleContextMenu;
65
68
  private _handleExposedFunction;
66
69
  private _sendSuccessResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../src/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG5D,qBAAa,MAAM;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IAEvB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,eAAe,EAAE,CAChB,KAAK,EAAE,GAAG,EAAE,KACR,eAAe,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAC3D;IAEN,QAAQ,EAAE,MAAM,IAAI,CAAY;IAChC,OAAO,EAAE,MAAM,IAAI,CAAY;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAY;IAC/B,SAAS,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CACjE;IACV,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAY;IAC5D,QAAQ,EAAE,MAAM,IAAI,CAAY;IAChC,OAAO,EAAE,MAAM,IAAI,CAAY;IAC/B,WAAW,EAAE,MAAM,IAAI,CAAY;IACnC,WAAW,EAAE,MAAM,IAAI,CAAY;IACnC,UAAU,EAAE,MAAM,IAAI,CAAY;gBAGjC,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE;IA8B9C,IAAI,MAAM,kBAET;IAED,IAAI,SAAS,YAEZ;IAEK,GAAG;YAiBK,KAAK;IAoCb,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS/D,KAAK;IAQL,OAAO;IAKP,QAAQ;IAGR,OAAO;IAGP,QAAQ;IAGR,KAAK;IAGL,IAAI;IAGJ,IAAI;IAKJ,OAAO;IAGP,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAGrC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIpC,UAAU;IAGV,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIxC,WAAW;IAGX,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAGhC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKzB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAKtB,YAAY;IAGZ,YAAY;IAKZ,OAAO,CAAC,QAAQ,EAAE,MAAM;IAKxB,UAAU;IAGV,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAW,EACnB,IAAI,GAAE,MAAY;IAIb,YAAY;YAIJ,WAAW;IAwFzB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,gBAAgB;YAOV,kBAAkB;YAYlB,sBAAsB;YAmBtB,oBAAoB;YAUpB,kBAAkB;IAUhC,OAAO,CAAC,YAAY;CAkBpB"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../src/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG5D,qBAAa,MAAM;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IAEvB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,eAAe,EAAE,CAChB,KAAK,EAAE,GAAG,EAAE,KACR,eAAe,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAC3D;IAEN,QAAQ,EAAE,MAAM,IAAI,CAAY;IAChC,OAAO,EAAE,MAAM,IAAI,CAAY;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAY;IAC/B,SAAS,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CACjE;IACV,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAY;IAC5D,QAAQ,EAAE,MAAM,IAAI,CAAY;IAChC,OAAO,EAAE,MAAM,IAAI,CAAY;IAC/B,WAAW,EAAE,MAAM,IAAI,CAAY;IACnC,WAAW,EAAE,MAAM,IAAI,CAAY;IACnC,UAAU,EAAE,MAAM,IAAI,CAAY;gBAGjC,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE;IA8B9C,IAAI,MAAM,kBAET;IAED,IAAI,SAAS,YAEZ;IAEK,GAAG;YAiBK,KAAK;IAoCb,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS/D,KAAK;IAUL,OAAO;IAKP,QAAQ;IAGR,OAAO;IAGP,QAAQ;IAGR,KAAK;IAGL,IAAI;IAGJ,IAAI;IAKJ,OAAO;IAGP,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAGrC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIpC,UAAU;IAGV,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIxC,WAAW;IAGX,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAGhC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKzB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAKtB,YAAY;IAGZ,YAAY;IAKZ,OAAO,CAAC,QAAQ,EAAE,MAAM;IAKxB,UAAU;IAGV,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAW,EACnB,IAAI,GAAE,MAAY;IAIb,YAAY;YAIJ,WAAW;IAuFzB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,aAAa;YAOP,kBAAkB;YAYlB,sBAAsB;YAmBtB,oBAAoB;YAUpB,kBAAkB;IAUhC,OAAO,CAAC,YAAY;CAkBpB"}
package/dist/window.js CHANGED
@@ -8,6 +8,7 @@ export class Window {
8
8
  _menuCallbacks = new Map();
9
9
  _exposedFunctions;
10
10
  _isClosed = false;
11
+ _closeNotified = false;
11
12
  _pendingApiInjection = null;
12
13
  on_context_menu = () => null;
13
14
  on_close = () => { };
@@ -117,12 +118,15 @@ export class Window {
117
118
  if (this._isClosed)
118
119
  return;
119
120
  this._isClosed = true;
120
- const result = await this._call("close");
121
- this._resolveClosed();
122
- return result;
121
+ try {
122
+ return await this._call("close");
123
+ }
124
+ finally {
125
+ this._notifyClosed();
126
+ }
123
127
  }
124
128
  async destroy() {
125
- return this._call("close");
129
+ return this.close();
126
130
  }
127
131
  // Window state methods
128
132
  async maximize() {
@@ -205,39 +209,38 @@ export class Window {
205
209
  // Handle special messages
206
210
  if (funcName === "closed") {
207
211
  this._isClosed = true;
208
- this.on_close();
209
- this._resolveClosed();
212
+ this._notifyClosed();
210
213
  return null;
211
214
  }
212
215
  if (funcName === "resized") {
213
216
  const size = params[0];
214
- this.on_resize(size);
217
+ this._invokeEventCallback("on_resize", size);
215
218
  if (size.state === "maximized")
216
- this.on_maximize();
219
+ this._invokeEventCallback("on_maximize");
217
220
  else if (size.state === "minimized")
218
- this.on_minimize();
221
+ this._invokeEventCallback("on_minimize");
219
222
  else if (size.state === "normal")
220
- this.on_restore();
223
+ this._invokeEventCallback("on_restore");
221
224
  return null;
222
225
  }
223
226
  if (funcName === "moved") {
224
- this.on_move(params[0]);
227
+ this._invokeEventCallback("on_move", params[0]);
225
228
  return null;
226
229
  }
227
230
  if (funcName === "visibility_changed") {
228
231
  const visible = params[0];
229
232
  if (visible)
230
- this.on_show();
233
+ this._invokeEventCallback("on_show");
231
234
  else
232
- this.on_hide();
235
+ this._invokeEventCallback("on_hide");
233
236
  return null;
234
237
  }
235
238
  if (funcName === "focus_changed") {
236
239
  const focused = params[0];
237
240
  if (focused)
238
- this.on_focus();
241
+ this._invokeEventCallback("on_focus");
239
242
  else
240
- this.on_blur();
243
+ this._invokeEventCallback("on_blur");
241
244
  return null;
242
245
  }
243
246
  if (funcName === "dom_ready") {
@@ -294,6 +297,24 @@ export class Window {
294
297
  callback();
295
298
  return null;
296
299
  }
300
+ _invokeEventCallback(name, ...args) {
301
+ const instanceCallback = this[name];
302
+ const optionCallback = this.options[name];
303
+ const callback = typeof instanceCallback === "function"
304
+ ? instanceCallback
305
+ : typeof optionCallback === "function"
306
+ ? optionCallback
307
+ : null;
308
+ if (callback)
309
+ callback(...args);
310
+ }
311
+ _notifyClosed() {
312
+ if (this._closeNotified)
313
+ return;
314
+ this._closeNotified = true;
315
+ this._invokeEventCallback("on_close");
316
+ this._resolveClosed();
317
+ }
297
318
  async _handleContextMenu(params) {
298
319
  if (this.on_context_menu) {
299
320
  const customMenu = await this.on_context_menu(params);
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ewvjs",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "Embedded WebView for JavaScript - Edge WebView2 bindings for Node.js",
5
5
  "workspaces": [
6
6
  "packages/*"