@opensumi/ide-variable 2.12.1-next-079c1930

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.
@@ -0,0 +1,6 @@
1
+ import { Provider } from '@opensumi/di';
2
+ import { BrowserModule } from '@opensumi/ide-core-browser';
3
+ export declare class VariableModule extends BrowserModule {
4
+ providers: Provider[];
5
+ }
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,qBACa,cAAe,SAAQ,aAAa;IAC/C,SAAS,EAAE,QAAQ,EAAE,CAUnB;CAEH"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VariableModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const variable_resolver_contribution_1 = require("./variable-resolver.contribution");
8
+ const variable_quick_open_service_1 = require("./variable-quick-open.service");
9
+ const common_1 = require("../common");
10
+ const variable_resolver_service_1 = require("./variable-resolver.service");
11
+ let VariableModule = class VariableModule extends ide_core_browser_1.BrowserModule {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.providers = [
15
+ {
16
+ token: common_1.IVariableResolverService,
17
+ useClass: variable_resolver_service_1.VariableResolverService,
18
+ },
19
+ {
20
+ token: variable_quick_open_service_1.VariableQuickOpenService,
21
+ useClass: variable_quick_open_service_1.VariableQuickOpenService,
22
+ },
23
+ variable_resolver_contribution_1.VariableResolverContribution,
24
+ ];
25
+ }
26
+ };
27
+ VariableModule = (0, tslib_1.__decorate)([
28
+ (0, di_1.Injectable)()
29
+ ], VariableModule);
30
+ exports.VariableModule = VariableModule;
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAoD;AACpD,iEAA2D;AAC3D,qFAAgF;AAChF,+EAAyE;AACzE,sCAAqD;AACrD,2EAAsE;AAGtE,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,gCAAa;IAAjD;;QACE,cAAS,GAAe;YACtB;gBACE,KAAK,EAAE,iCAAwB;gBAC/B,QAAQ,EAAE,mDAAuB;aAClC;YACD;gBACE,KAAK,EAAE,sDAAwB;gBAC/B,QAAQ,EAAE,sDAAwB;aACnC;YACD,6DAA4B;SAC7B,CAAC;IAEJ,CAAC;CAAA,CAAA;AAbY,cAAc;IAD1B,IAAA,eAAU,GAAE;GACA,cAAc,CAa1B;AAbY,wCAAc"}
@@ -0,0 +1,18 @@
1
+ import { QuickOpenService, QuickOpenModel, QuickOpenItem, Mode } from '@opensumi/ide-quick-open';
2
+ import { VariableRegistry } from '@opensumi/ide-core-browser';
3
+ export declare class VariableQuickOpenService implements QuickOpenModel {
4
+ protected items: QuickOpenItem[];
5
+ protected readonly variableRegistry: VariableRegistry;
6
+ protected readonly quickOpenService: QuickOpenService;
7
+ open(): void;
8
+ onType(lookFor: string, acceptor: (items: QuickOpenItem[]) => void): void;
9
+ }
10
+ export declare class VariableQuickOpenItem extends QuickOpenItem {
11
+ protected readonly name: string;
12
+ protected readonly description?: string | undefined;
13
+ constructor(name: string, description?: string | undefined);
14
+ getLabel(): string;
15
+ getDetail(): string;
16
+ run(mode: Mode): boolean;
17
+ }
18
+ //# sourceMappingURL=variable-quick-open.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-quick-open.service.d.ts","sourceRoot":"","sources":["../../src/browser/variable-quick-open.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAY,MAAM,4BAA4B,CAAC;AAExE,qBACa,wBAAyB,YAAW,cAAc;IAE7D,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;IAGjC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,IAAI,IAAI,IAAI;IAaZ,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,GAAG,IAAI;CAG1E;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IAGpD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;gBADZ,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,oBAAQ;IAKzC,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM;IAInB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAGzB"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VariableQuickOpenItem = exports.VariableQuickOpenService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_quick_open_1 = require("@opensumi/ide-quick-open");
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ let VariableQuickOpenService = class VariableQuickOpenService {
9
+ open() {
10
+ this.items = this.variableRegistry.getVariables().map((v) => new VariableQuickOpenItem(v.name, v.description));
11
+ this.quickOpenService.open(this, {
12
+ placeholder: (0, ide_core_browser_1.localize)('variable.registered.variables'),
13
+ fuzzyMatchLabel: true,
14
+ fuzzyMatchDescription: true,
15
+ // fuzzySort: true,
16
+ });
17
+ }
18
+ onType(lookFor, acceptor) {
19
+ acceptor(this.items);
20
+ }
21
+ };
22
+ (0, tslib_1.__decorate)([
23
+ (0, di_1.Autowired)(ide_core_browser_1.VariableRegistry),
24
+ (0, tslib_1.__metadata)("design:type", Object)
25
+ ], VariableQuickOpenService.prototype, "variableRegistry", void 0);
26
+ (0, tslib_1.__decorate)([
27
+ (0, di_1.Autowired)(ide_quick_open_1.QuickOpenService),
28
+ (0, tslib_1.__metadata)("design:type", Object)
29
+ ], VariableQuickOpenService.prototype, "quickOpenService", void 0);
30
+ VariableQuickOpenService = (0, tslib_1.__decorate)([
31
+ (0, di_1.Injectable)()
32
+ ], VariableQuickOpenService);
33
+ exports.VariableQuickOpenService = VariableQuickOpenService;
34
+ class VariableQuickOpenItem extends ide_quick_open_1.QuickOpenItem {
35
+ constructor(name, description) {
36
+ super({});
37
+ this.name = name;
38
+ this.description = description;
39
+ }
40
+ getLabel() {
41
+ return '${' + this.name + '}';
42
+ }
43
+ getDetail() {
44
+ return this.description || '';
45
+ }
46
+ run(mode) {
47
+ return false;
48
+ }
49
+ }
50
+ exports.VariableQuickOpenItem = VariableQuickOpenItem;
51
+ //# sourceMappingURL=variable-quick-open.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-quick-open.service.js","sourceRoot":"","sources":["../../src/browser/variable-quick-open.service.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,6DAAiG;AACjG,iEAAwE;AAGxE,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAUnC,IAAI;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,GAAG,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CACxD,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE;YAC/B,WAAW,EAAE,IAAA,2BAAQ,EAAC,+BAA+B,CAAC;YACtD,eAAe,EAAE,IAAI;YACrB,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,QAA0C;QAChE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF,CAAA;AArBC;IADC,IAAA,cAAS,EAAC,mCAAgB,CAAC;;kEAC0B;AAGtD;IADC,IAAA,cAAS,EAAC,iCAAgB,CAAC;;kEAC0B;AAR3C,wBAAwB;IADpC,IAAA,eAAU,GAAE;GACA,wBAAwB,CA0BpC;AA1BY,4DAAwB;AA4BrC,MAAa,qBAAsB,SAAQ,8BAAa;IAEtD,YACqB,IAAY,EACZ,WAAoB;QAEvC,KAAK,CAAC,EAAE,CAAC,CAAC;QAHS,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAS;IAGzC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAChC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,IAAU;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AApBD,sDAoBC"}
@@ -0,0 +1,11 @@
1
+ import { ClientAppContribution, ContributionProvider, Command, CommandContribution, CommandRegistry, VariableRegistry, VariableContribution } from '@opensumi/ide-core-browser';
2
+ import { VariableQuickOpenService } from './variable-quick-open.service';
3
+ export declare const LIST_VARIABLES: Command;
4
+ export declare class VariableResolverContribution implements ClientAppContribution, CommandContribution {
5
+ protected readonly contributionProvider: ContributionProvider<VariableContribution>;
6
+ protected readonly variableRegistry: VariableRegistry;
7
+ protected readonly variableQuickOpenService: VariableQuickOpenService;
8
+ onStart(): void;
9
+ registerCommands(commands: CommandRegistry): void;
10
+ }
11
+ //# sourceMappingURL=variable-resolver.contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-resolver.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/variable-resolver.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAU,gBAAgB,EAAE,oBAAoB,EAAY,MAAM,4BAA4B,CAAC;AAClM,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,eAAO,MAAM,cAAc,EAAE,OAG5B,CAAC;AAEF,qBACa,4BAA6B,YAAW,qBAAqB,EAAE,mBAAmB;IAG7F,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAGpF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAEtE,OAAO,IAAI,IAAI;IAMf,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;CAKlD"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VariableResolverContribution = exports.LIST_VARIABLES = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const variable_quick_open_service_1 = require("./variable-quick-open.service");
8
+ exports.LIST_VARIABLES = {
9
+ id: 'variable.list',
10
+ label: (0, ide_core_browser_1.localize)('variable.list.all'),
11
+ };
12
+ let VariableResolverContribution = class VariableResolverContribution {
13
+ onStart() {
14
+ this.contributionProvider.getContributions().forEach((contrib) => contrib.registerVariables(this.variableRegistry));
15
+ }
16
+ registerCommands(commands) {
17
+ commands.registerCommand(exports.LIST_VARIABLES, {
18
+ execute: () => this.variableQuickOpenService.open(),
19
+ });
20
+ }
21
+ };
22
+ (0, tslib_1.__decorate)([
23
+ (0, di_1.Autowired)(ide_core_browser_1.VariableContribution),
24
+ (0, tslib_1.__metadata)("design:type", Object)
25
+ ], VariableResolverContribution.prototype, "contributionProvider", void 0);
26
+ (0, tslib_1.__decorate)([
27
+ (0, di_1.Autowired)(ide_core_browser_1.VariableRegistry),
28
+ (0, tslib_1.__metadata)("design:type", Object)
29
+ ], VariableResolverContribution.prototype, "variableRegistry", void 0);
30
+ (0, tslib_1.__decorate)([
31
+ (0, di_1.Autowired)(variable_quick_open_service_1.VariableQuickOpenService),
32
+ (0, tslib_1.__metadata)("design:type", variable_quick_open_service_1.VariableQuickOpenService)
33
+ ], VariableResolverContribution.prototype, "variableQuickOpenService", void 0);
34
+ VariableResolverContribution = (0, tslib_1.__decorate)([
35
+ (0, ide_core_browser_1.Domain)(ide_core_browser_1.ClientAppContribution, ide_core_browser_1.CommandContribution)
36
+ ], VariableResolverContribution);
37
+ exports.VariableResolverContribution = VariableResolverContribution;
38
+ //# sourceMappingURL=variable-resolver.contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-resolver.contribution.js","sourceRoot":"","sources":["../../src/browser/variable-resolver.contribution.ts"],"names":[],"mappings":";;;;AAAA,qCAAyC;AACzC,iEAAkM;AAClM,+EAAyE;AAE5D,QAAA,cAAc,GAAY;IACrC,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,IAAA,2BAAQ,EAAC,mBAAmB,CAAC;CACrC,CAAC;AAGF,IAAa,4BAA4B,GAAzC,MAAa,4BAA4B;IAWvC,OAAO;QACL,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/D,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,QAAyB;QACxC,QAAQ,CAAC,eAAe,CAAC,sBAAc,EAAE;YACvC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;SACpD,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAnBC;IADC,IAAA,cAAS,EAAC,uCAAoB,CAAC;;0EACoD;AAGpF;IADC,IAAA,cAAS,EAAC,mCAAgB,CAAC;;sEAC0B;AAGtD;IADC,IAAA,cAAS,EAAC,sDAAwB,CAAC;2CACS,sDAAwB;8EAAC;AAT3D,4BAA4B;IADxC,IAAA,yBAAM,EAAC,wCAAqB,EAAE,sCAAmB,CAAC;GACtC,4BAA4B,CAsBxC;AAtBY,oEAA4B"}
@@ -0,0 +1,54 @@
1
+ import { VariableRegistry } from '@opensumi/ide-core-browser';
2
+ import { VariableResolveOptions, IVariableResolverService } from '../common';
3
+ export declare class VariableResolverService implements IVariableResolverService {
4
+ protected static VAR_REGEXP: RegExp;
5
+ protected readonly variableRegistry: VariableRegistry;
6
+ /**
7
+ * 处理给定的变量数组
8
+ * @param value 需要处理的变量数组
9
+ * @param options 处理参数
10
+ */
11
+ resolveArray(value: string[], options?: VariableResolveOptions): Promise<string[]>;
12
+ /**
13
+ * 变量处理函数
14
+ * @param value 变量
15
+ * @param options 处理参数
16
+ */
17
+ resolve<T>(value: T, options?: VariableResolveOptions): Promise<T>;
18
+ /**
19
+ * 实际处理函数
20
+ * @param value
21
+ * @param context
22
+ */
23
+ protected doResolve(value: any, context: VariableResolverService.Context): Promise<any>;
24
+ /**
25
+ * 获取对象值
26
+ * @param obj
27
+ * @param context
28
+ */
29
+ protected doResolveObject(obj: object, context: VariableResolverService.Context): Promise<object>;
30
+ /**
31
+ * 获取数组值
32
+ * @param values
33
+ * @param context
34
+ */
35
+ protected doResolveArray(values: Array<any>, context: VariableResolverService.Context): Promise<Array<any>>;
36
+ /**
37
+ * 获取字符串值
38
+ * @param value
39
+ * @param context
40
+ */
41
+ protected doResolveString(value: string, context: VariableResolverService.Context): Promise<string>;
42
+ protected resolveVariables(value: string, context: VariableResolverService.Context): Promise<void>;
43
+ }
44
+ export declare namespace VariableResolverService {
45
+ class Context {
46
+ protected readonly variableRegistry: VariableRegistry;
47
+ protected readonly options: VariableResolveOptions;
48
+ protected readonly resolved: Map<string, string | undefined>;
49
+ constructor(variableRegistry: VariableRegistry, options: VariableResolveOptions);
50
+ get(name: string): string | undefined;
51
+ resolve(name: string): Promise<void>;
52
+ }
53
+ }
54
+ //# sourceMappingURL=variable-resolver.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-resolver.service.d.ts","sourceRoot":"","sources":["../../src/browser/variable-resolver.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE7E,qBACa,uBAAwB,YAAW,wBAAwB;IAEtE,SAAS,CAAC,MAAM,CAAC,UAAU,SAAkB;IAG7C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAItF;;;;OAIG;IACG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,CAAC,CAAC;IAM5E;;;;OAIG;cACa,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB7F;;;;OAIG;cACa,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvG;;;;OAIG;cACa,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IASjH;;;;OAIG;cACa,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;cAQzF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAOzG;AAED,yBAAiB,uBAAuB,CAAC;IACvC,MAAa,OAAO;QAKhB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;QACrD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB;QAJpD,SAAS,CAAC,QAAQ,CAAC,QAAQ,kCAAyC;oBAG/C,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,sBAAsB;QAGpD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;QAI/B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;KAa3C;CACF"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var VariableResolverService_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VariableResolverService = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const di_1 = require("@opensumi/di");
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ let VariableResolverService = VariableResolverService_1 = class VariableResolverService {
9
+ /**
10
+ * 处理给定的变量数组
11
+ * @param value 需要处理的变量数组
12
+ * @param options 处理参数
13
+ */
14
+ resolveArray(value, options = {}) {
15
+ return this.resolve(value, options);
16
+ }
17
+ /**
18
+ * 变量处理函数
19
+ * @param value 变量
20
+ * @param options 处理参数
21
+ */
22
+ async resolve(value, options = {}) {
23
+ const context = new VariableResolverService_1.Context(this.variableRegistry, options);
24
+ const resolved = await this.doResolve(value, context);
25
+ return resolved;
26
+ }
27
+ /**
28
+ * 实际处理函数
29
+ * @param value
30
+ * @param context
31
+ */
32
+ async doResolve(value, context) {
33
+ if (value === undefined || value === null) {
34
+ return value;
35
+ }
36
+ if (typeof value === 'string') {
37
+ return this.doResolveString(value, context);
38
+ }
39
+ if (Array.isArray(value)) {
40
+ return this.doResolveArray(value, context);
41
+ }
42
+ if (typeof value === 'object') {
43
+ return this.doResolveObject(value, context);
44
+ }
45
+ return value;
46
+ }
47
+ /**
48
+ * 获取对象值
49
+ * @param obj
50
+ * @param context
51
+ */
52
+ async doResolveObject(obj, context) {
53
+ const result = {};
54
+ for (const name of Object.keys(obj)) {
55
+ const value = obj[name];
56
+ const resolved = await this.doResolve(value, context);
57
+ result[name] = resolved;
58
+ }
59
+ return result;
60
+ }
61
+ /**
62
+ * 获取数组值
63
+ * @param values
64
+ * @param context
65
+ */
66
+ async doResolveArray(values, context) {
67
+ const result = [];
68
+ for (const value of values) {
69
+ const resolved = await this.doResolve(value, context);
70
+ result.push(resolved);
71
+ }
72
+ return result;
73
+ }
74
+ /**
75
+ * 获取字符串值
76
+ * @param value
77
+ * @param context
78
+ */
79
+ async doResolveString(value, context) {
80
+ await this.resolveVariables(value, context);
81
+ return value.replace(VariableResolverService_1.VAR_REGEXP, (match, varName) => {
82
+ const varValue = context.get(varName);
83
+ return varValue !== undefined ? varValue : match;
84
+ });
85
+ }
86
+ async resolveVariables(value, context) {
87
+ let match;
88
+ while ((match = VariableResolverService_1.VAR_REGEXP.exec(value)) !== null) {
89
+ const variableName = match[1];
90
+ await context.resolve(variableName);
91
+ }
92
+ }
93
+ };
94
+ VariableResolverService.VAR_REGEXP = /\$\{(.*?)\}/g;
95
+ (0, tslib_1.__decorate)([
96
+ (0, di_1.Autowired)(ide_core_browser_1.VariableRegistry),
97
+ (0, tslib_1.__metadata)("design:type", Object)
98
+ ], VariableResolverService.prototype, "variableRegistry", void 0);
99
+ VariableResolverService = VariableResolverService_1 = (0, tslib_1.__decorate)([
100
+ (0, di_1.Injectable)()
101
+ ], VariableResolverService);
102
+ exports.VariableResolverService = VariableResolverService;
103
+ (function (VariableResolverService) {
104
+ class Context {
105
+ constructor(variableRegistry, options) {
106
+ this.variableRegistry = variableRegistry;
107
+ this.options = options;
108
+ this.resolved = new Map();
109
+ }
110
+ get(name) {
111
+ return this.resolved.get(name);
112
+ }
113
+ async resolve(name) {
114
+ if (this.resolved.has(name)) {
115
+ return;
116
+ }
117
+ try {
118
+ const variable = this.variableRegistry.getVariable(name);
119
+ const value = variable && await variable.resolve(this.options.context);
120
+ this.resolved.set(name, value);
121
+ }
122
+ catch (e) {
123
+ this.resolved.set(name, undefined);
124
+ }
125
+ }
126
+ }
127
+ VariableResolverService.Context = Context;
128
+ })(VariableResolverService = exports.VariableResolverService || (exports.VariableResolverService = {}));
129
+ exports.VariableResolverService = VariableResolverService;
130
+ //# sourceMappingURL=variable-resolver.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-resolver.service.js","sourceRoot":"","sources":["../../src/browser/variable-resolver.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './variable';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./variable"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,0DAA2B"}
@@ -0,0 +1,10 @@
1
+ import { URI } from '@opensumi/ide-core-browser';
2
+ export interface VariableResolveOptions {
3
+ context?: URI;
4
+ }
5
+ export declare const IVariableResolverService: unique symbol;
6
+ export interface IVariableResolverService {
7
+ resolve<T>(value: T, options?: VariableResolveOptions): Promise<T>;
8
+ resolveArray(value: string[], options?: VariableResolveOptions): Promise<string[]>;
9
+ }
10
+ //# sourceMappingURL=variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../src/common/variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACpF"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IVariableResolverService = void 0;
4
+ exports.IVariableResolverService = Symbol('IVariableResolverService');
5
+ //# sourceMappingURL=variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable.js","sourceRoot":"","sources":["../../src/common/variable.ts"],"names":[],"mappings":";;;AAMa,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './common';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./common"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@opensumi/ide-variable",
3
+ "version": "2.12.1-next-079c1930",
4
+ "files": [
5
+ "lib"
6
+ ],
7
+ "license": "MIT",
8
+ "main": "lib/index.js",
9
+ "typings": "lib/index.d.ts",
10
+ "scripts": {
11
+ "prepublishOnly": "npm run build",
12
+ "build": "tsc --build ../../configs/ts/references/tsconfig.variable.json"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git@github.com:opensumi/core.git"
17
+ },
18
+ "dependencies": {
19
+ "@opensumi/ide-core-common": "2.12.1-next-079c1930",
20
+ "@opensumi/ide-core-node": "2.12.1-next-079c1930",
21
+ "@opensumi/ide-quick-open": "2.12.1-next-079c1930"
22
+ },
23
+ "devDependencies": {
24
+ "@opensumi/ide-core-browser": "2.12.1-next-079c1930",
25
+ "@opensumi/ide-dev-tool": "^1.3.1",
26
+ "@opensumi/ide-quick-open": "2.12.1-next-079c1930"
27
+ }
28
+ }