@enspirit/emb
Version:
A replacement for our Makefile-for-monorepos
28 lines (27 loc) • 1.03 kB
TypeScript
import { ResourceInfo } from '../../../index.js';
import { Writable } from 'node:stream';
import { IOperation } from '../../../operations/types.js';
import { AbstractResourceBuilder } from './AbstractResourceBuilder.js';
export type SentinelFile<T> = {
mtime: number;
data?: T;
};
export declare abstract class SentinelFileBasedBuilder<I, O, SentinelData extends {
mtime: number;
}> extends AbstractResourceBuilder<I, O, SentinelData> {
private lastSentinelFile?;
private newSentinelData?;
/**
* Checks wether or not the sentinel file is more recent
* that the output of the builder's sentinel data
*/
mustBuild(resource: ResourceInfo<I>): Promise<SentinelData | undefined>;
build(resource: ResourceInfo<I>, out?: Writable): Promise<{
input: I;
operation: IOperation<I, O>;
}>;
private get sentinelFileName();
private storeSentinelData;
private readSentinel;
_commit(_resource: ResourceInfo<I>, _output: O, reason: SentinelData): Promise<void>;
}