166
}
167
169
>
entries: IterableIterator<[string, IUnresolvedTerminalProfile]>,
170
>
defaultProfileName: string | undefined,
171
>
fsProvider: IFsProvider,
172
>
shellEnv: typeof process.env = process.env,
173
>
logService?: ILogService,
174
>
variableResolver?: (text: string[]) => Promise<string[]>,
175
>
): Promise<ITerminalProfile[]> {
176
>
const promises: Promise<ITerminalProfile | undefined>[] = [];
177
>
for (const [profileName, profile] of entries) {
178
>
promises.push(getValidatedProfile(profileName, profile, defaultProfileName, fsProvider, shellEnv, logService, variableResolver));
179
>
}
180
>
return (await Promise.all(promises)).filter(e => !!e);
181
>
}
182
184
>
profileName: string,
185
>
profile: IUnresolvedTerminalProfile,
186
>
defaultProfileName: string | undefined,
187
>
fsProvider: IFsProvider,
188
>
shellEnv: typeof process.env = process.env,
189
>
logService?: ILogService,
190
>
variableResolver?: (text: string[]) => Promise<string[]>
191
>
): Promise<ITerminalProfile | undefined> {
192
>
if (profile === null) {
193
return undefined;
194
}
196
>
let args: string[] | string | undefined;
197
>
let icon: ThemeIcon | URI | { light: URI; dark: URI } | undefined = undefined;
198
>
// use calculated values if path is not specified
199
>
if (hasKey(profile, { source: true })) {
200
const source = profileSources?.get(profile.source);
201
if (!source) {