Skip to content

Commit 006b9b6

Browse files
committed
refactor: diService、eventManager
1 parent 9d0f178 commit 006b9b6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+2942
-942
lines changed

packages/engine-core/src/command/commandRegistry.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
Iterable,
1010
} from '@alilc/lowcode-shared';
1111
import { ICommand, ICommandHandler } from './command';
12-
import { Extensions, Registry } from '../common/registry';
12+
import { Extensions, Registry } from '../extension/registry';
1313
import { ICommandService } from './commandService';
1414

1515
export type ICommandsMap = Map<string, ICommand>;
@@ -26,7 +26,7 @@ export interface ICommandRegistry {
2626
getCommands(): ICommandsMap;
2727
}
2828

29-
class CommandsRegistry implements ICommandRegistry {
29+
class CommandsRegistryImpl implements ICommandRegistry {
3030
private readonly _commands = new Map<string, LinkedList<ICommand>>();
3131

3232
private readonly _didRegisterCommandEmitter = new Emitter<string>();
@@ -111,6 +111,6 @@ class CommandsRegistry implements ICommandRegistry {
111111
}
112112
}
113113

114-
const commandsRegistry = new CommandsRegistry();
114+
export const CommandsRegistry = new CommandsRegistryImpl();
115115

116-
Registry.add(Extensions.Command, commandsRegistry);
116+
Registry.add(Extensions.Command, CommandsRegistry);

packages/engine-core/src/command/commandService.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
import { createDecorator, Provide, IInstantiationService } from '@alilc/lowcode-shared';
2-
import { Registry, Extensions } from '../common/registry';
3-
import { ICommandRegistry } from './commandRegistry';
1+
import { createDecorator, IInstantiationService } from '@alilc/lowcode-shared';
2+
import { CommandsRegistry } from './commandRegistry';
43

54
export interface ICommandService {
65
executeCommand<T = any>(commandId: string, ...args: any[]): Promise<T | undefined>;
76
}
87

98
export const ICommandService = createDecorator<ICommandService>('commandService');
109

11-
@Provide(ICommandService)
1210
export class CommandService implements ICommandService {
1311
constructor(@IInstantiationService private instantiationService: IInstantiationService) {}
1412

@@ -17,7 +15,7 @@ export class CommandService implements ICommandService {
1715
}
1816

1917
private tryExecuteCommand(id: string, args: any[]): Promise<any> {
20-
const command = Registry.as<ICommandRegistry>(Extensions.Command).getCommand(id);
18+
const command = CommandsRegistry.getCommand(id);
2119
if (!command) {
2220
return Promise.reject(new Error(`command '${id}' not found`));
2321
}

packages/engine-core/src/configuration/configurationRegistry.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
types,
99
} from '@alilc/lowcode-shared';
1010
import { isUndefined, isObject } from 'lodash-es';
11-
import { Extensions, Registry } from '../common/registry';
11+
import { Extensions, Registry } from '../extension/registry';
1212
import { OVERRIDE_PROPERTY_REGEX, overrideIdentifiersFromKey } from './configuration';
1313

1414
export interface IConfigurationRegistry {
@@ -133,18 +133,18 @@ export const allSettings: {
133133
patternProperties: StringDictionary<IConfigurationPropertySchema>;
134134
} = { properties: {}, patternProperties: {} };
135135

136-
export class ConfigurationRegistry implements IConfigurationRegistry {
136+
export class ConfigurationRegistryImpl implements IConfigurationRegistry {
137137
private registeredConfigurationDefaults: IConfigurationDefaults[] = [];
138-
private configurationDefaultsOverrides: Map<
138+
private readonly configurationDefaultsOverrides: Map<
139139
string,
140140
{
141141
configurationDefaultOverrides: IConfigurationDefaultOverride[];
142142
configurationDefaultOverrideValue?: IConfigurationDefaultOverrideValue;
143143
}
144144
>;
145145

146-
private configurationProperties: StringDictionary<IRegisteredConfigurationPropertySchema>;
147-
private excludedConfigurationProperties: StringDictionary<IRegisteredConfigurationPropertySchema>;
146+
private readonly configurationProperties: StringDictionary<IRegisteredConfigurationPropertySchema>;
147+
private readonly excludedConfigurationProperties: StringDictionary<IRegisteredConfigurationPropertySchema>;
148148
private overrideIdentifiers = new Set<string>();
149149

150150
private propertiesChangeEmitter = new Emitter<{
@@ -645,4 +645,6 @@ function isSameExtension(a?: IExtensionInfo, b?: IExtensionInfo): boolean {
645645
return a.id === b.id && a.version === b.version;
646646
}
647647

648-
Registry.add(Extensions.Configuration, new ConfigurationRegistry());
648+
export const ConfigurationRegistry = new ConfigurationRegistryImpl();
649+
650+
Registry.add(Extensions.Configuration, ConfigurationRegistry);

packages/engine-core/src/configuration/configurationService.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
import {
2-
createDecorator,
3-
Emitter,
4-
Provide,
5-
type Event,
6-
type EventListener,
7-
} from '@alilc/lowcode-shared';
1+
import { createDecorator, Emitter, type Event, type EventListener } from '@alilc/lowcode-shared';
82
import {
93
Configuration,
104
DefaultConfiguration,
@@ -69,7 +63,6 @@ export interface IConfigurationService {
6963

7064
export const IConfigurationService = createDecorator<IConfigurationService>('configurationService');
7165

72-
@Provide(IConfigurationService)
7366
export class ConfigurationService implements IConfigurationService {
7467
private configuration: Configuration;
7568
private readonly defaultConfiguration: DefaultConfiguration;

packages/engine-core/src/configuration/configurations.ts

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {
66
type IOverrides,
77
} from './configurationModel';
88
import {
9+
ConfigurationRegistry,
910
type IConfigurationPropertySchema,
1011
type IConfigurationRegistry,
1112
type IRegisteredConfigurationPropertySchema,
1213
} from './configurationRegistry';
13-
import { Registry, Extensions } from '../common/registry';
1414
import { isEqual, isNil, isPlainObject, get as lodasgGet } from 'lodash-es';
1515
import {
1616
IInspectValue,
@@ -37,8 +37,8 @@ export class DefaultConfiguration {
3737

3838
initialize(): ConfigurationModel {
3939
this.resetConfigurationModel();
40-
Registry.as<IConfigurationRegistry>(Extensions.Configuration).onDidUpdateConfiguration(
41-
({ properties }) => this.onDidUpdateConfiguration([...properties]),
40+
ConfigurationRegistry.onDidUpdateConfiguration(({ properties }) =>
41+
this.onDidUpdateConfiguration([...properties]),
4242
);
4343

4444
return this.configurationModel;
@@ -56,19 +56,14 @@ export class DefaultConfiguration {
5656
}
5757

5858
private onDidUpdateConfiguration(properties: string[]): void {
59-
this.updateConfigurationModel(
60-
properties,
61-
Registry.as<IConfigurationRegistry>(Extensions.Configuration).getConfigurationProperties(),
62-
);
59+
this.updateConfigurationModel(properties, ConfigurationRegistry.getConfigurationProperties());
6360
this.emitter.emit({ defaults: this.configurationModel, properties });
6461
}
6562

6663
private resetConfigurationModel(): void {
6764
this._configurationModel = ConfigurationModel.createEmptyModel();
6865

69-
const properties = Registry.as<IConfigurationRegistry>(
70-
Extensions.Configuration,
71-
).getConfigurationProperties();
66+
const properties = ConfigurationRegistry.getConfigurationProperties();
7267

7368
this.updateConfigurationModel(Object.keys(properties), properties);
7469
}
@@ -156,9 +151,7 @@ class ConfigurationModelParser {
156151
raw: any,
157152
options?: ConfigurationParseOptions,
158153
): IConfigurationModel & { hasExcludedProperties?: boolean } {
159-
const configurationProperties = Registry.as<IConfigurationRegistry>(
160-
Extensions.Configuration,
161-
).getConfigurationProperties();
154+
const configurationProperties = ConfigurationRegistry.getConfigurationProperties();
162155
const filtered = this.filter(raw, configurationProperties, true, options);
163156

164157
raw = filtered.raw;

packages/engine-core/src/extension/extensionHost.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { type IConfigurationRegistry, type IConfigurationNode } from '../configuration';
2-
import { Registry, Extensions } from '../common/registry';
1+
import { ConfigurationRegistry, type IConfigurationNode } from '../configuration';
32
import { type ExtensionInitializer, type IExtensionInstance } from './extension';
43
import { invariant } from '@alilc/lowcode-shared';
54

@@ -19,9 +18,8 @@ export class ExtensionHost {
1918
initializer: ExtensionInitializer,
2019
preferenceConfigurations: IConfigurationNode[],
2120
) {
22-
const configurationRegistry = Registry.as<IConfigurationRegistry>(Extensions.Configuration);
2321
this.configurationProperties =
24-
configurationRegistry.registerConfigurations(preferenceConfigurations);
22+
ConfigurationRegistry.registerConfigurations(preferenceConfigurations);
2523

2624
this.instance = initializer({});
2725
}

packages/engine-core/src/extension/extensionManagement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class ExtensionManagement {
3737
): Promise<void> {
3838
if (!this.validateExtension(extension, override)) return;
3939

40-
const metadata = extension.meta ?? {};
40+
const metadata = extension.metadata ?? {};
4141
const host = new ExtensionHost(
4242
extension.name,
4343
extension,

packages/engine-core/src/extension/extensionService.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createDecorator, Provide } from '@alilc/lowcode-shared';
1+
import { createDecorator } from '@alilc/lowcode-shared';
22
import { ExtensionManagement, type IExtensionRegisterOptions } from './extensionManagement';
33
import { type IFunctionExtension } from './extension';
44
import { ExtensionHost } from './extensionHost';
@@ -15,7 +15,6 @@ export interface IExtensionService {
1515

1616
export const IExtensionService = createDecorator<IExtensionService>('extensionService');
1717

18-
@Provide(IExtensionService)
1918
export class ExtensionService implements IExtensionService {
2019
private extensionManagement = new ExtensionManagement();
2120

packages/engine-core/src/common/registry.ts renamed to packages/engine-core/src/extension/registry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@ export const Registry: IRegistry = new RegistryImpl();
4141
export const Extensions = {
4242
Configuration: 'base.contributions.configuration',
4343
Command: 'base.contributions.command',
44+
Keybinding: 'base.contributions.keybinding',
4445
Widget: 'base.contributions.widget',
4546
};

packages/engine-core/src/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,9 @@ export * from './resource';
44
export * from './command';
55

66
// test
7-
export * from './common/registry';
7+
export * from './extension/registry';
88
export * from './main';
9+
export * from './keybinding/keybindingRegistry';
10+
export * from './keybinding/keybindingParser';
11+
export * from './keybinding/keybindingResolver';
12+
export * from './keybinding/keybindings';

0 commit comments

Comments
 (0)