dzkcc-mflow 0.0.1 → 0.0.2

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.
Files changed (48) hide show
  1. package/dist/App.d.ts +22 -22
  2. package/dist/App.js +27 -27
  3. package/dist/_virtual/_tslib.js +30 -30
  4. package/dist/core/Api.d.ts +53 -53
  5. package/dist/core/Core.d.ts +18 -18
  6. package/dist/core/Core.js +78 -78
  7. package/dist/core/Decorators.d.ts +7 -7
  8. package/dist/core/Decorators.js +99 -99
  9. package/dist/core/ICocosResManager.d.ts +11 -11
  10. package/dist/core/ServiceLocator.d.ts +7 -7
  11. package/dist/core/ServiceLocator.js +31 -31
  12. package/dist/core/index.d.ts +5 -5
  13. package/dist/libs/BaseView.d.ts +21 -21
  14. package/dist/libs/BaseView.js +78 -78
  15. package/dist/libs/Broadcaster.d.ts +101 -101
  16. package/dist/libs/Broadcaster.js +240 -240
  17. package/dist/libs/CocosCore.d.ts +5 -5
  18. package/dist/libs/CocosCore.js +16 -16
  19. package/dist/libs/ResLoader.d.ts +10 -10
  20. package/dist/libs/ResLoader.js +76 -74
  21. package/dist/libs/UIManager.d.ts +34 -34
  22. package/dist/libs/UIManager.js +251 -251
  23. package/dist/libs/UIRoot.d.ts +4 -4
  24. package/dist/libs/UIRoot.js +4 -4
  25. package/dist/libs/index.d.ts +6 -6
  26. package/dist/mflow-tools.zip +0 -0
  27. package/dist/utils/ArrayExt.d.ts +67 -67
  28. package/dist/utils/ArrayExt.js +298 -298
  29. package/dist/utils/ArrayUtil.d.ts +41 -41
  30. package/dist/utils/ArrayUtil.js +93 -93
  31. package/dist/utils/CameraUtil.d.ts +10 -10
  32. package/dist/utils/CameraUtil.js +23 -23
  33. package/dist/utils/ImageUtil.d.ts +33 -33
  34. package/dist/utils/ImageUtil.js +92 -92
  35. package/dist/utils/MathUtil.d.ts +213 -213
  36. package/dist/utils/MathUtil.js +435 -435
  37. package/dist/utils/ObjectUtil.d.ts +24 -24
  38. package/dist/utils/ObjectUtil.js +58 -58
  39. package/dist/utils/PlatformUtil.d.ts +9 -9
  40. package/dist/utils/PlatformUtil.js +27 -27
  41. package/dist/utils/RotateUtil.d.ts +30 -30
  42. package/dist/utils/RotateUtil.js +63 -63
  43. package/dist/utils/StringUtil.d.ts +107 -107
  44. package/dist/utils/StringUtil.js +249 -249
  45. package/dist/utils/TimeUtil.d.ts +31 -31
  46. package/dist/utils/TimeUtil.js +85 -85
  47. package/dist/utils/index.d.ts +9 -9
  48. package/package.json +1 -1
package/dist/App.d.ts CHANGED
@@ -1,22 +1,22 @@
1
- import { ICore, IUIManager, IEventManager, ICocosResManager } from "./core";
2
- /**
3
- * 对外暴露的全局app对像,用于访问基础能力,为上层业务提供了简洁的访问方式
4
- *
5
- * @class App
6
- */
7
- export declare class App {
8
- static get core(): ICore;
9
- static readonly log: any;
10
- static readonly config: any;
11
- static get gui(): IUIManager;
12
- static readonly http: any;
13
- static readonly socket: any;
14
- static get res(): ICocosResManager;
15
- static get event(): IEventManager;
16
- static readonly storage: any;
17
- static readonly audio: any;
18
- static readonly timer: any;
19
- }
20
- declare global {
21
- var mf: typeof App;
22
- }
1
+ import { ICore, IUIManager, IEventManager, ICocosResManager } from "./core";
2
+ /**
3
+ * 对外暴露的全局app对像,用于访问基础能力,为上层业务提供了简洁的访问方式
4
+ *
5
+ * @class App
6
+ */
7
+ export declare class App {
8
+ static get core(): ICore;
9
+ static readonly log: any;
10
+ static readonly config: any;
11
+ static get gui(): IUIManager;
12
+ static readonly http: any;
13
+ static readonly socket: any;
14
+ static get res(): ICocosResManager;
15
+ static get event(): IEventManager;
16
+ static readonly storage: any;
17
+ static readonly audio: any;
18
+ static readonly timer: any;
19
+ }
20
+ declare global {
21
+ var mf: typeof App;
22
+ }
package/dist/App.js CHANGED
@@ -1,33 +1,33 @@
1
1
  import { ServiceLocator } from './core/ServiceLocator.js';
2
2
  import 'reflect-metadata';
3
3
 
4
- /**
5
- * 对外暴露的全局app对像,用于访问基础能力,为上层业务提供了简洁的访问方式
6
- *
7
- * @class App
8
- */
9
- class App {
10
- static get core() {
11
- return ServiceLocator.getService('core');
12
- }
13
- static get gui() {
14
- return ServiceLocator.getService('UIManager');
15
- }
16
- static get res() {
17
- return ServiceLocator.getService('ResLoader');
18
- }
19
- static get event() {
20
- return ServiceLocator.getService('EventManager');
21
- }
22
- }
23
- App.log = null;
24
- App.config = null;
25
- App.http = null;
26
- App.socket = null;
27
- App.storage = null;
28
- App.audio = null;
29
- App.timer = null;
30
- //例挂载到全局对象
4
+ /**
5
+ * 对外暴露的全局app对像,用于访问基础能力,为上层业务提供了简洁的访问方式
6
+ *
7
+ * @class App
8
+ */
9
+ class App {
10
+ static get core() {
11
+ return ServiceLocator.getService('core');
12
+ }
13
+ static get gui() {
14
+ return ServiceLocator.getService('UIManager');
15
+ }
16
+ static get res() {
17
+ return ServiceLocator.getService('ResLoader');
18
+ }
19
+ static get event() {
20
+ return ServiceLocator.getService('EventManager');
21
+ }
22
+ }
23
+ App.log = null;
24
+ App.config = null;
25
+ App.http = null;
26
+ App.socket = null;
27
+ App.storage = null;
28
+ App.audio = null;
29
+ App.timer = null;
30
+ //例挂载到全局对象
31
31
  globalThis.mf = App;
32
32
 
33
33
  export { App };
@@ -1,33 +1,33 @@
1
- /******************************************************************************
2
- Copyright (c) Microsoft Corporation.
3
-
4
- Permission to use, copy, modify, and/or distribute this software for any
5
- purpose with or without fee is hereby granted.
6
-
7
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
- PERFORMANCE OF THIS SOFTWARE.
14
- ***************************************************************************** */
15
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
16
-
17
-
18
- function __awaiter(thisArg, _arguments, P, generator) {
19
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20
- return new (P || (P = Promise))(function (resolve, reject) {
21
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
22
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24
- step((generator = generator.apply(thisArg, _arguments || [])).next());
25
- });
26
- }
27
-
28
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
29
- var e = new Error(message);
30
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
1
+ /******************************************************************************
2
+ Copyright (c) Microsoft Corporation.
3
+
4
+ Permission to use, copy, modify, and/or distribute this software for any
5
+ purpose with or without fee is hereby granted.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
+ PERFORMANCE OF THIS SOFTWARE.
14
+ ***************************************************************************** */
15
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
16
+
17
+
18
+ function __awaiter(thisArg, _arguments, P, generator) {
19
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20
+ return new (P || (P = Promise))(function (resolve, reject) {
21
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
22
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
25
+ });
26
+ }
27
+
28
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
29
+ var e = new Error(message);
30
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
31
31
  };
32
32
 
33
33
  export { __awaiter };
@@ -1,53 +1,53 @@
1
- export interface ICore {
2
- regModel<T extends IModel>(model: T): void;
3
- getModel<T extends IModel>(ctor: new () => T): T;
4
- regManager<T extends IManager>(manager: T): void;
5
- getManager<T extends IManager>(ctor: new () => T): T;
6
- getManager<T extends IManager>(symbol: symbol): T;
7
- }
8
- export interface IManager {
9
- initialize(): void;
10
- dispose(): void;
11
- }
12
- export interface IModel {
13
- initialize(): void;
14
- }
15
- export interface IView {
16
- onEnter(args?: any): void;
17
- onExit(): void;
18
- onPause(): void;
19
- onResume(): void;
20
- }
21
- export interface IUIManager {
22
- open<T extends IView>(viewType: new () => T, args?: any): Promise<T>;
23
- close<T extends IView>(viewortype: T | (new () => T), destory?: boolean): void;
24
- openAndPush<T extends IView>(viewType: new () => T, group: string, args?: any): Promise<T>;
25
- closeAndPop(group: string, destroy?: boolean): void;
26
- getTopView(): IView | undefined;
27
- clearStack(group: string, destroy?: boolean): void;
28
- }
29
- export interface IResManager {
30
- }
31
- export interface IEventMsgKey {
32
- }
33
- export type ToAnyIndexKey<IndexKey, AnyType> = IndexKey extends keyof AnyType ? IndexKey : keyof AnyType;
34
- export type OnListenerResult<T = any> = (data?: T, callBack?: any) => void;
35
- export type OnListener<T = any, K = any> = (value?: T, callBack?: OnListenerResult<K>, ...args: any[]) => void;
36
- export type ListenerHandler<keyType extends keyof any = any, ValueType = any, ResultType = any> = {
37
- key: keyType;
38
- listener: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>;
39
- context?: any;
40
- args?: any[];
41
- };
42
- export interface IEventManager<MsgKeyType extends IEventMsgKey = IEventMsgKey, ValueType = any, ResultType = any> {
43
- on<keyType extends keyof MsgKeyType>(keyOrHandler: keyType | ListenerHandler<keyType, ValueType, ResultType> | ListenerHandler<keyType, ValueType, ResultType>[], listener?: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>, context?: any, args?: any[]): void;
44
- once<keyType extends keyof MsgKeyType>(keyOrHandler: keyType | ListenerHandler<keyType, ValueType, ResultType> | ListenerHandler<keyType, ValueType, ResultType>[], listener?: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>, context?: any, args?: any[]): void;
45
- off<keyType extends keyof MsgKeyType>(key: keyType, listener: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>): void;
46
- offAll<keyType extends keyof MsgKeyType>(key?: keyType, context?: any): void;
47
- dispatch<keyType extends keyof MsgKeyType>(key: keyType, data?: ValueType[ToAnyIndexKey<keyType, ValueType>], callback?: OnListenerResult<ResultType[ToAnyIndexKey<keyType, ResultType>]>, persistence?: boolean): void;
48
- dispatchSticky<keyType extends keyof MsgKeyType>(key: keyType, data?: ValueType[ToAnyIndexKey<keyType, ValueType>], callback?: OnListenerResult<ResultType[ToAnyIndexKey<keyType, ResultType>]>, persistence?: boolean): void;
49
- removeStickyBroadcast(key: keyof MsgKeyType): void;
50
- isRegistered(key: keyof MsgKeyType): boolean;
51
- getPersistentValue<keyType extends keyof MsgKeyType>(key: keyType): ValueType[ToAnyIndexKey<keyType, ValueType>] | undefined;
52
- dispose(): void;
53
- }
1
+ export interface ICore {
2
+ regModel<T extends IModel>(model: T): void;
3
+ getModel<T extends IModel>(ctor: new () => T): T;
4
+ regManager<T extends IManager>(manager: T): void;
5
+ getManager<T extends IManager>(ctor: new () => T): T;
6
+ getManager<T extends IManager>(symbol: symbol): T;
7
+ }
8
+ export interface IManager {
9
+ initialize(): void;
10
+ dispose(): void;
11
+ }
12
+ export interface IModel {
13
+ initialize(): void;
14
+ }
15
+ export interface IView {
16
+ onEnter(args?: any): void;
17
+ onExit(): void;
18
+ onPause(): void;
19
+ onResume(): void;
20
+ }
21
+ export interface IUIManager {
22
+ open<T extends IView>(viewType: new () => T, args?: any): Promise<T>;
23
+ close<T extends IView>(viewortype: T | (new () => T), destory?: boolean): void;
24
+ openAndPush<T extends IView>(viewType: new () => T, group: string, args?: any): Promise<T>;
25
+ closeAndPop(group: string, destroy?: boolean): void;
26
+ getTopView(): IView | undefined;
27
+ clearStack(group: string, destroy?: boolean): void;
28
+ }
29
+ export interface IResManager {
30
+ }
31
+ export interface IEventMsgKey {
32
+ }
33
+ export type ToAnyIndexKey<IndexKey, AnyType> = IndexKey extends keyof AnyType ? IndexKey : keyof AnyType;
34
+ export type OnListenerResult<T = any> = (data?: T, callBack?: any) => void;
35
+ export type OnListener<T = any, K = any> = (value?: T, callBack?: OnListenerResult<K>, ...args: any[]) => void;
36
+ export type ListenerHandler<keyType extends keyof any = any, ValueType = any, ResultType = any> = {
37
+ key: keyType;
38
+ listener: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>;
39
+ context?: any;
40
+ args?: any[];
41
+ };
42
+ export interface IEventManager<MsgKeyType extends IEventMsgKey = IEventMsgKey, ValueType = any, ResultType = any> {
43
+ on<keyType extends keyof MsgKeyType>(keyOrHandler: keyType | ListenerHandler<keyType, ValueType, ResultType> | ListenerHandler<keyType, ValueType, ResultType>[], listener?: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>, context?: any, args?: any[]): void;
44
+ once<keyType extends keyof MsgKeyType>(keyOrHandler: keyType | ListenerHandler<keyType, ValueType, ResultType> | ListenerHandler<keyType, ValueType, ResultType>[], listener?: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>, context?: any, args?: any[]): void;
45
+ off<keyType extends keyof MsgKeyType>(key: keyType, listener: OnListener<ValueType[ToAnyIndexKey<keyType, ValueType>], ResultType[ToAnyIndexKey<keyType, ResultType>]>): void;
46
+ offAll<keyType extends keyof MsgKeyType>(key?: keyType, context?: any): void;
47
+ dispatch<keyType extends keyof MsgKeyType>(key: keyType, data?: ValueType[ToAnyIndexKey<keyType, ValueType>], callback?: OnListenerResult<ResultType[ToAnyIndexKey<keyType, ResultType>]>, persistence?: boolean): void;
48
+ dispatchSticky<keyType extends keyof MsgKeyType>(key: keyType, data?: ValueType[ToAnyIndexKey<keyType, ValueType>], callback?: OnListenerResult<ResultType[ToAnyIndexKey<keyType, ResultType>]>, persistence?: boolean): void;
49
+ removeStickyBroadcast(key: keyof MsgKeyType): void;
50
+ isRegistered(key: keyof MsgKeyType): boolean;
51
+ getPersistentValue<keyType extends keyof MsgKeyType>(key: keyType): ValueType[ToAnyIndexKey<keyType, ValueType>] | undefined;
52
+ dispose(): void;
53
+ }
@@ -1,18 +1,18 @@
1
- import { ICore, IEventManager, IManager, IModel } from "./Api";
2
- export declare abstract class AbstractCore<T extends AbstractCore<T>> implements ICore {
3
- private readonly container;
4
- constructor();
5
- protected abstract initialize(): void;
6
- regModel<T extends IModel>(model: T): void;
7
- getModel<T extends IModel>(ctor: new () => T): T;
8
- regManager<T extends IManager>(manager: T): void;
9
- getManager<T extends IManager>(indent: (new () => T) | symbol): T;
10
- }
11
- export declare abstract class AbstractManager implements IManager {
12
- private eventManager?;
13
- abstract initialize(): void;
14
- dispose(): void;
15
- protected getModel<T extends IModel>(ctor: new () => T): T;
16
- protected getEventManager(): IEventManager;
17
- private releaseEventManager;
18
- }
1
+ import { ICore, IEventManager, IManager, IModel } from "./Api";
2
+ export declare abstract class AbstractCore<T extends AbstractCore<T>> implements ICore {
3
+ private readonly container;
4
+ constructor();
5
+ protected abstract initialize(): void;
6
+ regModel<T extends IModel>(model: T): void;
7
+ getModel<T extends IModel>(ctor: new () => T): T;
8
+ regManager<T extends IManager>(manager: T): void;
9
+ getManager<T extends IManager>(indent: (new () => T) | symbol): T;
10
+ }
11
+ export declare abstract class AbstractManager implements IManager {
12
+ private eventManager?;
13
+ abstract initialize(): void;
14
+ dispose(): void;
15
+ protected getModel<T extends IModel>(ctor: new () => T): T;
16
+ protected getEventManager(): IEventManager;
17
+ private releaseEventManager;
18
+ }
package/dist/core/Core.js CHANGED
@@ -1,84 +1,84 @@
1
1
  import { ServiceLocator } from './ServiceLocator.js';
2
2
  import { getInterface } from './Decorators.js';
3
3
 
4
- class Container {
5
- constructor() {
6
- this.ctor2ins = new Map(); // 使用构造函数作为键
7
- this.symbol2ins = new Map();
8
- }
9
- regByCtor(type, ins) {
10
- this.ctor2ins.set(type, ins);
11
- }
12
- getByCtor(type) {
13
- const ins = this.ctor2ins.get(type);
14
- if (!ins)
15
- throw new Error(`${type.name} not registered!`);
16
- return ins;
17
- }
18
- regBySymbol(ctor, ins) {
19
- const sym = getInterface(ctor);
20
- this.symbol2ins.set(sym, ins);
21
- }
22
- getBySymbol(sym) {
23
- const ins = this.symbol2ins.get(sym);
24
- if (!ins)
25
- throw new Error(`${sym.toString()} not registered!`);
26
- return ins;
27
- }
28
- }
29
- class AbstractCore {
30
- constructor() {
31
- this.container = new Container();
32
- this.initialize();
33
- }
34
- // 注册与获取模型
35
- regModel(model) {
36
- this.container.regByCtor(Object.getPrototypeOf(model).constructor, model);
37
- model.initialize();
38
- }
39
- getModel(ctor) {
40
- return this.container.getByCtor(ctor);
41
- }
42
- // 注册与获取管理器
43
- regManager(manager) {
44
- const ctor = Object.getPrototypeOf(manager).constructor;
45
- this.container.regByCtor(ctor, manager);
46
- this.container.regBySymbol(ctor, manager); // 同时注册Symbol
47
- manager.initialize();
48
- }
49
- getManager(indent) {
50
- if (typeof indent === 'symbol') {
51
- return this.container.getBySymbol(indent);
52
- }
53
- else {
54
- return this.container.getByCtor(indent);
55
- }
56
- }
57
- }
58
- class AbstractManager {
59
- dispose() {
60
- this.releaseEventManager();
61
- }
62
- getModel(ctor) {
63
- // 保持框架独立性,不与具体应用入口(app类)耦合
64
- // 框架高内聚,使用ServiceLocator获取core
65
- return ServiceLocator.getService('core').getModel(ctor);
66
- }
67
- // 事件管理器获取(通过服务定位器解耦)
68
- getEventManager() {
69
- if (!this.eventManager) {
70
- this.eventManager = ServiceLocator.getService('EventManager');
71
- }
72
- return this.eventManager;
73
- }
74
- releaseEventManager() {
75
- var _a, _b;
76
- if (this.eventManager) {
77
- // 假设 IEventManager 有销毁逻辑(如第三方库)
78
- (_b = (_a = this.eventManager) === null || _a === void 0 ? void 0 : _a.dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
79
- this.eventManager = undefined;
80
- }
81
- }
4
+ class Container {
5
+ constructor() {
6
+ this.ctor2ins = new Map(); // 使用构造函数作为键
7
+ this.symbol2ins = new Map();
8
+ }
9
+ regByCtor(type, ins) {
10
+ this.ctor2ins.set(type, ins);
11
+ }
12
+ getByCtor(type) {
13
+ const ins = this.ctor2ins.get(type);
14
+ if (!ins)
15
+ throw new Error(`${type.name} not registered!`);
16
+ return ins;
17
+ }
18
+ regBySymbol(ctor, ins) {
19
+ const sym = getInterface(ctor);
20
+ this.symbol2ins.set(sym, ins);
21
+ }
22
+ getBySymbol(sym) {
23
+ const ins = this.symbol2ins.get(sym);
24
+ if (!ins)
25
+ throw new Error(`${sym.toString()} not registered!`);
26
+ return ins;
27
+ }
28
+ }
29
+ class AbstractCore {
30
+ constructor() {
31
+ this.container = new Container();
32
+ this.initialize();
33
+ }
34
+ // 注册与获取模型
35
+ regModel(model) {
36
+ this.container.regByCtor(Object.getPrototypeOf(model).constructor, model);
37
+ model.initialize();
38
+ }
39
+ getModel(ctor) {
40
+ return this.container.getByCtor(ctor);
41
+ }
42
+ // 注册与获取管理器
43
+ regManager(manager) {
44
+ const ctor = Object.getPrototypeOf(manager).constructor;
45
+ this.container.regByCtor(ctor, manager);
46
+ this.container.regBySymbol(ctor, manager); // 同时注册Symbol
47
+ manager.initialize();
48
+ }
49
+ getManager(indent) {
50
+ if (typeof indent === 'symbol') {
51
+ return this.container.getBySymbol(indent);
52
+ }
53
+ else {
54
+ return this.container.getByCtor(indent);
55
+ }
56
+ }
57
+ }
58
+ class AbstractManager {
59
+ dispose() {
60
+ this.releaseEventManager();
61
+ }
62
+ getModel(ctor) {
63
+ // 保持框架独立性,不与具体应用入口(app类)耦合
64
+ // 框架高内聚,使用ServiceLocator获取core
65
+ return ServiceLocator.getService('core').getModel(ctor);
66
+ }
67
+ // 事件管理器获取(通过服务定位器解耦)
68
+ getEventManager() {
69
+ if (!this.eventManager) {
70
+ this.eventManager = ServiceLocator.getService('EventManager');
71
+ }
72
+ return this.eventManager;
73
+ }
74
+ releaseEventManager() {
75
+ var _a, _b;
76
+ if (this.eventManager) {
77
+ // 假设 IEventManager 有销毁逻辑(如第三方库)
78
+ (_b = (_a = this.eventManager) === null || _a === void 0 ? void 0 : _a.dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
79
+ this.eventManager = undefined;
80
+ }
81
+ }
82
82
  }
83
83
 
84
84
  export { AbstractCore, AbstractManager };
@@ -1,7 +1,7 @@
1
- import { ICore, IManager } from "./Api";
2
- import 'reflect-metadata';
3
- export declare function getInterface<T extends Function>(ctor: T): symbol;
4
- export declare function model(): (ctor: Function) => void;
5
- export declare function autoRegister(core: ICore): void;
6
- export declare function managedWithClean(): (ctor: Function) => any;
7
- export declare function injectManager(sym: symbol): (target: IManager, prop: string) => void;
1
+ import { ICore, IManager } from "./Api";
2
+ import 'reflect-metadata';
3
+ export declare function getInterface<T extends Function>(ctor: T): symbol;
4
+ export declare function model(): (ctor: Function) => void;
5
+ export declare function autoRegister(core: ICore): void;
6
+ export declare function managedWithClean(): (ctor: Function) => any;
7
+ export declare function injectManager(sym: symbol): (target: IManager, prop: string) => void;