diff options
Diffstat (limited to 'packages/integrations/sitemap/src/utils/logger.ts')
-rw-r--r-- | packages/integrations/sitemap/src/utils/logger.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/integrations/sitemap/src/utils/logger.ts b/packages/integrations/sitemap/src/utils/logger.ts new file mode 100644 index 000000000..203baeaa7 --- /dev/null +++ b/packages/integrations/sitemap/src/utils/logger.ts @@ -0,0 +1,46 @@ +// @internal +export interface ILogger { + info(msg: string): void; + success(msg: string): void; + warn(msg: string): void; + error(msg: string): void; +} + +// @internal +export class Logger implements ILogger { + private colors = { + reset: '\x1b[0m', + fg: { + red: '\x1b[31m', + green: '\x1b[32m', + yellow: '\x1b[33m', + }, + } as const; + + private packageName: string; + + constructor(packageName: string) { + this.packageName = packageName; + } + + private log(msg: string, prefix: string = '') { + // eslint-disable-next-line no-console + console.log(`%s${this.packageName}:%s ${msg}\n`, prefix, prefix ? this.colors.reset : ''); + } + + info(msg: string) { + this.log(msg); + } + + success(msg: string) { + this.log(msg, this.colors.fg.green); + } + + warn(msg: string) { + this.log(`Skipped!\n${msg}`, this.colors.fg.yellow); + } + + error(msg: string) { + this.log(`Failed!\n${msg}`, this.colors.fg.red); + } +} |