Skip to content

Commit

Permalink
Unify error throwing methods in Devtools
Browse files Browse the repository at this point in the history
  • Loading branch information
gwbaik9717 committed Aug 15, 2024
1 parent ebd7a14 commit a289c05
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 5 deletions.
4 changes: 3 additions & 1 deletion packages/devtools/src/devtools/contexts/SelectedNode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import type { ReactNode, Dispatch, SetStateAction } from 'react';
import { createContext, useContext, useState } from 'react';
import type { RootTreeNode } from '../components/Tree';
import { Code, YorkieError } from '@yorkie-js-sdk/src/util/error';

type SelectedNodeContext = [
RootTreeNode,
Expand All @@ -40,7 +41,8 @@ export function SelectedNodeProvider({ children }: Props) {
export function useSelectedNode() {
const value = useContext(SelectedNodeContext);
if (value === undefined) {
throw new Error(
throw new YorkieError(
Code.ErrContextNotProvided,
'useSelectedNode should be used within SelectedNodeProvider',
);
}
Expand Down
4 changes: 3 additions & 1 deletion packages/devtools/src/devtools/contexts/SelectedPresence.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import type { ReactNode, Dispatch, SetStateAction } from 'react';
import { createContext, useContext, useState } from 'react';
import type { PresenceJsonNode } from '../components/Tree';
import { Code, YorkieError } from '@yorkie-js-sdk/src/util/error';

type SelectedPresenceContext = [
PresenceJsonNode,
Expand All @@ -42,7 +43,8 @@ export function SelectedPresenceProvider({ children }: Props) {
export function useSelectedPresence() {
const value = useContext(SelectedPresenceContext);
if (value === undefined) {
throw new Error(
throw new YorkieError(
Code.ErrContextNotProvided,
'useSelectedPresence should be used within SelectedPresenceProvider',
);
}
Expand Down
12 changes: 9 additions & 3 deletions packages/devtools/src/devtools/contexts/YorkieSource.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import {
type TransactionEvent,
} from 'yorkie-js-sdk';
import { connectPort, sendToSDK } from '../../port';
import { Code, YorkieError } from '@yorkie-js-sdk/src/util/error';

const DocKeyContext = createContext<string>(null);
const YorkieDocContext = createContext(null);
Expand Down Expand Up @@ -125,7 +126,8 @@ export function YorkieSourceProvider({ children }: Props) {
export function useCurrentDocKey() {
const value = useContext(DocKeyContext);
if (value === undefined) {
throw new Error(
throw new YorkieError(
Code.ErrContextNotProvided,
'useCurrentDocKey should be used within YorkieSourceProvider',
);
}
Expand All @@ -135,7 +137,10 @@ export function useCurrentDocKey() {
export function useYorkieDoc() {
const value = useContext(YorkieDocContext);
if (value === undefined) {
throw new Error('useYorkieDoc should be used within YorkieSourceProvider');
throw new YorkieError(
Code.ErrContextNotProvided,
'useYorkieDoc should be used within YorkieSourceProvider',
);
}
return value;
}
Expand Down Expand Up @@ -168,7 +173,8 @@ export function useTransactionEvents() {
);

if (events === undefined) {
throw new Error(
throw new YorkieError(
Code.ErrContextNotProvided,
'useTransactionEvents should be used within YorkieSourceProvider',
);
}
Expand Down
3 changes: 3 additions & 0 deletions packages/sdk/src/util/error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ export enum Code {

// ErrRefused is returned when the execution is rejected.
ErrRefused = 'ErrRefused',

// ErrContextNotProvided is returned when a required React context is missing
ErrContextNotProvided = 'ErrContextNotProvided',
}

/**
Expand Down

0 comments on commit a289c05

Please sign in to comment.