export function fileCreationRequest()

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);
}