in src/object-specs.ts [251:313]
export function generate(
directoryRunFrom: string,
extension: string,
configFileName: string,
optionalConfigPath: string | undefined,
configurationContext: Configuration.ConfigurationContext,
parsedArgs: CommandLine.Arguments,
): Promise.Future<List.List<WriteFileUtils.ConsoleOutputResults>> {
const promises = parsedArgs.givenPaths.map((givenPath) => {
const requestedPath: File.AbsoluteFilePath =
PathUtils.getAbsolutePathFromDirectoryAndAbsoluteOrRelativePath(
File.getAbsoluteFilePath(directoryRunFrom),
givenPath,
);
const outputPath: File.AbsoluteFilePath | null = outputDirectory(
directoryRunFrom,
parsedArgs.outputPath,
);
const configPath = optionalConfigPath
? FileFinder.findConfigAtPath(
File.getAbsoluteFilePath(optionalConfigPath),
)
: FileFinder.searchForConfig(configFileName, requestedPath);
const valueObjectCreationContextFuture = getObjectSpecCreationContext(
configPath,
configurationContext,
parsedArgs,
);
const readFileSequence = ReadFileUtils.loggedSequenceThatReadsFiles(
requestedPath,
extension,
);
const parsedSequence = LoggingSequenceUtils.mapLoggedSequence(
readFileSequence,
parseValues,
);
const options: GenerationOptions = {
outputPath: outputPath,
outputFlags: parsedArgs.outputFlags,
};
const pluginProcessedSequence = LoggingSequenceUtils.mapLoggedSequence(
parsedSequence,
(context) =>
processObjectSpecCreationRequest(
options,
valueObjectCreationContextFuture,
context,
),
);
return WriteFileUtils.evaluateObjectFileWriteRequestSequence(
parsedArgs,
pluginProcessedSequence,
);
});
return Promise.all(List.fromArray(promises));
}