mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
obs-store/local-store should upgrade webextension error to real error (#7207)
* obs-store/local-store should upgrade webextension error to real error * lint fix * local-store - allow lastError through unchanged if error-like
This commit is contained in:
parent
8a1ddbbcd8
commit
f5b2977764
@ -49,7 +49,7 @@ module.exports = class ExtensionStore {
|
|||||||
const local = extension.storage.local
|
const local = extension.storage.local
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
local.get(null, (/** @type {any} */ result) => {
|
local.get(null, (/** @type {any} */ result) => {
|
||||||
const err = extension.runtime.lastError
|
const err = checkForError()
|
||||||
if (err) {
|
if (err) {
|
||||||
reject(err)
|
reject(err)
|
||||||
} else {
|
} else {
|
||||||
@ -69,7 +69,7 @@ module.exports = class ExtensionStore {
|
|||||||
const local = extension.storage.local
|
const local = extension.storage.local
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
local.set(obj, () => {
|
local.set(obj, () => {
|
||||||
const err = extension.runtime.lastError
|
const err = checkForError()
|
||||||
if (err) {
|
if (err) {
|
||||||
reject(err)
|
reject(err)
|
||||||
} else {
|
} else {
|
||||||
@ -88,3 +88,17 @@ module.exports = class ExtensionStore {
|
|||||||
function isEmpty (obj) {
|
function isEmpty (obj) {
|
||||||
return Object.keys(obj).length === 0
|
return Object.keys(obj).length === 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an Error if extension.runtime.lastError is present
|
||||||
|
* this is a workaround for the non-standard error object thats used
|
||||||
|
* @returns {Error}
|
||||||
|
*/
|
||||||
|
function checkForError () {
|
||||||
|
const lastError = extension.runtime.lastError
|
||||||
|
if (!lastError) return
|
||||||
|
// if it quacks like an Error, its an Error
|
||||||
|
if (lastError.stack && lastError.message) return lastError
|
||||||
|
// repair incomplete error object (eg chromium v77)
|
||||||
|
return new Error(lastError.message)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user