@suey/rxp-meta 0.2.2 → 0.2.3

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 (43) hide show
  1. package/package.json +10 -10
  2. package/tdist/commonjs/index.js +0 -18
  3. package/tdist/commonjs/src/base/InnerZustandStoreManager.js +0 -35
  4. package/tdist/commonjs/src/base/index.js +0 -17
  5. package/tdist/commonjs/src/base/rxpInnerStore.js +0 -66
  6. package/tdist/commonjs/src/constants/index.js +0 -25
  7. package/tdist/commonjs/src/extension/At.js +0 -113
  8. package/tdist/commonjs/src/extension/ExtensionManager.js +0 -115
  9. package/tdist/commonjs/src/extension/ExtensionManager.old.js +0 -156
  10. package/tdist/commonjs/src/extension/declare.js +0 -2
  11. package/tdist/commonjs/src/extension/index.js +0 -5
  12. package/tdist/commonjs/src/metadata/MetadataManager.js +0 -157
  13. package/tdist/commonjs/src/metadata/MetadataManager.old.js +0 -171
  14. package/tdist/commonjs/src/metadata/declare.js +0 -2
  15. package/tdist/commonjs/src/metadata/index.js +0 -5
  16. package/tdist/esm/index.js +0 -2
  17. package/tdist/esm/src/base/InnerZustandStoreManager.js +0 -31
  18. package/tdist/esm/src/base/index.js +0 -1
  19. package/tdist/esm/src/base/rxpInnerStore.js +0 -62
  20. package/tdist/esm/src/constants/index.js +0 -22
  21. package/tdist/esm/src/extension/At.js +0 -109
  22. package/tdist/esm/src/extension/ExtensionManager.js +0 -110
  23. package/tdist/esm/src/extension/ExtensionManager.old.js +0 -152
  24. package/tdist/esm/src/extension/declare.js +0 -1
  25. package/tdist/esm/src/extension/index.js +0 -1
  26. package/tdist/esm/src/metadata/MetadataManager.js +0 -153
  27. package/tdist/esm/src/metadata/MetadataManager.old.js +0 -167
  28. package/tdist/esm/src/metadata/declare.js +0 -1
  29. package/tdist/esm/src/metadata/index.js +0 -1
  30. /package/{tdist/lib → lib}/index.d.ts +0 -0
  31. /package/{tdist/lib → lib}/src/base/InnerZustandStoreManager.d.ts +0 -0
  32. /package/{tdist/lib → lib}/src/base/index.d.ts +0 -0
  33. /package/{tdist/lib → lib}/src/base/rxpInnerStore.d.ts +0 -0
  34. /package/{tdist/lib → lib}/src/constants/index.d.ts +0 -0
  35. /package/{tdist/lib → lib}/src/extension/At.d.ts +0 -0
  36. /package/{tdist/lib → lib}/src/extension/ExtensionManager.d.ts +0 -0
  37. /package/{tdist/lib → lib}/src/extension/ExtensionManager.old.d.ts +0 -0
  38. /package/{tdist/lib → lib}/src/extension/declare.d.ts +0 -0
  39. /package/{tdist/lib → lib}/src/extension/index.d.ts +0 -0
  40. /package/{tdist/lib → lib}/src/metadata/MetadataManager.d.ts +0 -0
  41. /package/{tdist/lib → lib}/src/metadata/MetadataManager.old.d.ts +0 -0
  42. /package/{tdist/lib → lib}/src/metadata/declare.d.ts +0 -0
  43. /package/{tdist/lib → lib}/src/metadata/index.d.ts +0 -0
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
1
  {
2
2
  "name": "@suey/rxp-meta",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "author": "suey",
5
5
  "private": false,
6
6
  "description": "扩展包",
7
- "main": "./tdist/commonjs/index.js",
7
+ "main": "./dist/commonjs/index.js",
8
8
  "keywords": [],
9
9
  "scripts": {
10
10
  "typecheck": "tsc --noEmit -p tsconfig.json",
11
11
  "build": "pnpm build-commonjs && pnpm build-esm && pnpm build-types",
12
- "build-esm": "tsc -p . --outDir ./tdist/esm --module ESNext --declaration false --removeComments true --incremental false",
13
- "build-commonjs": "tsc -p . --outDir ./tdist/commonjs --module commonjs --declaration false --removeComments true --incremental false",
14
- "build-types": "tsc -p . --outDir ./tdist/lib --emitDeclarationOnly --removeComments false --incremental false",
12
+ "build-esm": "tsc -p . --outDir ./dist/esm --module ESNext --declaration false --removeComments true --incremental false",
13
+ "build-commonjs": "tsc -p . --outDir ./dist/commonjs --module commonjs --declaration false --removeComments true --incremental false",
14
+ "build-types": "tsc -p . --outDir ./lib --emitDeclarationOnly --removeComments false --incremental false",
15
15
  "test": "jest -o",
16
16
  "test:all": "jest",
17
17
  "runner": "pnpm -C ./runner dev"
18
18
  },
19
- "module": "./tdist/esm/index.js",
20
- "types": "./tdist/lib/index.d.ts",
19
+ "module": "./dist/esm/index.js",
20
+ "types": "./lib/index.d.ts",
21
21
  "exports": {
22
22
  ".": {
23
- "import": "./tdist/esm/index.js",
24
- "require": "./tdist/commonjs/index.js",
25
- "types": "./tdist/lib/index.d.ts"
23
+ "import": "./dist/esm/index.js",
24
+ "require": "./dist/commonjs/index.js",
25
+ "types": "./lib/index.d.ts"
26
26
  }
27
27
  }
28
28
  }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./src/extension"), exports);
18
- __exportStar(require("./src/metadata"), exports);
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InnerZustandStoreManager = void 0;
4
- const zustand_1 = require("zustand");
5
- const immer_1 = require("zustand/middleware/immer");
6
- class InnerZustandStoreManager {
7
- store = (0, zustand_1.create)()((0, immer_1.immer)(() => ({
8
- value: {}
9
- })));
10
- listeners = new Set();
11
- unsubscribeListeners = this.store.subscribe(() => {
12
- this.listeners.forEach(listener => listener());
13
- });
14
- updateStore() {
15
- this.store.setState(() => ({ value: {} }));
16
- }
17
- useStoreValueToRerenderComponent() {
18
- return this.store(store => store.value);
19
- }
20
- unsubscribe(listener) {
21
- this.listeners.delete(listener);
22
- }
23
- subscribe(listener) {
24
- this.listeners.add(listener);
25
- return () => this.unsubscribe(listener);
26
- }
27
- destroy() {
28
- this.listeners.clear();
29
- this.unsubscribeListeners();
30
- }
31
- getListenerCount() {
32
- return this.listeners.size;
33
- }
34
- }
35
- exports.InnerZustandStoreManager = InnerZustandStoreManager;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./rxpInnerStore"), exports);
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RxpInnerStore = void 0;
4
- const react_1 = require("react");
5
- class RxpInnerStore {
6
- store = {
7
- value: {},
8
- listeners: new Set(),
9
- live: true,
10
- };
11
- triggerEffects = async () => {
12
- if (!this.store.live)
13
- return;
14
- this.store.listeners.forEach(listener => {
15
- if (typeof listener === 'function')
16
- listener();
17
- });
18
- };
19
- update() {
20
- if (!this.store.live)
21
- return;
22
- this.store.value = {};
23
- this.triggerEffects().catch(err => {
24
- });
25
- }
26
- unsubscribe(listener) {
27
- if (!this.store.live)
28
- return false;
29
- if (typeof listener !== 'function')
30
- return false;
31
- return this.store.listeners.delete(listener);
32
- }
33
- subscribe(listener) {
34
- if (!this.store.live)
35
- return () => { };
36
- if (typeof listener !== 'function')
37
- return () => { };
38
- this.store.listeners.add(listener);
39
- return () => this.unsubscribe(listener);
40
- }
41
- destroy() {
42
- this.store.listeners.clear();
43
- this.store.live = false;
44
- }
45
- revive() {
46
- this.store.live = true;
47
- }
48
- getListenerCount() {
49
- return this.store.listeners.size;
50
- }
51
- useValueToRenderReactComponent() {
52
- const [_, setState] = (0, react_1.useState)({});
53
- const destroySubscribe = (0, react_1.useRef)();
54
- const refresh = (0, react_1.useCallback)(() => setState(() => ({})), []);
55
- (0, react_1.useLayoutEffect)(() => {
56
- destroySubscribe.current = this.subscribe(refresh);
57
- return () => {
58
- if (destroySubscribe.current)
59
- destroySubscribe.current();
60
- destroySubscribe.current = void 0;
61
- };
62
- }, []);
63
- return [this.store.value];
64
- }
65
- }
66
- exports.RxpInnerStore = RxpInnerStore;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MetadataErrors = exports.ExtensionErrors = void 0;
4
- var ExtensionErrors;
5
- (function (ExtensionErrors) {
6
- ExtensionErrors["ExtensionNameIsRequired"] = "Extension name is required";
7
- ExtensionErrors["ExtensionNameMustBeString"] = "Extension name must be string";
8
- ExtensionErrors["ExtensionVersionIsRequired"] = "Extension version is required";
9
- ExtensionErrors["ExtensionVersionMustBeString"] = "Extension version must be string";
10
- ExtensionErrors["ExtensionOnActivatedIsRequired"] = "Extension onActivated is required";
11
- ExtensionErrors["ExtensionOnActivatedMustBeFunction"] = "Extension onActivated must be function";
12
- ExtensionErrors["ExtensionIsNotExist"] = "Extension is not exist";
13
- })(ExtensionErrors || (exports.ExtensionErrors = ExtensionErrors = {}));
14
- var MetadataErrors;
15
- (function (MetadataErrors) {
16
- MetadataErrors["MetadataKeyIsRequired"] = "Metadata key is required";
17
- MetadataErrors["MetadataKeyMustBeString"] = "Metadata key must be string";
18
- MetadataErrors["MetadataKeyMustBeSymbol"] = "Metadata key must be symbol";
19
- MetadataErrors["MetadataKeyMustBeNumber"] = "Metadata key must be number";
20
- MetadataErrors["MetadataKeyMustBeBoolean"] = "Metadata key must be boolean";
21
- MetadataErrors["MetadataKeyMustBeFunction"] = "Metadata key must be function";
22
- MetadataErrors["MetadataKeyMustBeObject"] = "Metadata key must be object";
23
- MetadataErrors["MetadataKeyMustBeArray"] = "Metadata key must be array";
24
- })(MetadataErrors || (exports.MetadataErrors = MetadataErrors = {}));
25
- ;
@@ -1,113 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExtensionManager = exports.ExtensionSymbolTagKey = exports.ExtensionSymbolTag = void 0;
4
- const InnerZustandStoreManager_1 = require("../base/InnerZustandStoreManager");
5
- const constants_1 = require("../constants");
6
- exports.ExtensionSymbolTag = Symbol('ExtensionSymbolTag');
7
- exports.ExtensionSymbolTagKey = Symbol('__TAG__');
8
- class ExtensionManager extends InnerZustandStoreManager_1.InnerZustandStoreManager {
9
- defineExtension(define) {
10
- if (!Reflect.has(define, 'name'))
11
- throw new Error(constants_1.ExtensionErrors.ExtensionNameIsRequired);
12
- if (!(typeof define.name === 'string'))
13
- throw new Error(constants_1.ExtensionErrors.ExtensionNameMustBeString);
14
- if (!Reflect.has(define, 'version'))
15
- throw new Error(constants_1.ExtensionErrors.ExtensionVersionIsRequired);
16
- if (!(typeof define.version === 'string'))
17
- throw new Error(constants_1.ExtensionErrors.ExtensionVersionMustBeString);
18
- if (!Reflect.has(define, 'onActivated'))
19
- throw new Error(constants_1.ExtensionErrors.ExtensionOnActivatedIsRequired);
20
- if (typeof define.onActivated !== 'function')
21
- throw new Error(constants_1.ExtensionErrors.ExtensionOnActivatedMustBeFunction);
22
- const name = define['name'];
23
- const version = define['version'];
24
- const extensionInnerInstance = {
25
- name: name,
26
- version: version,
27
- isRegistered: false,
28
- isUnregistered: false,
29
- isActivated: false,
30
- isDeactivated: false,
31
- };
32
- const that = this;
33
- const onInstalled = function () {
34
- };
35
- const extension = {
36
- get name() {
37
- return extensionInnerInstance.name;
38
- },
39
- get version() {
40
- return extensionInnerInstance.version;
41
- },
42
- get isInstalled() {
43
- return extensionInnerInstance.isRegistered;
44
- },
45
- get isUninstalled() {
46
- return extensionInnerInstance.isUnregistered;
47
- },
48
- get isActivated() {
49
- return extensionInnerInstance.isActivated;
50
- },
51
- get isDeactivated() {
52
- return extensionInnerInstance.isDeactivated;
53
- },
54
- meta: define['meta'] ?? void 0,
55
- get onInstalled() {
56
- return onInstalled;
57
- },
58
- get onUninstalled() {
59
- return () => {
60
- };
61
- },
62
- get onActivated() {
63
- return () => {
64
- return () => {
65
- };
66
- };
67
- },
68
- get onDeactivated() {
69
- return () => {
70
- };
71
- }
72
- };
73
- Reflect.defineProperty(extension, exports.ExtensionSymbolTagKey, {
74
- enumerable: false,
75
- writable: false,
76
- value: exports.ExtensionSymbolTag,
77
- configurable: false
78
- });
79
- return extension;
80
- }
81
- isExtension(extension) {
82
- if (typeof extension !== 'object' || extension === null)
83
- return false;
84
- if (!Reflect.has(extension, exports.ExtensionSymbolTagKey))
85
- return false;
86
- const tag = Reflect.get(extension, exports.ExtensionSymbolTagKey);
87
- return tag === exports.ExtensionSymbolTag;
88
- }
89
- registerExtension(extensionName) {
90
- if (!(typeof extensionName === 'string'))
91
- throw new Error(constants_1.ExtensionErrors.ExtensionNameMustBeString);
92
- if (!this.isExtension(extensionName))
93
- throw new Error(constants_1.ExtensionErrors.ExtensionIsNotExist);
94
- const extension = this.getExtension(extensionName);
95
- if (!extension)
96
- throw new Error(constants_1.ExtensionErrors.ExtensionIsNotExist);
97
- extension.onInstalled?.();
98
- }
99
- unregisterExtension() {
100
- }
101
- activatedExtension() {
102
- }
103
- deactivatedExtension() {
104
- }
105
- getExtension(extensionName) {
106
- }
107
- getExtensions() {
108
- }
109
- useExtensionsList() {
110
- }
111
- }
112
- exports.ExtensionManager = ExtensionManager;
113
- 0;
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExtensionManager = exports.Extension = void 0;
4
- const react_1 = require("react");
5
- const index_1 = require("../base/index");
6
- const ExtensionSymbolTag = Symbol('ExtensionSymbolTag');
7
- class Extension {
8
- __TAG__ = ExtensionSymbolTag;
9
- isActivated = false;
10
- name;
11
- version;
12
- meta;
13
- onActivated;
14
- onDeactivated;
15
- constructor(options) {
16
- const { name, version, meta, onActivated, onDeactivated } = options;
17
- this.name = name;
18
- this.version = version;
19
- this.meta = meta;
20
- this.onActivated = onActivated;
21
- this.onDeactivated = onDeactivated;
22
- }
23
- getIsActivated() {
24
- return this.isActivated;
25
- }
26
- async activated() {
27
- await this.onActivated();
28
- this.isActivated = true;
29
- }
30
- async deactivated() {
31
- await this.onDeactivated?.();
32
- this.isActivated = false;
33
- }
34
- static isExtension(extension) {
35
- if (typeof extension !== 'object')
36
- return false;
37
- const hasTAG = Reflect.has(extension, '__TAG__');
38
- if (!hasTAG)
39
- return false;
40
- const tag = Reflect.get(extension, '__TAG__');
41
- return tag === ExtensionSymbolTag;
42
- }
43
- }
44
- exports.Extension = Extension;
45
- class ExtensionManager {
46
- rxpInnerStore = new index_1.RxpInnerStore();
47
- extNameMapStore = new Map();
48
- defineExtension(define) {
49
- return new Extension(define);
50
- }
51
- isExtension(extension) {
52
- return Extension.isExtension(extension);
53
- }
54
- hasExtension(extensionName) {
55
- const has = this.extNameMapStore.has(extensionName);
56
- const lifecycle = this.extNameMapStore.get(extensionName);
57
- if (has && !lifecycle)
58
- throw new Error(`数据状态异常`);
59
- return has;
60
- }
61
- getExtension(extensionName) {
62
- if (!this.hasExtension(extensionName))
63
- return null;
64
- return this.extNameMapStore.get(extensionName) ?? null;
65
- }
66
- registerExtension(extension) {
67
- if (!this.isExtension(extension))
68
- throw new Error(`参数非法, 不是一个有效的扩展`);
69
- const name = extension.name;
70
- if (this.hasExtension(name)) {
71
- console.error(`试图重新注册一个已存在得扩展:应该先移除再注册`);
72
- return;
73
- }
74
- this.extNameMapStore.set(name, extension);
75
- this.rxpInnerStore.update();
76
- }
77
- async activatedExtension(name) {
78
- const extension = this.extNameMapStore.get(name);
79
- if (!extension)
80
- throw new Error(`试图激活一个不存在得扩展`);
81
- return extension.activated();
82
- }
83
- async deactivatedExtension(name) {
84
- const extension = this.extNameMapStore.get(name);
85
- if (!extension)
86
- throw new Error(`试图去活一个不存在得扩展`);
87
- return extension.deactivated();
88
- }
89
- async delExtension(name) {
90
- const extension = this.extNameMapStore.get(name);
91
- if (!extension)
92
- throw new Error(`试图删除一个不存在得扩展`);
93
- extension.deactivated();
94
- this.extNameMapStore.delete(name);
95
- this.rxpInnerStore.update();
96
- }
97
- useExtensionsList() {
98
- const value = this.rxpInnerStore.useValueToRenderReactComponent();
99
- const [statusState] = (0, react_1.useState)(() => ({
100
- value: void 0
101
- }));
102
- const [normalState] = (0, react_1.useState)({
103
- extensions: [],
104
- });
105
- if (statusState.value !== value) {
106
- statusState.value = value;
107
- normalState.extensions = [...this.extNameMapStore.values()];
108
- }
109
- return [normalState.extensions];
110
- }
111
- getExtensions() {
112
- return [...this.extNameMapStore.values()];
113
- }
114
- }
115
- exports.ExtensionManager = ExtensionManager;
@@ -1,156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExtensionManager = void 0;
4
- const InnerZustandStoreManager_1 = require("../base/InnerZustandStoreManager");
5
- const react_1 = require("react");
6
- const ExtensionSymbolTag = Symbol('ExtensionSymbolTag');
7
- class ExtensionManager extends InnerZustandStoreManager_1.InnerZustandStoreManager {
8
- extNameMapStore = new Map();
9
- defineExtension(define) {
10
- if (!Reflect.has(define, 'name'))
11
- throw new Error(`Extension name is required`);
12
- if (!(typeof define.name === 'string'))
13
- throw new Error(`Extension name must be string`);
14
- if (!Reflect.has(define, 'version'))
15
- throw new Error(`Extension version is required`);
16
- if (Reflect.has(define, 'onActivated') && !Reflect.has(define, 'onDeactivated'))
17
- throw new Error(`Extension lifecycle: onActivated and onDeactivated must be set at same time`);
18
- if (Reflect.has(define, 'onDeactivated') && !Reflect.has(define, 'onActivated'))
19
- throw new Error(`Extension lifecycle: onActivated and onDeactivated must be set at same time`);
20
- const name = define.name;
21
- const version = define.version;
22
- const onActivated = define.onActivated;
23
- const onDeactivated = define.onDeactivated;
24
- const extension = {
25
- ...define,
26
- onActivated: async (...args) => {
27
- if (!this.extNameMapStore.has(name)) {
28
- console.error(`当前扩展还未注册加载, 但却错误得试图激活`);
29
- return;
30
- }
31
- const lifecycle = this.extNameMapStore.get(name);
32
- if (!lifecycle)
33
- return;
34
- if (lifecycle.isActivated) {
35
- console.error(`当前扩展已被激活, 但却错误得试图再次激活`);
36
- return;
37
- }
38
- await onActivated?.call(extension, ...args);
39
- lifecycle.isActivated = true;
40
- },
41
- onDeactivated: async (...args) => {
42
- if (!this.extNameMapStore.has(name)) {
43
- console.error(`当前扩展还未注册加载, 但却错误得试图去活`);
44
- return;
45
- }
46
- const lifecycle = this.extNameMapStore.get(name);
47
- if (!lifecycle)
48
- return;
49
- if (!lifecycle.isActivated) {
50
- console.error(`当前扩展未被激活, 但却错误得试图去活`);
51
- return;
52
- }
53
- await onDeactivated?.call(extension, ...args);
54
- lifecycle.isActivated = false;
55
- }
56
- };
57
- Reflect.defineProperty(extension, '__TAG__', {
58
- enumerable: false,
59
- writable: false,
60
- value: ExtensionSymbolTag,
61
- configurable: false
62
- });
63
- return extension;
64
- }
65
- isExtension(extension) {
66
- if (typeof extension !== 'object')
67
- return false;
68
- const hasTAG = Reflect.has(extension, '__TAG__');
69
- return hasTAG;
70
- }
71
- hasExtension(extensionName) {
72
- const has = this.extNameMapStore.has(extensionName);
73
- const lifecycle = this.extNameMapStore.get(extensionName);
74
- if (has && !lifecycle)
75
- throw new Error(`数据状态异常`);
76
- return has;
77
- }
78
- getExtension(extensionName) {
79
- if (!this.hasExtension(extensionName))
80
- return null;
81
- return this.extNameMapStore.get(extensionName)?.extension ?? null;
82
- }
83
- registerExtension(extension) {
84
- if (!this.isExtension(extension))
85
- throw new Error(`参数非法, 不是一个有效的扩展`);
86
- const name = extension.name;
87
- if (this.hasExtension(name)) {
88
- console.error(`试图重新注册一个已存在得扩展:应该先移除再注册`);
89
- return;
90
- }
91
- const extensionLifecycle = {
92
- extension: extension,
93
- isActivated: false,
94
- };
95
- this.extNameMapStore.set(name, extensionLifecycle);
96
- }
97
- async activatedExtension(name, context) {
98
- const lifecycle = this.extNameMapStore.get(name);
99
- if (!lifecycle)
100
- throw new Error(`试图激活一个不存在得扩展`);
101
- if (lifecycle.isActivated)
102
- return;
103
- if (lifecycle.extension.onActivated)
104
- await lifecycle.extension.onActivated(context);
105
- lifecycle.isActivated = true;
106
- }
107
- async deactivatedExtension(name, context) {
108
- const lifecycle = this.extNameMapStore.get(name);
109
- if (!lifecycle)
110
- throw new Error(`试图去活一个不存在得扩展`);
111
- if (!lifecycle.isActivated)
112
- return;
113
- if (lifecycle.extension.onDeactivated)
114
- await lifecycle.extension.onDeactivated(context);
115
- lifecycle.isActivated = false;
116
- }
117
- async delExtension(name, context) {
118
- const lifecycle = this.extNameMapStore.get(name);
119
- if (!lifecycle)
120
- throw new Error(`试图删除一个不存在得扩展`);
121
- if (lifecycle.isActivated) {
122
- if (lifecycle.extension.onDeactivated) {
123
- await lifecycle.extension.onDeactivated(context);
124
- }
125
- }
126
- if (!lifecycle.isActivated) {
127
- this.extNameMapStore.delete(name);
128
- }
129
- }
130
- useExtensionsList() {
131
- const value = this.useStoreValueToRerenderComponent();
132
- const [statusState] = (0, react_1.useState)(() => ({
133
- value: void 0
134
- }));
135
- const [normalState] = (0, react_1.useState)({
136
- extensions: [],
137
- });
138
- if (statusState.value !== value) {
139
- statusState.value = value;
140
- const extensions = [];
141
- for (const ext of this.extNameMapStore.values()) {
142
- extensions.push(ext.extension);
143
- }
144
- normalState.extensions = extensions;
145
- }
146
- return [normalState.extensions];
147
- }
148
- getExtensions() {
149
- const extensions = [];
150
- for (const ext of this.extNameMapStore.values()) {
151
- extensions.push(ext.extension);
152
- }
153
- return extensions;
154
- }
155
- }
156
- exports.ExtensionManager = ExtensionManager;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExtensionManager = void 0;
4
- var ExtensionManager_1 = require("./ExtensionManager");
5
- Object.defineProperty(exports, "ExtensionManager", { enumerable: true, get: function () { return ExtensionManager_1.ExtensionManager; } });