@azure-tools/extension
Version:
Yarn-Based extension aquisition (for Azure Open Source Projects)
45 lines • 2 kB
TypeScript
/// <reference types="node" />
import { ChildProcess } from "child_process";
import * as pacote from "pacote";
import { Extension, Package } from "./extension";
import { PackageManagerProgress, PackageManagerType } from "./package-manager";
export interface PackageInstallProgress extends PackageManagerProgress {
pkg: Package;
}
/**
* Resolve given package metadata.
* @param spec This can be a package name with version, the url to a tgz or a local folder.
* @returns Package metadata.
*/
export declare function fetchPackageMetadata(spec: string): Promise<pacote.ManifestResult>;
export declare class ExtensionManager {
private installationPath;
private sharedLock;
private disposeLock;
private packageManager;
dotnetPath: string;
static Create(installationPath: string, packageManagerType?: PackageManagerType, packageManagerPath?: string | undefined): Promise<ExtensionManager>;
dispose(): Promise<void>;
reset(): Promise<void>;
private constructor();
/**
* Return the list of version for the given package name [+ version range]
*
* @param name Name of the package with or without version range.
* @returns List of semver versions
*/
getPackageVersions(name: string): Promise<string[]>;
findPackage(name: string, version?: string): Promise<Package>;
getInstalledExtension(name: string, version: string): Promise<Extension | null>;
getInstalledExtensions(): Promise<Array<Extension>>;
private static lock;
installPackage(pkg: Package, force?: boolean, maxWait?: number, reportProgress?: (progress: PackageInstallProgress) => void): Promise<Extension>;
removeExtension(extension: Extension): Promise<void>;
start(extension: Extension, enableDebugger?: boolean): Promise<ChildProcess>;
/**
* Validate if present the extension system requirements.
* @param extension Extension to validate.
*/
private validateExtensionSystemRequirements;
}
//# sourceMappingURL=main.d.ts.map