[6a3a178] | 1 | /**
|
---|
| 2 | * @license
|
---|
| 3 | * Copyright Google LLC All Rights Reserved.
|
---|
| 4 | *
|
---|
| 5 | * Use of this source code is governed by an MIT-style license that can be
|
---|
| 6 | * found in the LICENSE file at https://angular.io/license
|
---|
| 7 | */
|
---|
| 8 | import { schema, virtualFs } from '@angular-devkit/core';
|
---|
| 9 | import { Observable, Subject } from 'rxjs';
|
---|
| 10 | import { Engine, EngineHost } from '../engine';
|
---|
| 11 | import { DryRunEvent } from '../sink/dryrun';
|
---|
| 12 | import { Sink } from '../sink/sink';
|
---|
| 13 | import { LifeCycleEvent, RequiredWorkflowExecutionContext, Workflow, WorkflowExecutionContext } from './interface';
|
---|
| 14 | export interface BaseWorkflowOptions {
|
---|
| 15 | host: virtualFs.Host;
|
---|
| 16 | engineHost: EngineHost<{}, {}>;
|
---|
| 17 | registry?: schema.CoreSchemaRegistry;
|
---|
| 18 | force?: boolean;
|
---|
| 19 | dryRun?: boolean;
|
---|
| 20 | }
|
---|
| 21 | /**
|
---|
| 22 | * Base class for workflows. Even without abstract methods, this class should not be used without
|
---|
| 23 | * surrounding some initialization for the registry and host. This class only adds life cycle and
|
---|
| 24 | * dryrun/force support. You need to provide any registry and task executors that you need to
|
---|
| 25 | * support.
|
---|
| 26 | * See {@see NodeWorkflow} implementation for how to make a specialized subclass of this.
|
---|
| 27 | * TODO: add default set of CoreSchemaRegistry transforms. Once the job refactor is done, use that
|
---|
| 28 | * as the support for tasks.
|
---|
| 29 | *
|
---|
| 30 | * @public
|
---|
| 31 | */
|
---|
| 32 | export declare abstract class BaseWorkflow implements Workflow {
|
---|
| 33 | protected _engine: Engine<{}, {}>;
|
---|
| 34 | protected _engineHost: EngineHost<{}, {}>;
|
---|
| 35 | protected _registry: schema.CoreSchemaRegistry;
|
---|
| 36 | protected _host: virtualFs.Host;
|
---|
| 37 | protected _reporter: Subject<DryRunEvent>;
|
---|
| 38 | protected _lifeCycle: Subject<LifeCycleEvent>;
|
---|
| 39 | protected _context: WorkflowExecutionContext[];
|
---|
| 40 | protected _force: boolean;
|
---|
| 41 | protected _dryRun: boolean;
|
---|
| 42 | constructor(options: BaseWorkflowOptions);
|
---|
| 43 | get context(): Readonly<WorkflowExecutionContext>;
|
---|
| 44 | get engine(): Engine<{}, {}>;
|
---|
| 45 | get engineHost(): EngineHost<{}, {}>;
|
---|
| 46 | get registry(): schema.SchemaRegistry;
|
---|
| 47 | get reporter(): Observable<DryRunEvent>;
|
---|
| 48 | get lifeCycle(): Observable<LifeCycleEvent>;
|
---|
| 49 | protected _createSinks(): Sink[];
|
---|
| 50 | execute(options: Partial<WorkflowExecutionContext> & RequiredWorkflowExecutionContext): Observable<void>;
|
---|
| 51 | }
|
---|