UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

62 lines (61 loc) 2.13 kB
import { Schema, SchemaValues } from '@sprucelabs/schema'; import { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'; import { FileDescription } from '../../types/cli.types'; import AbstractFeature, { FeatureDependency } from '../AbstractFeature'; import { ActionOptions, FeatureCode } from '../features.types'; export default class NodeFeature<S extends OptionsSchema = OptionsSchema> extends AbstractFeature<S> { code: FeatureCode; nameReadable: string; description: string; dependencies: FeatureDependency[]; optionsSchema: S; packageDependencies: { name: string; isDev: boolean; }[]; scripts: { 'build.ci': string; 'build.dev': string; 'build.copy-files': string; 'build.resolve-paths': string; 'build.tsc': string; clean: string; 'clean.all': string; 'clean.build': string; 'clean.dependencies': string; 'fix.lint': string; lint: string; 'lint.tsc': string; 'post.watch.build': string; rebuild: string; 'update.dependencies': string; 'resolve-paths.lint': string; test: string; 'watch.build.dev': string; 'watch.rebuild': string; 'watch.tsc': string; }; readonly fileDescriptions: FileDescription[]; actionsDir: string; constructor(options: ActionOptions); private handleUpgrade; beforePackageInstall(options: Options): Promise<{ files: SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile[]; cwd: string; }>; private resolveDestination; afterPackageInstall(options: S extends Schema ? SchemaValues<S> : undefined): Promise<{}>; private installScripts; isInstalled: () => Promise<boolean>; } type OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema; type Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions; declare module '../../features/features.types' { interface FeatureMap { node: NodeFeature; } interface FeatureOptionsMap { node: SchemaValues<OptionsSchema>; } } export {};