Skip to content

Commit da31178

Browse files
committed
refactoring: simplify setLogLevel method for builder.
1 parent bf8423a commit da31178

3 files changed

Lines changed: 29 additions & 4 deletions

File tree

examples/mustache/mustache-java-r4-gen.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ if (require.main === module) {
44
console.log("📦 Generating FHIR R4 Core Types...");
55

66
const builder = new APIBuilder()
7-
.verbose()
7+
.setLogLevel("DEBUG")
88
.throwException()
99
.fromPackage("hl7.fhir.r4.core", "4.0.1")
1010
.mustache("./examples/mustache/java", { debug: "COMPACT" })

src/api/builder.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,13 @@ import {
2222
type TypeSchema,
2323
} from "@root/typeschema/types";
2424
import { mkTypeSchemaIndex, type TypeSchemaIndex } from "@root/typeschema/utils";
25-
import { CodegenLogger, createLogger, type LogLevel } from "@root/utils/codegen-logger";
25+
import {
26+
CodegenLogger,
27+
createLogger,
28+
type LogLevel,
29+
type LogLevelString,
30+
parseLogLevel,
31+
} from "@root/utils/codegen-logger";
2632
import type { PartialBy } from "@root/utils/types";
2733
import type { TypeSchemaConfig } from "../config";
2834
import type { FileBasedMustacheGeneratorOptions } from "./writer-generator/mustache";
@@ -378,8 +384,8 @@ export class APIBuilder {
378384
return this;
379385
}
380386

381-
setLogLevel(level: LogLevel): APIBuilder {
382-
this.logger?.setLevel(level);
387+
setLogLevel(level: LogLevel | LogLevelString): APIBuilder {
388+
this.logger?.setLevel(typeof level === "string" ? parseLogLevel(level) : level);
383389
return this;
384390
}
385391

src/utils/codegen-logger.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@ export enum LogLevel {
1414
SILENT = 4,
1515
}
1616

17+
export type LogLevelString = keyof typeof LogLevel;
18+
19+
export const parseLogLevel = (level: LogLevelString): LogLevel => {
20+
switch (level.toUpperCase()) {
21+
case "DEBUG":
22+
return LogLevel.DEBUG;
23+
case "INFO":
24+
return LogLevel.INFO;
25+
case "WARN":
26+
return LogLevel.WARN;
27+
case "ERROR":
28+
return LogLevel.ERROR;
29+
case "SILENT":
30+
return LogLevel.SILENT;
31+
default:
32+
throw new Error(`Invalid log level: ${level}`);
33+
}
34+
};
35+
1736
export interface LogOptions {
1837
prefix?: string;
1938
timestamp?: boolean;

0 commit comments

Comments
 (0)