Skip to content

Commit 7b0ac92

Browse files
committed
refactor: remove result pattern
1 parent 9dfdf51 commit 7b0ac92

6 files changed

Lines changed: 24 additions & 44 deletions

File tree

package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,5 @@
4646
"tsc-files": "^1.1.4",
4747
"typescript": "^6.0.2",
4848
"vitest": "^4.1.2"
49-
},
50-
"dependencies": {
51-
"@mkvlrn/result": "^5.0.8"
5249
}
5350
}

pnpm-lock.yaml

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,5 @@
33
import { divide } from "#/math/advanced";
44
import { add } from "#/math/basic";
55

6-
const sum = add(1, 2);
7-
console.log(`1 + 2 = ${sum}`);
8-
9-
const div = divide(10, 2);
10-
console.log(div.isError ? "Cannot divide by zero" : `10 / 2 = ${div.value}`);
6+
console.log(`1 + 2 = ${add(1, 2)}`);
7+
console.log(`10 / 2 = ${divide(10, 2)}`);
Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,31 @@
1-
import { err, ok, type Result } from "@mkvlrn/result";
2-
3-
interface TestCase<T> {
1+
interface TestCase {
42
a: number;
53
b: number;
6-
expected: T;
7-
display?: string | number;
4+
expected: number;
5+
errorMessage?: string;
86
}
97

10-
export const addTestCases: TestCase<number>[] = [
8+
export const addTestCases: TestCase[] = [
119
{ a: 2, b: 2, expected: 4 },
1210
{ a: 2, b: 3, expected: 5 },
1311
{ a: 1000, b: 2000, expected: 3000 },
1412
];
1513

16-
export const subtractTestCases: TestCase<number>[] = [
14+
export const subtractTestCases: TestCase[] = [
1715
{ a: 2, b: 2, expected: 0 },
1816
{ a: 2, b: 3, expected: -1 },
1917
{ a: 1000, b: 2000, expected: -1000 },
2018
];
2119

22-
export const multiplyTestCases: TestCase<number>[] = [
20+
export const multiplyTestCases: TestCase[] = [
2321
{ a: 2, b: 2, expected: 4 },
2422
{ a: 2, b: 3, expected: 6 },
2523
{ a: 1000, b: 2000, expected: 2_000_000 },
2624
];
2725

28-
export const divideTestCases: TestCase<Result<number, Error>>[] = [
29-
{ a: 2, b: 2, expected: ok(1), display: 1 },
30-
{ a: 2, b: 4, expected: ok(0.5), display: 0.5 },
31-
{ a: 999, b: 333, expected: ok(3), display: 3 },
32-
{
33-
a: 2,
34-
b: 0,
35-
expected: err(new Error("cannot divide by zero")),
36-
display: "Error: cannot divide by zero",
37-
},
26+
export const divideTestCases: TestCase[] = [
27+
{ a: 2, b: 2, expected: 1 },
28+
{ a: 2, b: 4, expected: 0.5 },
29+
{ a: 999, b: 333, expected: 3 },
30+
{ a: 2, b: 0, expected: Number.NaN, errorMessage: "Error: cannot divide by zero" },
3831
];

src/math/advanced.test.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,16 @@ describe("should multiply two numbers", () => {
1414
});
1515

1616
describe("should divide two numbers", () => {
17-
for (const { a, b, expected, display } of divideTestCases) {
18-
test(`${a} ÷ ${b} = ${display}`, () => {
17+
for (const { a, b, expected, errorMessage } of divideTestCases) {
18+
test(`${a} ÷ ${b} = ${errorMessage ?? expected}`, () => {
1919
// act
20-
const result = divide(a, b);
20+
const act = () => divide(a, b);
2121
// assert
22-
expect(result).toStrictEqual(expected);
22+
if (typeof errorMessage === "string") {
23+
expect(act).toThrow(errorMessage);
24+
} else {
25+
expect(act()).toStrictEqual(expected);
26+
}
2327
});
2428
}
2529
});

src/math/advanced.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import { err, ok, type Result } from "@mkvlrn/result";
2-
31
export function multiply(a: number, b: number): number {
42
return a * b;
53
}
64

7-
export function divide(a: number, b: number): Result<number, Error> {
5+
export function divide(a: number, b: number): number {
86
if (b === 0) {
9-
return err(new Error("cannot divide by zero"));
7+
throw new Error("Error: cannot divide by zero");
108
}
11-
return ok(a / b);
9+
return a / b;
1210
}

0 commit comments

Comments
 (0)