Skip to content

Commit 994dedf

Browse files
Added version argument
1 parent 98151cb commit 994dedf

6 files changed

Lines changed: 20 additions & 1 deletion

File tree

src/cli/cli.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type { CLI } from "../types.js";
55
import { EXIT_ERROR, EXIT_FAIL, EXIT_OK } from "../util/constants.js";
66
import { parseArgs } from "../util/parseArgs.js";
77
import { printHelp } from "../util/printHelp.js";
8+
import { printVersion } from "../util/printVersion.js";
89

910
export async function main(cli: CLI): Promise<void> {
1011
try {
@@ -24,6 +25,11 @@ async function mainUnsafe(cli: CLI): Promise<number> {
2425
return EXIT_OK;
2526
}
2627

28+
if (args.version) {
29+
printVersion();
30+
return EXIT_OK;
31+
}
32+
2733
const hasFilePatterns = args.filePatterns.length > 0;
2834

2935
if (hasFilePatterns) {

src/test/cli.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ suite("CLI", () => {
108108
const expected: ParsedArgs = {
109109
filePatterns: ["a.txt", "b.txt"],
110110
help: false,
111+
version: false,
111112
check: true,
112113
};
113114
const actual = parseArgs(["--check", "a.txt", "b.txt"]);
@@ -119,6 +120,7 @@ suite("CLI", () => {
119120
const expected: ParsedArgs = {
120121
filePatterns: ["--check"],
121122
help: false,
123+
version: false,
122124
check: true,
123125
};
124126
const actual = parseArgs(["--check", "--", "--check"]);

src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ export interface CLI {
77
export interface ParsedArgs {
88
filePatterns: string[];
99
help: boolean;
10+
version: boolean;
1011
check: boolean;
1112
}

src/util/parseArgs.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import type { ParsedArgs } from "../types.js";
44

5-
export const KNOWN_ARGUMENTS = ["--help", "--check"] as const;
5+
export const KNOWN_ARGUMENTS = ["--help", "--version", "--check"] as const;
66

77
type KnownArgument = (typeof KNOWN_ARGUMENTS)[number];
88
type ArgHandler = (parsedArgs: ParsedArgs) => void;
@@ -11,6 +11,9 @@ const ARG_HANDLERS: Record<KnownArgument, ArgHandler> = {
1111
"--help": (parsedArgs) => {
1212
parsedArgs.help = true;
1313
},
14+
"--version": (parsedArgs) => {
15+
parsedArgs.version = true;
16+
},
1417
"--check": (parsedArgs) => {
1518
parsedArgs.check = true;
1619
},
@@ -20,6 +23,7 @@ export function parseArgs(argv: string[]): ParsedArgs {
2023
const result: ParsedArgs = {
2124
filePatterns: [],
2225
help: false,
26+
version: false,
2327
check: false,
2428
};
2529

src/util/printVersion.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import packageJson from "../../package.json" with { type: "json" };
2+
3+
export function printVersion() {
4+
console.log(packageJson.version);
5+
}

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"moduleResolution": "nodenext",
66
"rootDir": "src",
77
"esModuleInterop": true,
8+
"resolveJsonModule": true,
89
"noEmit": true,
910
"strict": true,
1011
"noImplicitAny": true,

0 commit comments

Comments
 (0)