summaryrefslogtreecommitdiff
path: root/packages/integrations/sitemap/src/utils/logger.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/sitemap/src/utils/logger.ts')
-rw-r--r--packages/integrations/sitemap/src/utils/logger.ts46
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);
+ }
+}