UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

57 lines (56 loc) 4.47 kB
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; }