@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
62 lines (61 loc) • 2.13 kB
TypeScript
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 {};