in src/objc-file-creation.ts [69:108]
export function fileCreationRequest(
containingFolderPath: File.AbsoluteFilePath,
file: Code.File,
renderHeader: boolean,
renderImpl: boolean,
): Either.Either<Error.Error, FileWriter.FileWriteRequest> {
const headerContents: string | null = renderHeader
? ObjCRenderer.renderHeader(file)
: null;
const headerRequest: FileWriter.Request | null = fileRequest(
containingFolderPath,
fileNameIncludingExtension(file, 'h'),
headerContents,
);
const implementationContents: string | null = renderImpl
? ObjCRenderer.renderImplementation(file)
: null;
const implementationRequest: FileWriter.Request | null = fileRequest(
containingFolderPath,
fileNameIncludingExtension(
file,
implementationFileExtensionForFileType(file.type),
),
implementationContents,
);
const baseRequests: List.List<FileWriter.Request> =
List.of<FileWriter.Request>();
const requests = requestsMaybeContainingRequest(
requestsMaybeContainingRequest(baseRequests, headerRequest),
implementationRequest,
);
const writeRequest = {
name: file.name,
requests: List.reverse(requests),
};
return Either.Right<Error.Error, FileWriter.FileWriteRequest>(writeRequest);
}