floating-live 0.16.0-alpha.4 → 0.16.0-alpha.6
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 +7 -4
- package/dist/app.js +11 -5
- package/dist/plugin/context/CommonPluginContext.d.ts +2 -1
- package/dist/plugin/context/CommonPluginContext.js +9 -4
- package/dist/plugin/types.d.ts +3 -1
- package/dist/utils/EventEmitter.d.ts +2 -2
- package/dist/utils/EventEmitter.js +4 -4
- package/package.json +1 -1
package/dist/app.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { CommandOptions, CommandCallOptions, AppCommandMap, CommandFunction } fr
|
|
|
2
2
|
import { AppError } from "./error";
|
|
3
3
|
import { AppEventDetailMap, AppEventEmitOptions, AppEventListener } from "./event";
|
|
4
4
|
import { AppHookMap, HookCallOptions, HookContext, HookFunction, HookUseOptions } from "./hook";
|
|
5
|
-
import { PluginContext, PluginInitOptions } from "./plugin";
|
|
5
|
+
import { AppPluginExposesMap, PluginContext, PluginInitOptions } from "./plugin";
|
|
6
6
|
import { CustomEventEmitter } from "./utils/EventEmitter";
|
|
7
7
|
import { AppValueMap, ValueOptions } from "./value";
|
|
8
8
|
export declare class App extends CustomEventEmitter implements PluginContext {
|
|
@@ -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]
|
|
15
|
-
once<K extends keyof AppEventDetailMap>(type: K, listener: AppEventListener<AppEventDetailMap[K]
|
|
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
|
/** 发送错误 */
|
|
@@ -23,7 +24,8 @@ export declare class App extends CustomEventEmitter implements PluginContext {
|
|
|
23
24
|
/** 取消注册插件 */
|
|
24
25
|
unregister(pluginName: string): void;
|
|
25
26
|
getPlugin(pluginName: string): void;
|
|
26
|
-
whenRegister(pluginName:
|
|
27
|
+
whenRegister<K extends keyof AppPluginExposesMap>(pluginName: K, callback: (exposes: AppPluginExposesMap[K]) => (() => void) | undefined): void;
|
|
28
|
+
whenRegister(pluginName: string, callback: () => (() => void) | undefined): void;
|
|
27
29
|
getPluginExposes(pluginName: string): any;
|
|
28
30
|
hasPlugin(pluginName: string): boolean;
|
|
29
31
|
registerCommand<T extends keyof AppCommandMap>(name: T, func: CommandFunction<AppCommandMap[T]>, options?: CommandOptions): void;
|
|
@@ -43,4 +45,5 @@ export declare class App extends CustomEventEmitter implements PluginContext {
|
|
|
43
45
|
destroy(): void;
|
|
44
46
|
/** 拓展值 */
|
|
45
47
|
define(): void;
|
|
48
|
+
get signal(): AbortSignal;
|
|
46
49
|
}
|
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
|
}
|
|
@@ -21,7 +21,7 @@ export declare class CommonPluginContext implements PluginContext {
|
|
|
21
21
|
register(plugin: PluginConstructor, options?: PluginInitOptions): void;
|
|
22
22
|
unregister(pluginName: string): void;
|
|
23
23
|
getPluginExposes<K extends keyof AppPluginExposesMap>(pluginName: K): AppPluginExposesMap[K];
|
|
24
|
-
whenRegister
|
|
24
|
+
whenRegister(pluginName: string, callback: (exposes: any) => (() => void) | undefined): void;
|
|
25
25
|
hasPlugin(pluginName: string): boolean;
|
|
26
26
|
registerValue<K extends keyof AppValueMap>(name: K, options: ValueOptions<AppValueMap[K]>): void;
|
|
27
27
|
unregisterValue(name: string): void;
|
|
@@ -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,
|
|
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();
|
package/dist/plugin/types.d.ts
CHANGED
|
@@ -39,7 +39,8 @@ export interface PluginContext {
|
|
|
39
39
|
/** 获取插件暴露对象 */
|
|
40
40
|
getPluginExposes<K extends keyof AppPluginExposesMap>(pluginName: K): AppPluginExposesMap[K];
|
|
41
41
|
/** 等待plugin注册 */
|
|
42
|
-
whenRegister(pluginName:
|
|
42
|
+
whenRegister<K extends keyof AppPluginExposesMap>(pluginName: K, callback: (exposes: AppPluginExposesMap[K]) => (() => void) | undefined): void;
|
|
43
|
+
whenRegister(pluginName: string, callback: () => (() => void) | void): void;
|
|
43
44
|
/** 是否存在插件 */
|
|
44
45
|
hasPlugin(pluginName: string): boolean;
|
|
45
46
|
/** 注册指令 */
|
|
@@ -71,6 +72,7 @@ export interface PluginContext {
|
|
|
71
72
|
/** 设置值 */
|
|
72
73
|
setValue<K extends keyof AppValueMap>(name: K, value: AppValueMap[K]): void;
|
|
73
74
|
destroy(): void;
|
|
75
|
+
get signal(): AbortSignal;
|
|
74
76
|
}
|
|
75
77
|
export interface AppPluginExposesMap {
|
|
76
78
|
"": {};
|
|
@@ -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));
|