refactor(@angular-devkit/schematics): use interface for NodeWorkflow options

This change removes the previously repeated type definitions for the options of the NodeWorkflow class.
This commit is contained in:
Charles Lyding 2020-09-30 21:08:05 -04:00 committed by Charles
parent 433a4152ef
commit 34f769fcde
2 changed files with 34 additions and 57 deletions

View File

@ -126,15 +126,20 @@ export declare class NodePackageDoesNotSupportSchematics extends BaseException {
export declare class NodeWorkflow extends workflow.BaseWorkflow {
get engine(): FileSystemEngine;
get engineHost(): NodeModulesEngineHost;
constructor(host: virtualFs.Host, options: {
force?: boolean;
dryRun?: boolean;
constructor(host: virtualFs.Host, options: NodeWorkflowOptions & {
root?: Path;
packageManager?: string;
packageRegistry?: string;
registry?: schema.CoreSchemaRegistry;
resolvePaths?: string[];
});
constructor(root: string, options: NodeWorkflowOptions);
}
export interface NodeWorkflowOptions {
dryRun?: boolean;
force?: boolean;
packageManager?: string;
packageRegistry?: string;
registry?: schema.CoreSchemaRegistry;
resolvePaths?: string[];
schemaValidation?: boolean;
}
export declare type OptionTransform<T extends object, R extends object> = (schematic: FileSystemSchematicDescription, options: T, context?: FileSystemSchematicContext) => Observable<R> | PromiseLike<R> | R;

View File

@ -15,47 +15,25 @@ import { FileSystemEngine } from '../description';
import { NodeModulesEngineHost } from '../node-module-engine-host';
import { validateOptionsWithSchema } from '../schema-option-transform';
export interface NodeWorkflowOptions {
force?: boolean;
dryRun?: boolean;
packageManager?: string;
packageRegistry?: string;
registry?: schema.CoreSchemaRegistry;
resolvePaths?: string[];
schemaValidation?: boolean;
}
/**
* A workflow specifically for Node tools.
*/
export class NodeWorkflow extends workflow.BaseWorkflow {
constructor(root: string, options: {
force?: boolean;
dryRun?: boolean;
packageManager?: string;
packageRegistry?: string;
registry?: schema.CoreSchemaRegistry;
resolvePaths?: string[],
schemaValidation?: boolean;
});
constructor(root: string, options: NodeWorkflowOptions);
constructor(
host: virtualFs.Host,
options: {
force?: boolean;
dryRun?: boolean;
root?: Path;
packageManager?: string;
packageRegistry?: string;
registry?: schema.CoreSchemaRegistry;
resolvePaths?: string[],
schemaValidation?: boolean;
},
);
constructor(host: virtualFs.Host, options: NodeWorkflowOptions & { root?: Path });
constructor(
hostOrRoot: virtualFs.Host | string,
options: {
force?: boolean;
dryRun?: boolean;
root?: Path;
packageManager?: string;
packageRegistry?: string;
registry?: schema.CoreSchemaRegistry;
resolvePaths?: string[],
schemaValidation?: boolean;
},
) {
constructor(hostOrRoot: virtualFs.Host | string, options: NodeWorkflowOptions & { root?: Path }) {
let host;
let root;
if (typeof hostOrRoot === 'string') {
@ -76,21 +54,15 @@ export class NodeWorkflow extends workflow.BaseWorkflow {
registry: options.registry,
});
engineHost.registerTaskExecutor(
BuiltinTaskExecutor.NodePackage,
{
allowPackageManagerOverride: true,
packageManager: options.packageManager,
rootDirectory: root && getSystemPath(root),
registry: options.packageRegistry,
},
);
engineHost.registerTaskExecutor(
BuiltinTaskExecutor.RepositoryInitializer,
{
rootDirectory: root && getSystemPath(root),
},
);
engineHost.registerTaskExecutor(BuiltinTaskExecutor.NodePackage, {
allowPackageManagerOverride: true,
packageManager: options.packageManager,
rootDirectory: root && getSystemPath(root),
registry: options.packageRegistry,
});
engineHost.registerTaskExecutor(BuiltinTaskExecutor.RepositoryInitializer, {
rootDirectory: root && getSystemPath(root),
});
engineHost.registerTaskExecutor(BuiltinTaskExecutor.RunSchematic);
engineHost.registerTaskExecutor(BuiltinTaskExecutor.TslintFix);