Skip to content

Commit 57b7592

Browse files
authored
Merge pull request #24 from abraham/never-error
Switch to NeverError subclass of Error
2 parents b391244 + c239cb6 commit 57b7592

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,5 +138,5 @@ test('fold unknown', () => {
138138
successMock,
139139
);
140140

141-
expect(() => view(otherMock)).toThrowError('Unknown RemoteData type used');
141+
expect(() => view(otherMock)).toThrowError('Unknown RemoteData state:');
142142
});

src/index.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export class Failure<E> {
2020

2121
constructor(public error: E) {
2222
if (error === null || error === undefined) {
23-
fail('Parameter "error" is required');
23+
throw new Error('Parameter "error" is required');
2424
}
2525
}
2626
}
@@ -30,7 +30,7 @@ export class Success<D> {
3030

3131
constructor(public data: D) {
3232
if (data === null || data === undefined) {
33-
fail('Parameter "data" is required');
33+
throw new Error('Parameter "data" is required');
3434
}
3535
}
3636
}
@@ -52,11 +52,13 @@ export function fold<T, E, D>(
5252
case Kinds.Success:
5353
return success(state.data);
5454
default:
55-
return fail('Unknown RemoteData type used');
55+
throw new NeverError(state);
5656
}
5757
}
5858
}
5959

60-
function fail(error: string): never {
61-
throw new Error(error);
60+
class NeverError extends Error {
61+
constructor(value: never) {
62+
super(`Unknown RemoteData state: ${value}`);
63+
}
6264
}

0 commit comments

Comments
 (0)