JSON.parse returning a Promise? [duplicate]

I’m working on a small database using a JSON file stored with GitHub Gist using JavaScript. I have a working get() function, but the problem is it sometimes seems to return a promise and sometimes not. I’m not new to coding, but I am a bit new to JavaScript and sometimes get confused about how all the async stuff works.

Here are the main functions of my database(assume the fetching works correctly):

//Assume the database JSON looks like this: {"hello": 1}


/**Returns the raw data of the JSON file
 * 
 */
async function rawget(){
    const req = await fetch(FETCH_URL);
    const gist = await req.json();
    return JSON.parse(gist.files[DATABASE_NAME].content);
}

/**Returns the value of the given key in the database
 * 
 * @param {*} key 
 */
async function get(key){
    const data = await rawget(); //removing the await makes data a Promise, even though rawget() doesn't return a promise??
    const val = data[key]
    console.log(data, val) //logs {"hello": 1} and 1, which is correct
    return val
}

const val = get("hello")
console.log(val) //logs Promise { <pending> } and also logs before the log in get() for some reason???

Note that I’m using node.js on the newest version to run this code as I’m not currently running it on a website.