chore: cleanup and lint fix
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
"@iconify-json/solar": "catalog:",
|
||||
"@iconify-json/svg-spinners": "catalog:",
|
||||
"@moeru/eventa": "catalog:",
|
||||
"@moeru/std": "catalog:",
|
||||
"@proj-airi/server-sdk": "workspace:^",
|
||||
"@proj-airi/ui": "workspace:^",
|
||||
"@unocss/reset": "catalog:",
|
||||
|
||||
@@ -7,6 +7,8 @@ import { nanoid } from 'nanoid'
|
||||
|
||||
import packageJSON from '../../package.json'
|
||||
|
||||
import { errorMessageFromValue } from '../utils/error-message'
|
||||
|
||||
const PLUGIN_NAME = 'proj-airi:plugin-web-extension'
|
||||
|
||||
export interface ClientState {
|
||||
@@ -72,7 +74,7 @@ export async function ensureClient(state: ClientState, settings: ExtensionSettin
|
||||
autoReconnect: true,
|
||||
onError: (error) => {
|
||||
state.connected = false
|
||||
state.lastError = error instanceof Error ? error.message : String(error)
|
||||
state.lastError = errorMessageFromValue(error)
|
||||
},
|
||||
onClose: () => {
|
||||
state.connected = false
|
||||
@@ -88,7 +90,7 @@ export async function ensureClient(state: ClientState, settings: ExtensionSettin
|
||||
}
|
||||
catch (error) {
|
||||
state.connected = false
|
||||
state.lastError = error instanceof Error ? error.message : String(error)
|
||||
state.lastError = errorMessageFromValue(error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import { errorMessageFrom } from '@moeru/std'
|
||||
|
||||
/**
|
||||
* Returns an error message while preserving JavaScript string fallback.
|
||||
*
|
||||
* Use when:
|
||||
* - Web extension state needs a message for arbitrary thrown values.
|
||||
*
|
||||
* Expects:
|
||||
* - `error` may be any thrown value.
|
||||
*
|
||||
* Returns:
|
||||
* - The extracted error message, else `String(error)`.
|
||||
*/
|
||||
export function errorMessageFromValue(error: unknown): string {
|
||||
return errorMessageFrom(error) ?? String(error)
|
||||
}
|
||||
Reference in New Issue
Block a user