Best way to send eex content inside JSON

I asked a question on Slack, and I’m now beginning to understand the dependencies and complexities involved, so I’m posting this question here.

Suppose you want to put the contents of an .eex file in a key, say content, convert the entire thing to JSON, and place it on a certain path. Then, your user would make a request to the URL, retrieve the content, and write it back into an .eex file.

For example:

file = File.open!("path")
%{content: file} |> Jason.encode!()

I manually converted four of my own .eex files, downloaded them again, and didn’t encounter any issues. However, based on the responses and some searches, it seems that certain commands might face issues when converting back to an .eex file.

What do you recommend for handling this, and what method should we implement?

The binary_to_term method, I think, also doesn’t convert atoms, which presents its own set of challenges.

And I do not know, if I use base64 for file and after that convert to json is it a good way?

I’d appreciate hearing your thoughts and suggestions.

Example:

# https://fancy-mountain-ac66.mishka.workers.dev/

File.write!(".../chat.eex", List.first(params.files).content)

Thank you in advance