From dc60e112a10c10c01a32ae820842ee03c6c32996 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Sun, 5 Feb 2023 23:49:59 +0100 Subject: [PATCH] feat(core): add vue flow error class Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com> --- packages/core/src/auto-imports.d.ts | 1 + packages/core/src/composables/useEdge.ts | 2 +- packages/core/src/composables/useNode.ts | 2 +- packages/core/src/composables/useVueFlow.ts | 2 +- packages/core/src/index.ts | 2 ++ packages/core/src/utils/log.ts | 6 ++++++ 6 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/core/src/auto-imports.d.ts b/packages/core/src/auto-imports.d.ts index 1f26f375..5bd5f20f 100644 --- a/packages/core/src/auto-imports.d.ts +++ b/packages/core/src/auto-imports.d.ts @@ -19,6 +19,7 @@ declare global { const Slots: typeof import('./context/index')['Slots'] const Storage: typeof import('./composables/useVueFlow')['Storage'] const VueFlow: typeof import('./context/index')['VueFlow'] + const VueFlowError: typeof import('./utils/log')['VueFlowError'] const addEdge: typeof import('./utils/graph')['addEdge'] const addEdgeToStore: typeof import('./utils/store')['addEdgeToStore'] const applyChanges: typeof import('./utils/changes')['applyChanges'] diff --git a/packages/core/src/composables/useEdge.ts b/packages/core/src/composables/useEdge.ts index 0c8e2c33..430610ed 100644 --- a/packages/core/src/composables/useEdge.ts +++ b/packages/core/src/composables/useEdge.ts @@ -16,7 +16,7 @@ export default function useEdge(edgeId) if (!edge) { - throw new Error(`[vue-flow]: useEdge - Edge with id ${edgeId} not found!`) + throw new VueFlowError(`Edge with id ${edgeId} not found!`, 'useEdge') } return { diff --git a/packages/core/src/composables/useNode.ts b/packages/core/src/composables/useNode.ts index 8311dc4f..3084753e 100644 --- a/packages/core/src/composables/useNode.ts +++ b/packages/core/src/composables/useNode.ts @@ -16,7 +16,7 @@ export default function useNode(nodeId) if (!node) { - throw new Error(`[vue-flow]: useNode - Node with id ${nodeId} not found!`) + throw new VueFlowError(`Node with id ${nodeId} not found!`, 'useNode') } return { diff --git a/packages/core/src/composables/useVueFlow.ts b/packages/core/src/composables/useVueFlow.ts index 27e30379..5a68d276 100644 --- a/packages/core/src/composables/useVueFlow.ts +++ b/packages/core/src/composables/useVueFlow.ts @@ -126,7 +126,7 @@ export default (options?: FlowProps): VueFlowStore => { /** * Vue flow wasn't able to find any store instance - we can't proceed */ - if (!vueFlow) throw new Error('[vueflow]: store instance not found.') + if (!vueFlow) throw new VueFlowError('Store instance not found.', 'useVueFlow') // always provide a fresh instance into context on call if (scope) { diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 2fd20d44..75dcd87c 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -70,4 +70,6 @@ export { default as useEdge } from './composables/useEdge' export { useGetPointerPosition } from './composables/useGetPointerPosition' +export { VueFlowError } from './utils/log' + export * from './types' diff --git a/packages/core/src/utils/log.ts b/packages/core/src/utils/log.ts index 5831a2b2..dfe2b62a 100644 --- a/packages/core/src/utils/log.ts +++ b/packages/core/src/utils/log.ts @@ -1,5 +1,11 @@ const productionEnvs = ['production', 'prod'] +export class VueFlowError extends Error { + constructor(message: string, scope?: string) { + super(`[Vue Flow]: ${scope ? `${scope} - ` : ''}${message}`) + } +} + export const warn = (message: string, ...args: any[]) => { if (!productionEnvs.includes(__ENV__ || '')) { console.warn(`[Vue Flow]: ${message}`, ...args)