Skip to content

Commit bdeb05a

Browse files
feat: allow greet to take a string (#11)
1 parent b04889f commit bdeb05a

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ npm i template-typescript-node-package
1616
```ts
1717
import { greet } from "template-typescript-node-package";
1818

19-
greet({
20-
message: "Hello, world!",
21-
});
19+
greet("Hello, world!");
2220
```
2321

2422
## Development

src/greet.test.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,25 @@ import { greet } from "./greet.js";
44
const message = "Yay, testing!";
55

66
describe("greet", () => {
7-
it("logs once when times is not provided", () => {
7+
it("logs to the console once when message is provided as a string", () => {
8+
const logger = vi.spyOn(console, "log").mockImplementation(() => undefined);
9+
10+
greet(message);
11+
12+
expect(logger).toHaveBeenCalledWith(message);
13+
expect(logger).toHaveBeenCalledTimes(1);
14+
});
15+
16+
it("logs to the console once when message is provided as an object", () => {
17+
const logger = vi.spyOn(console, "log").mockImplementation(() => undefined);
18+
19+
greet({ message });
20+
21+
expect(logger).toHaveBeenCalledWith(message);
22+
expect(logger).toHaveBeenCalledTimes(1);
23+
});
24+
25+
it("logs once when times is not provided in an object", () => {
826
const logger = vi.fn();
927

1028
greet({ logger, message });

src/greet.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { GreetOptions } from "./types";
22

3-
export function greet({
4-
logger = console.log.bind(console),
5-
message,
6-
times = 1,
7-
}: GreetOptions) {
3+
export function greet(options: GreetOptions | string) {
4+
const {
5+
logger = console.log.bind(console),
6+
message,
7+
times = 1,
8+
} = typeof options === "string" ? { message: options } : options;
9+
810
for (let i = 0; i < times; i += 1) {
911
logger(message);
1012
}

0 commit comments

Comments
 (0)