Single Page App - Browser Storage API Design
You are correct that there is no need to wrap this with a promise. As it is, there are a few problems with the GetOrSetLocal function. 


The function will always try to fetch the values from the server, even if it is cached locally.
The function's name is misleading, when first reading the code I assumed the function could be used to set a value in storage - not just retrieve values. I'm not really sure what to suggest for a name...
I would recommend using something other than callback for the Axios instance as it is decidedly not a callback. It might be best to just call it axios.
burst would be better named ignoreCache to more clearly indicate it's purpose. 




If I was unable to use async/await, here is how I would write this function:

const StorageHandler = {
    ...,
    GetFromCache(url) {
        if (!this.StorageEnabled) return null
        return JSON.parse(localStorage.getItem(url))
    },
    GetOrSetLocal(url, axios, ignoreCache = false) {
        if (!ignoreCache) {
            return new Promise(resolve =&gt; {
                const cached = this.GetFromCache(url)
                resolve(cached === null ? this.GetOrSetLocal(url, axios, true) : cached)
            })
        }

        return axios.get(url)
            .then(response =&gt; {
                if (this.StorageEnabled) {
                    localStorage.setItem(url, JSON.stringify(response.data))
                }
                return response.data
            })
    },
}


Alternatively, if you are able to use async/await, I would prefer this version.

const StorageHandler = {
    ...,
    async GetOrSetLocal2(url, axios, ignoreCache = false) {
        if (!ignoreCache) {
            const cached = this.GetFromCache(url)
            return cached === null ? this.GetOrSetLocal2(url, axios, true) : cached
        }

        const { data } = await axios.get(url)

        if (this.StorageEnabled) {
            window.localStorage.setItem(url, JSON.stringify(data))
        }

        return data
    },
}




Another comment: I tend to avoid using proxies as I find they quickly multiply and end up making debugging a royal pain. It might be better to define StorageEnabled as a getter. 

const StorageHandler = {
    TestedStorage: false,
    _StorageEnabled: false,
    get StorageEnabled() {
        if (!this.TestedStorage) {
            this.TestStorage()
        }
        return this._StorageEnabled
    }
}




And one more thing: 
It is probably better to implement caching with response headers instead of saving responses in localStorage. Since this is a get api, you can use headers to tell user's browsers to cache the responses for the appropriate amount of time and you get faster responses automatically, without introducing more JS. (Unless the response is out of your control of course - in which case this is probably a good idea.)