UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

63 lines (61 loc) 2.16 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { NativeParsedArgs } from '../common/argv.mjs'; /** * This code is also used by standalone cli's. Avoid adding any other dependencies. */ declare const helpCategories: { o: string; e: string; t: string; }; export interface Option<OptionType> { type: OptionType; alias?: string; deprecates?: string[]; args?: string | string[]; description?: string; deprecationMessage?: string; allowEmptyValue?: boolean; cat?: keyof typeof helpCategories; global?: boolean; } export interface Subcommand<T> { type: 'subcommand'; description?: string; deprecationMessage?: string; options: OptionDescriptions<Required<T>>; } export type OptionDescriptions<T> = { [P in keyof T]: T[P] extends boolean | undefined ? Option<'boolean'> : T[P] extends string | undefined ? Option<'string'> : T[P] extends string[] | undefined ? Option<'string[]'> : Subcommand<T[P]>; }; export declare const OPTIONS: OptionDescriptions<Required<NativeParsedArgs>>; export interface ErrorReporter { onUnknownOption(id: string): void; onMultipleValues(id: string, usedValue: string): void; onEmptyValue(id: string): void; onDeprecatedOption(deprecatedId: string, message: string): void; getSubcommandReporter?(commmand: string): ErrorReporter; } export declare function parseArgs<T>(args: string[], options: OptionDescriptions<T>, errorReporter?: ErrorReporter): T; export declare function formatOptions(options: OptionDescriptions<any>, columns: number): string[]; export declare function buildHelpMessage( productName: string, executableName: string, version: string, options: OptionDescriptions<any>, capabilities?: { noPipe?: boolean; noInputFiles: boolean; }, ): string; export declare function buildVersionMessage(version: string | undefined, commit: string | undefined): string; export {};