in src/object-specs.ts [191:235]
function getObjectSpecCreationContext(
valueObjectConfigPathFuture: Promise.Future<File.AbsoluteFilePath | null>,
configurationContext: Configuration.ConfigurationContext,
parsedArgs: CommandLine.Arguments,
): Promise.Future<Either.Either<Error.Error[], ObjectSpecCreationContext>> {
return Promise.mbind(function (
maybePath: File.AbsoluteFilePath | null,
): Promise.Future<Either.Either<Error.Error[], ObjectSpecCreationContext>> {
const configFuture: Promise.Future<
Either.Either<Error.Error[], Configuration.GenerationConfig>
> = Configuration.generateConfig(maybePath, configurationContext);
return Promise.map(function (
either: Either.Either<Error.Error[], Configuration.GenerationConfig>,
) {
return Either.mbind(function (
configuration: Configuration.GenerationConfig,
): Either.Either<Error.Error[], ObjectSpecCreationContext> {
const pluginsEither = pluginsFromPluginConfigs(
configuration.pluginConfigs,
);
return Either.map(function (
plugins: List.List<ObjectSpec.Plugin>,
): ObjectSpecCreationContext {
return {
baseClassName: configuration.baseClassName,
baseClassLibraryName: configuration.baseClassLibraryName,
diagnosticIgnores: configuration.diagnosticIgnores,
plugins: plugins,
defaultIncludes: List.fromArray<string>(
PluginInclusionUtils.includesContainingDefaultIncludes(
parsedArgs.includes,
parsedArgs.excludes,
configuration.defaultIncludes,
),
),
};
},
pluginsEither);
},
either);
},
configFuture);
},
valueObjectConfigPathFuture);
}