From 539daf4454e3f11424a469e8fba26cacb325176a Mon Sep 17 00:00:00 2001 From: Veetaha Date: Sun, 9 Feb 2020 00:27:04 +0200 Subject: vscode: refactor platform artifact name query to switch statement, move BinarySource union variants into a namespace --- editors/code/src/installation/interfaces.ts | 58 +++++++++++++++-------------- 1 file changed, 30 insertions(+), 28 deletions(-) (limited to 'editors/code/src/installation/interfaces.ts') diff --git a/editors/code/src/installation/interfaces.ts b/editors/code/src/installation/interfaces.ts index 03eac5b79..8039d0b90 100644 --- a/editors/code/src/installation/interfaces.ts +++ b/editors/code/src/installation/interfaces.ts @@ -11,43 +11,45 @@ export interface ArtifactMetadata { downloadUrl: string; } -/** - * Type tag for `BinarySource` discriminated union. - */ -export enum BinarySourceType { ExplicitPath, GithubBinary } - /** * Represents the source of a binary artifact which is either specified by the user * explicitly, or bundled by this extension from GitHub releases. */ -export type BinarySource = ExplicitPathSource | GithubBinarySource; - - -export interface ExplicitPathSource { - type: BinarySourceType.ExplicitPath; +export type BinarySource = BinarySource.ExplicitPath | BinarySource.GithubRelease; +export namespace BinarySource { /** - * Filesystem path to the binary specified by the user explicitly. + * Type tag for `BinarySource` discriminated union. */ - path: string; -} + export const enum Type { ExplicitPath, GithubRelease } -export interface GithubBinarySource { - type: BinarySourceType.GithubBinary; + export interface ExplicitPath { + type: Type.ExplicitPath; - /** - * Repository where the binary is stored. - */ - repo: GithubRepo; + /** + * Filesystem path to the binary specified by the user explicitly. + */ + path: string; + } - /** - * Directory on the filesystem where the bundled binary is stored. - */ - dir: string; + export interface GithubRelease { + type: Type.GithubRelease; + + /** + * Repository where the binary is stored. + */ + repo: GithubRepo; + + /** + * Directory on the filesystem where the bundled binary is stored. + */ + dir: string; + + /** + * Name of the binary file. It is stored under the same name on GitHub releases + * and in local `.dir`. + */ + file: string; + } - /** - * Name of the binary file. It is stored under the same name on GitHub releases - * and in local `.dir`. - */ - file: string; } -- cgit v1.2.3