@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
57 lines (56 loc) • 4.47 kB
TypeScript
import ServiceFactory, { Service, ServiceProvider, ServiceMap } from '../services/ServiceFactory';
import { InternalUpdateHandler } from '../types/cli.types';
import AbstractFeature, { FeatureDependency } from './AbstractFeature';
import { InstallFeatureOptions, FeatureInstallResponse, FeatureCode, FeatureMap } from './features.types';
export declare class FeatureInstallerImpl implements ServiceProvider, FeatureInstaller {
cwd: string;
private featureMap;
private serviceFactory;
private featuresMarkedAsSkippedThisRun;
static startInFlightIntertainmentHandler?: (didUpdateHandler: (handler: (message: string) => void) => void) => void;
static stopInFlightIntertainmentHandler?: () => void;
private packagesToInstall;
private devPackagesToInstall;
private featuresToMarkAsInstalled;
private afterPackageInstalls;
private pendingFeatureInstalls;
constructor(cwd: string, serviceFactory: ServiceFactory);
isInSpruceModule(): boolean;
isInstalled(code: FeatureCode): Promise<boolean>;
markAsSkippedThisRun(code: FeatureCode): void;
markAsPermanentlySkipped(code: FeatureCode): void;
isMarkedAsSkipped(code: FeatureCode): boolean;
mapFeature<C extends FeatureCode>(code: C, feature: FeatureMap[C]): void;
getFeature<C extends FeatureCode>(code: C): FeatureMap[C];
areInstalled(codes: FeatureCode[]): Promise<boolean>;
getFeatureDependencies<C extends FeatureCode>(featureCode: C): FeatureDependency[];
private getFeatureDependenciesIncludingSelf;
private isDependencyInTracker;
install(options: InstallFeatureOptions): Promise<FeatureInstallResponse>;
private isInstalledOrPendingInstall;
private installFeature;
installPackageDependencies(feature: AbstractFeature, didUpdateHandler?: InternalUpdateHandler): Promise<void>;
installPackageDependenciesForFeatures(features: AbstractFeature[], didUpdateHandler?: InternalUpdateHandler): Promise<void>;
private installAllPending;
private queueInstallPackageDependenciesWithoutEntertainment;
private getFeatureNameAndDesc;
private sortFeatures;
Service<S extends Service>(type: S, cwd?: string): ServiceMap[S];
getOptionsForFeature(code: FeatureCode): import("@sprucelabs/schema").Schema | import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema | import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema | undefined;
getAllCodes(): FeatureCode[];
getInstalledFeatures(): Promise<(import("./schema/SchemaFeature").default | import("./test/TestFeature").default | import("./skill/SkillFeature").default<import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema> | import("./error/ErrorFeature").default | import("./node/NodeFeature").default<import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema> | import("./dependencies/DependencyFeature").default | import("./cache/CacheFeature").default | import("./conversation/ConversationFeature").default | import("./deploy/DeployFeature").default | import("./event/EventFeature").default | import("./eventContract/EventContractFeature").default | import("./log/LogFeature").default | import("./onboard/OnboardFeature").default | import("./organization/OrganizationFeature").default | import("./permission/PermissionFeature").default | import("./person/PersonFeature").default | import("./polish/PolishFeature").default | import("./sandbox/SandboxFeature").default | import("./store/StoreFeature").default | import("./view/ViewFeature").default | import("./vscode/VsCodeFeature").default | import("./watch/WatchFeature").default)[]>;
}
export default interface FeatureInstaller {
isInstalled(code: FeatureCode): Promise<boolean>;
markAsSkippedThisRun(code: FeatureCode): void;
markAsPermanentlySkipped(code: FeatureCode): void;
isMarkedAsSkipped(code: FeatureCode): boolean;
getFeature<C extends FeatureCode>(code: C): FeatureMap[C];
areInstalled(codes: FeatureCode[]): Promise<boolean>;
install(options: InstallFeatureOptions): Promise<FeatureInstallResponse>;
getInstalledFeatures(): Promise<FeatureMap[keyof FeatureMap][]>;
getFeatureDependencies<C extends FeatureCode>(featureCode: C): FeatureDependency[];
getAllCodes(): FeatureCode[];
mapFeature<C extends FeatureCode>(code: C, feature: FeatureMap[C]): void;
isInSpruceModule(): boolean;
}