Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import type { DatafileContent } from "@featurevisor/types";
import type { Dependencies } from "../dependencies";
import { resolveTargets } from "../targeting";
import { buildDatafile } from "./buildDatafile";
import { buildTargetDatafile } from "./buildProject";
export interface RuntimeDatafile {
target?: string;
datafile: DatafileContent;
}
export async function buildRuntimeDatafiles(
deps: Dependencies,
options: {
environment: string | false;
target?: string | string[];
revision: string;
inflate?: number;
},
): Promise<RuntimeDatafile[]> {
const { projectConfig, datasource } = deps;
const existingState = await datasource.readState(options.environment);
const targets = await resolveTargets(datasource, options.target, {
defaultToAll: false,
requireTargets: false,
});
if (targets.length === 0) {
const datafile = await buildDatafile(
projectConfig,
datasource,
{
revision: options.revision,
environment: options.environment,
inflate: options.inflate,
},
existingState,
);
return [{ datafile }];
}
return Promise.all(
targets.map(async (target) => ({
target: target.key,
datafile: await buildTargetDatafile({
projectConfig,
datasource,
target,
environment: options.environment,
existingState,
revision: options.revision,
inflate: options.inflate,
}),
})),
);
}
|