Path: blob/main/extensions/copilot/src/platform/devcontainer/common/devContainerConfigurationService.ts
13400 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import type { CancellationToken, Uri } from 'vscode';6import { createServiceIdentifier } from '../../../util/common/services';789export interface DevContainerConfigGeneratorArguments {10rootUri: Uri;11index: DevContainerConfigIndex;12}1314export interface DevContainerConfigIndex {15templates: DevContainerConfigTemplate[];16features?: DevContainerConfigFeature[];17}1819export interface DevContainerConfigTemplate {20id: string;21name?: string;22description?: string;23}2425export interface DevContainerConfigFeature {26id: string;27name?: string;28description?: string;29}3031export type DevContainerConfigGeneratorResult = {32type: 'success';33template: string | undefined;34features: string[];35} | {36type: 'cancelled';37} | {38type: 'failure';39message: string;40};4142export const IDevContainerConfigurationService = createServiceIdentifier<IDevContainerConfigurationService>('IDevContainerConfigurationService');4344export interface IDevContainerConfigurationService {45readonly _serviceBrand: undefined;46generateConfiguration(args: DevContainerConfigGeneratorArguments, cancellationToken: CancellationToken): Promise<DevContainerConfigGeneratorResult>;47}4849/**50* @remark For testing purposes only.51*/52export class FailingDevContainerConfigurationService implements IDevContainerConfigurationService {53readonly _serviceBrand: undefined;54generateConfiguration(_args: DevContainerConfigGeneratorArguments, _cancellationToken: CancellationToken): Promise<DevContainerConfigGeneratorResult> {55return Promise.resolve({ type: 'failure', message: 'For testing: not implemented' });56}57}585960