Skip to content

Commit 829cdf1

Browse files
author
guqiankun.gqk
committed
feat: 支持自定义worker插件地址
1 parent a038a1f commit 829cdf1

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

packages/alex/src/api/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ export type IAppConfig = Partial<IAppOpts> & {
1818
* 插件配置
1919
*/
2020
plugins?: IPluginConfig;
21+
/**
22+
* 插件OSS地址
23+
* extensionOSSPath/publisher.name-version
24+
*/
25+
extensionOSSPath?: string;
2126
};
2227

2328
export interface IConfig {

packages/core/src/common/util.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,15 @@ export const getFunctionProps = (obj: Record<string, any>): string[] => {
3333
}
3434
};
3535

36-
export const getExtensionPath = (ext: IExtensionIdentity, mode?: IExtensionMode) => {
36+
export const getExtensionPath = (
37+
ext: IExtensionIdentity,
38+
mode?: IExtensionMode,
39+
OSSPath?: string
40+
) => {
41+
if (!!OSSPath) {
42+
return [OSSPath, '/', `${ext.publisher}.${ext.name}-${ext.version}`].join('');
43+
}
44+
3745
return [
3846
EXT_SCHEME,
3947
'://',

packages/core/src/server/kaitian-extension/extension.service.client.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { IExtensionNodeClientService, IExtensionMetadata, ExtraMetadata } from '
55
import { ServerConfig } from '../core/app';
66
import { getExtensionPath } from '../../common/util';
77
import { EXT_SCHEME } from '../../common/constant';
8+
import { AppConfig } from '../../common';
89

910
const { posix } = path;
1011

@@ -16,6 +17,9 @@ export class ExtensionServiceClientImpl implements IExtensionNodeClientService {
1617
@Autowired(ServerConfig)
1718
serverConfig: ServerConfig;
1819

20+
@Autowired(AppConfig)
21+
appConfig: AppConfig & { extensionOSSPath?: string };
22+
1923
getElectronMainThreadListenPath(): Promise<string> {
2024
throw new Error('Method not implemented.');
2125
}
@@ -30,9 +34,12 @@ export class ExtensionServiceClientImpl implements IExtensionNodeClientService {
3034
return [];
3135
}
3236
const extensions: IExtensionMetadata[] = await Promise.all(
33-
extensionMetadata.map((ext) => getExtension(ext, localization))
37+
extensionMetadata.map((ext) =>
38+
getExtension(ext, localization, undefined, this.appConfig.extensionOSSPath)
39+
)
3440
);
3541

42+
console.log('==> extensions', extensions);
3643
return extensions;
3744
}
3845
getExtension(
@@ -130,10 +137,11 @@ async function getExtraMetaData(
130137
async function getExtension(
131138
ext: IExtensionBasicMetadata,
132139
localization: string,
133-
extraMetaData?: ExtraMetadata
140+
extraMetaData?: ExtraMetadata,
141+
OSSPath?: string
134142
) {
135143
const extensionPath =
136-
ext.mode === 'local' && ext.uri ? ext.uri : getExtensionPath(ext.extension, ext.mode);
144+
ext.mode === 'local' && ext.uri ? ext.uri : getExtensionPath(ext.extension, ext.mode, OSSPath);
137145
const extensionUri = Uri.parse(extensionPath);
138146

139147
let pkgNlsJSON: { [key: string]: string } | undefined;

0 commit comments

Comments
 (0)