diff --git a/src/fib.ts b/src/fib.ts index 8dc8ddd..bec54d9 100644 --- a/src/fib.ts +++ b/src/fib.ts @@ -1,5 +1,5 @@ // util function that computes the fibonacci numbers -module.exports = function fibonacci(n) { +export function fibonacci(n: number): number { if (n < 0) { return -1; } else if (n == 0) { @@ -9,4 +9,4 @@ module.exports = function fibonacci(n) { } return fibonacci(n - 1) + fibonacci(n - 2); -}; +} \ No newline at end of file diff --git a/src/fibRoute.ts b/src/fibRoute.ts index 2d41ca5..9c823ae 100644 --- a/src/fibRoute.ts +++ b/src/fibRoute.ts @@ -1,16 +1,23 @@ // Endpoint for querying the fibonacci numbers -const fibonacci = require("./fib"); +import { fibonacci } from './fib'; -export default (req, res) => { - const { num } = req.params; +type Req = { params: { num: string } }; +type Res = { send: (body: string) => void }; - const fibN = fibonacci(parseInt(num)); - let result = `fibonacci(${num}) is ${fibN}`; +export default (req: Req, res: Res): void => { const { num } = req.params; const n = Number.parseInt(num, 10); + if (Number.isNaN(n)) { + res.send(`n must be a number, received "${num}"`); + return; + } + + const fibN = fibonacci(n); + let resultRequired = `fibonacci(${n}) is ${fibN}`; + + if (fibN < 0) { - result = `fibonacci(${num}) is undefined`; + resultRequired = `fibonacci(${n}) is undefined`; } - - res.send(result); -}; + res.send(resultRequired); +}; \ No newline at end of file