UNPKG

@enspirit/emb

Version:

A replacement for our Makefile-for-monorepos

28 lines (27 loc) 1.03 kB
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>; }