@enspirit/emb
Version:
A replacement for our Makefile-for-monorepos
25 lines (24 loc) • 1.23 kB
TypeScript
import { ResourceInfo } from '../../../index.js';
import { Writable } from 'node:stream';
import { IOperation } from '../../../operations/types.js';
import { ResourceBuildContext } from '../ResourceFactory.js';
import { IResourceBuilder } from '../types.js';
export declare abstract class AbstractResourceBuilder<I, O, R> implements IResourceBuilder<I, O, R> {
protected context: ResourceBuildContext<I>;
constructor(context: ResourceBuildContext<I>);
abstract _build(resource: ResourceInfo<I>, out?: Writable): Promise<{
input: I;
operation: IOperation<I, O>;
}>;
build(resource: ResourceInfo<I>, out?: Writable): Promise<{
input: I;
operation: IOperation<I, O>;
}>;
abstract _mustBuild?(resource: ResourceInfo<I>): Promise<R | undefined> | undefined;
mustBuild(resource: ResourceInfo<I>): Promise<R | undefined>;
_publish?(resource: ResourceInfo<I>, out?: Writable): Promise<void>;
publish?(resource: ResourceInfo<I>, out?: Writable): Promise<void>;
abstract _commit(resource: ResourceInfo<I>, output: O, reason: R): Promise<void>;
commit(resource: ResourceInfo<I>, output: O, reason: R): Promise<void>;
abstract getReference(): Promise<string>;
}