floating-live 0.16.0-alpha.4 → 0.16.0-alpha.5

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/app.d.ts CHANGED
@@ -10,9 +10,10 @@ export declare class App extends CustomEventEmitter implements PluginContext {
10
10
  private pluginManager;
11
11
  private commandManager;
12
12
  private valueManager;
13
+ private abortController;
13
14
  constructor();
14
- on<K extends keyof AppEventDetailMap>(type: K, listener: AppEventListener<AppEventDetailMap[K]>): void;
15
- once<K extends keyof AppEventDetailMap>(type: K, listener: AppEventListener<AppEventDetailMap[K]>): void;
15
+ on<K extends keyof AppEventDetailMap>(type: K, listener: AppEventListener<AppEventDetailMap[K]>, signal?: AbortSignal): void;
16
+ once<K extends keyof AppEventDetailMap>(type: K, listener: AppEventListener<AppEventDetailMap[K]>, signal?: AbortSignal): void;
16
17
  off<K extends keyof AppEventDetailMap>(type: K, listener: AppEventListener<AppEventDetailMap[K]>): void;
17
18
  emit<K extends keyof AppEventDetailMap>(type: K, detail: AppEventDetailMap[K], options?: AppEventEmitOptions & EventInit): void;
18
19
  /** 发送错误 */
@@ -43,4 +44,5 @@ export declare class App extends CustomEventEmitter implements PluginContext {
43
44
  destroy(): void;
44
45
  /** 拓展值 */
45
46
  define(): void;
47
+ get signal(): AbortSignal;
46
48
  }
package/dist/app.js CHANGED
@@ -7,16 +7,17 @@ import { ValueManager } from "./value/manager";
7
7
  export class App extends CustomEventEmitter {
8
8
  constructor() {
9
9
  super();
10
+ this.abortController = new AbortController();
10
11
  this.hookManager = new HookManager(this);
11
12
  this.pluginManager = new PluginManager(this);
12
13
  this.commandManager = new CommandManager(this);
13
14
  this.valueManager = new ValueManager(this);
14
15
  }
15
- on(type, listener) {
16
- super.on(type, listener);
16
+ on(type, listener, signal = this.signal) {
17
+ super.on(type, listener, signal);
17
18
  }
18
- once(type, listener) {
19
- super.once(type, listener);
19
+ once(type, listener, signal = this.signal) {
20
+ super.once(type, listener, signal);
20
21
  }
21
22
  off(type, listener) {
22
23
  super.off(type, listener);
@@ -119,8 +120,13 @@ export class App extends CustomEventEmitter {
119
120
  setValue(name, value) {
120
121
  this.valueManager.set(name, value);
121
122
  }
122
- destroy() { }
123
+ destroy() {
124
+ this.abortController.abort();
125
+ }
123
126
  //--- 其他 ---//
124
127
  /** 拓展值 */
125
128
  define() { }
129
+ get signal() {
130
+ return this.abortController.signal;
131
+ }
126
132
  }
@@ -42,4 +42,5 @@ export declare class CommonPluginContext implements PluginContext {
42
42
  getValue<K extends keyof AppValueMap>(name: K): undefined;
43
43
  setValue<K extends keyof AppValueMap>(name: K, value: AppValueMap[K]): void;
44
44
  destroy(): void;
45
+ get signal(): AbortSignal;
45
46
  }
@@ -9,7 +9,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
11
  };
12
- var _CommonPluginContext_app, _CommonPluginContext_registered;
12
+ var _CommonPluginContext_app, _CommonPluginContext_abortController, _CommonPluginContext_registered;
13
13
  import { AppError } from "../../error";
14
14
  class ListMap extends Map {
15
15
  addItem(key, value) {
@@ -35,6 +35,8 @@ export class CommonPluginContext {
35
35
  constructor(app, pluginName) {
36
36
  /** 主程序,插件不可访问 */
37
37
  _CommonPluginContext_app.set(this, void 0);
38
+ /** AbortController,插件不可访问 */
39
+ _CommonPluginContext_abortController.set(this, new AbortController());
38
40
  _CommonPluginContext_registered.set(this, {
39
41
  plugins: new Set(),
40
42
  values: new Set(),
@@ -262,12 +264,15 @@ export class CommonPluginContext {
262
264
  }
263
265
  }
264
266
  destroy() {
265
- const { plugins, events, values, hooks, commands } = __classPrivateFieldGet(this, _CommonPluginContext_registered, "f");
267
+ const { plugins, values, hooks, commands } = __classPrivateFieldGet(this, _CommonPluginContext_registered, "f");
266
268
  plugins.forEach((pluginName) => __classPrivateFieldGet(this, _CommonPluginContext_app, "f").unregister(pluginName));
267
- events.forEach((listenerList, eventName) => listenerList.forEach((listener) => __classPrivateFieldGet(this, _CommonPluginContext_app, "f").off(eventName, listener)));
268
269
  hooks.forEach((hookList, name) => hookList.forEach((hookFunc) => __classPrivateFieldGet(this, _CommonPluginContext_app, "f").off(name, hookFunc)));
269
270
  commands.forEach((name) => __classPrivateFieldGet(this, _CommonPluginContext_app, "f").unregisterCommand(name));
270
271
  values.forEach((name) => __classPrivateFieldGet(this, _CommonPluginContext_app, "f").unregisterValue(name));
272
+ __classPrivateFieldGet(this, _CommonPluginContext_abortController, "f").abort();
273
+ }
274
+ get signal() {
275
+ return __classPrivateFieldGet(this, _CommonPluginContext_abortController, "f").signal;
271
276
  }
272
277
  }
273
- _CommonPluginContext_app = new WeakMap(), _CommonPluginContext_registered = new WeakMap();
278
+ _CommonPluginContext_app = new WeakMap(), _CommonPluginContext_abortController = new WeakMap(), _CommonPluginContext_registered = new WeakMap();
@@ -71,6 +71,7 @@ export interface PluginContext {
71
71
  /** 设置值 */
72
72
  setValue<K extends keyof AppValueMap>(name: K, value: AppValueMap[K]): void;
73
73
  destroy(): void;
74
+ get signal(): AbortSignal;
74
75
  }
75
76
  export interface AppPluginExposesMap {
76
77
  "": {};
@@ -1,6 +1,6 @@
1
1
  export declare class CustomEventEmitter extends EventTarget {
2
- on(type: string, listener: (e: any) => void): void;
3
- once(type: string, listener: (e: any) => void): void;
2
+ on(type: string, listener: (e: any) => void, signal?: AbortSignal): void;
3
+ once(type: string, listener: (e: any) => void, signal?: AbortSignal): void;
4
4
  off(type: string, listener: (e: any) => void): void;
5
5
  emit(type: string, detail: any, options?: EventInit): void;
6
6
  }
@@ -10,11 +10,11 @@ function getListenerCallback(listener) {
10
10
  return newItem;
11
11
  }
12
12
  export class CustomEventEmitter extends EventTarget {
13
- on(type, listener) {
14
- this.addEventListener(type, getListenerCallback(listener));
13
+ on(type, listener, signal) {
14
+ this.addEventListener(type, getListenerCallback(listener), { signal });
15
15
  }
16
- once(type, listener) {
17
- this.addEventListener(type, getListenerCallback(listener), { once: true });
16
+ once(type, listener, signal) {
17
+ this.addEventListener(type, getListenerCallback(listener), { once: true, signal });
18
18
  }
19
19
  off(type, listener) {
20
20
  this.removeEventListener(type, getListenerCallback(listener));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "floating-live",
3
- "version": "0.16.0-alpha.4",
3
+ "version": "0.16.0-alpha.5",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",