@maz-ui/node 4.2.1-alpha.9 → 4.2.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,7 @@
1
+ import * as consola from 'consola';
1
2
  import { ConsolaOptions, InputLogObject, ConsolaReporter, ConsolaInstance } from 'consola';
2
3
  export { ConsolaOptions } from 'consola';
4
+ import { FigletOptions } from 'figlet/node';
3
5
 
4
6
  declare const LogLevelMap: {
5
7
  silent: number;
@@ -26,13 +28,14 @@ declare function createLogger(options?: LoggerOptions): {
26
28
  fatal: (message: InputLogObject | any, ...args: any[]) => void;
27
29
  ready: (message: InputLogObject | any, ...args: any[]) => void;
28
30
  silent: (message: InputLogObject | any, ...args: any[]) => void;
29
- divider: () => void;
31
+ divider: (character?: string) => void;
30
32
  eot: () => void;
31
33
  brand: (message: string) => void;
32
34
  clear: () => void;
33
35
  addReporter: (reporter: ConsolaReporter) => ConsolaInstance;
34
36
  removeReporter: (reporter: ConsolaReporter) => ConsolaInstance | ConsolaReporter[];
35
37
  setLevel: (level: LogLevel) => void;
38
+ getLevel: () => consola.LogLevel;
36
39
  };
37
40
  declare const logger: Logger;
38
41
 
@@ -40,16 +43,32 @@ type LoggerOptions = Partial<ConsolaOptions>;
40
43
  type LogLevel = keyof typeof LogLevelMap;
41
44
  type Logger = ReturnType<typeof createLogger>;
42
45
 
43
- declare function execPromise(command: string, { logger, packageName, noSuccess, noStdout, noStderr, }?: {
44
- logger?: Logger;
46
+ interface CustomLogger {
47
+ log: (message: string, ...args: any[]) => void;
48
+ error: (message: string, ...args: any[]) => void;
49
+ info: (message: string, ...args: any[]) => void;
50
+ warn: (message: string, ...args: any[]) => void;
51
+ debug: (message: string, ...args: any[]) => void;
52
+ }
53
+ declare function execPromise(command: string, { logger, packageName, noSuccess, noStdout, noStderr, logLevel, }?: {
54
+ logger?: CustomLogger;
45
55
  packageName?: string;
46
56
  noSuccess?: boolean;
47
57
  noStdout?: boolean;
48
58
  noStderr?: boolean;
59
+ logLevel?: LogLevel;
49
60
  }): Promise<{
50
61
  stdout: string;
51
62
  stderr: string;
52
63
  }>;
53
64
 
54
- export { createLogger, execPromise, logger };
65
+ declare function printBanner({ name, version, options, }: {
66
+ name: string;
67
+ version?: string;
68
+ options?: FigletOptions & {
69
+ clear?: boolean;
70
+ };
71
+ }): void;
72
+
73
+ export { createLogger, execPromise, logger, printBanner };
55
74
  export type { LogLevel, Logger, LoggerOptions };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
+ import * as consola from 'consola';
1
2
  import { ConsolaOptions, InputLogObject, ConsolaReporter, ConsolaInstance } from 'consola';
2
3
  export { ConsolaOptions } from 'consola';
4
+ import { FigletOptions } from 'figlet/node';
3
5
 
4
6
  declare const LogLevelMap: {
5
7
  silent: number;
@@ -26,13 +28,14 @@ declare function createLogger(options?: LoggerOptions): {
26
28
  fatal: (message: InputLogObject | any, ...args: any[]) => void;
27
29
  ready: (message: InputLogObject | any, ...args: any[]) => void;
28
30
  silent: (message: InputLogObject | any, ...args: any[]) => void;
29
- divider: () => void;
31
+ divider: (character?: string) => void;
30
32
  eot: () => void;
31
33
  brand: (message: string) => void;
32
34
  clear: () => void;
33
35
  addReporter: (reporter: ConsolaReporter) => ConsolaInstance;
34
36
  removeReporter: (reporter: ConsolaReporter) => ConsolaInstance | ConsolaReporter[];
35
37
  setLevel: (level: LogLevel) => void;
38
+ getLevel: () => consola.LogLevel;
36
39
  };
37
40
  declare const logger: Logger;
38
41
 
@@ -40,16 +43,32 @@ type LoggerOptions = Partial<ConsolaOptions>;
40
43
  type LogLevel = keyof typeof LogLevelMap;
41
44
  type Logger = ReturnType<typeof createLogger>;
42
45
 
43
- declare function execPromise(command: string, { logger, packageName, noSuccess, noStdout, noStderr, }?: {
44
- logger?: Logger;
46
+ interface CustomLogger {
47
+ log: (message: string, ...args: any[]) => void;
48
+ error: (message: string, ...args: any[]) => void;
49
+ info: (message: string, ...args: any[]) => void;
50
+ warn: (message: string, ...args: any[]) => void;
51
+ debug: (message: string, ...args: any[]) => void;
52
+ }
53
+ declare function execPromise(command: string, { logger, packageName, noSuccess, noStdout, noStderr, logLevel, }?: {
54
+ logger?: CustomLogger;
45
55
  packageName?: string;
46
56
  noSuccess?: boolean;
47
57
  noStdout?: boolean;
48
58
  noStderr?: boolean;
59
+ logLevel?: LogLevel;
49
60
  }): Promise<{
50
61
  stdout: string;
51
62
  stderr: string;
52
63
  }>;
53
64
 
54
- export { createLogger, execPromise, logger };
65
+ declare function printBanner({ name, version, options, }: {
66
+ name: string;
67
+ version?: string;
68
+ options?: FigletOptions & {
69
+ clear?: boolean;
70
+ };
71
+ }): void;
72
+
73
+ export { createLogger, execPromise, logger, printBanner };
55
74
  export type { LogLevel, Logger, LoggerOptions };
package/dist/index.mjs CHANGED
@@ -1,7 +1,8 @@
1
1
  import { exec } from 'node:child_process';
2
- import process from 'node:process';
2
+ import process$1 from 'node:process';
3
3
  import { blueBright } from 'colorette';
4
4
  import { createConsola } from 'consola';
5
+ import figlet from 'figlet';
5
6
 
6
7
  const LogLevelMap = {
7
8
  silent: Number.NEGATIVE_INFINITY,
@@ -33,7 +34,7 @@ function createLogger(options) {
33
34
  fatal: (message, ...args) => consola.fatal(message, ...args),
34
35
  ready: (message, ...args) => consola.ready(message, ...args),
35
36
  silent: (message, ...args) => consola.silent(message, ...args),
36
- divider: () => console.log("-".repeat(process.stdout.columns ?? 20)),
37
+ divider: (character = "=") => console.log(character.repeat(process$1.stdout.columns ?? 20)),
37
38
  eot: () => console.log(),
38
39
  brand: (message) => console.log(blueBright(message)),
39
40
  clear: () => console.clear(),
@@ -41,7 +42,8 @@ function createLogger(options) {
41
42
  removeReporter: (reporter) => consola.removeReporter(reporter),
42
43
  setLevel: (level) => {
43
44
  consola.level = LogLevelMap[level];
44
- }
45
+ },
46
+ getLevel: () => consola.level
45
47
  };
46
48
  }
47
49
  const logger = createLogger();
@@ -49,26 +51,36 @@ const logger = createLogger();
49
51
  async function execPromise(command, {
50
52
  logger: logger$1,
51
53
  packageName,
52
- noSuccess,
53
- noStdout,
54
- noStderr
54
+ noSuccess = false,
55
+ noStdout = false,
56
+ noStderr = false,
57
+ logLevel
55
58
  } = {}) {
59
+ if (logLevel) {
60
+ logger.setLevel(logLevel);
61
+ }
56
62
  const internalLogger = logger$1 ?? logger;
57
- const packageNameStr = packageName ? `[${packageName}]` : "";
63
+ const packageNameStr = packageName ? `[${packageName}]: ` : "";
58
64
  return await new Promise((resolve, reject) => {
59
65
  exec(command, (error, stdout, stderr) => {
66
+ if (stdout) {
67
+ internalLogger.debug(`${command} - stdout output:`, stdout);
68
+ }
69
+ if (stderr) {
70
+ internalLogger.debug(`${command} - stderr output:`, stderr);
71
+ }
60
72
  if (stdout && !noStdout) {
61
- internalLogger.log(`\u{1F7E1} ${packageNameStr}(${command})`, stdout);
73
+ internalLogger.log(`${packageNameStr}stdout -`, stdout.trim());
62
74
  }
63
75
  if (stderr && !noStderr) {
64
- internalLogger.warn(`\u{1F7E1} ${packageNameStr}(${command})`, stderr);
76
+ internalLogger.log(`${packageNameStr}stderr -`, stderr.trim());
65
77
  }
66
78
  if (error) {
67
- internalLogger.error(`\u{1F534} ${packageNameStr}(${command}) Execution failed - ${error.message}.`, error.message);
79
+ internalLogger.error(`${packageNameStr}${command} failed`, error);
68
80
  reject(error);
69
81
  } else {
70
82
  if (!noSuccess) {
71
- internalLogger.success(`\u{1F7E2} ${packageNameStr}(${command}) Execution success`);
83
+ internalLogger.info(`${packageNameStr}${command} - Success!`);
72
84
  }
73
85
  resolve({ stdout, stderr });
74
86
  }
@@ -76,4 +88,27 @@ async function execPromise(command, {
76
88
  });
77
89
  }
78
90
 
79
- export { createLogger, execPromise, logger };
91
+ function printBanner({
92
+ name,
93
+ version,
94
+ options
95
+ }) {
96
+ options = {
97
+ horizontalLayout: "full",
98
+ font: "ANSI Shadow",
99
+ clear: true,
100
+ ...options
101
+ };
102
+ if (options.clear)
103
+ process.stdout.write("\x1B[2J");
104
+ const banner = figlet.textSync(name, options);
105
+ logger.brand(banner);
106
+ if (version) {
107
+ logger.brand(version);
108
+ logger.eot();
109
+ }
110
+ logger.divider();
111
+ logger.eot();
112
+ }
113
+
114
+ export { createLogger, execPromise, logger, printBanner };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maz-ui/node",
3
3
  "type": "module",
4
- "version": "4.2.1-alpha.9",
4
+ "version": "4.2.1-beta.0",
5
5
  "description": "Node utilities for Maz-UI library",
6
6
  "author": "Louis Mazel <me@loicmazuel.com>",
7
7
  "license": "MIT",
@@ -40,7 +40,8 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "colorette": "^2.0.20",
43
- "consola": "^3.4.2"
43
+ "consola": "^3.4.2",
44
+ "figlet": "^1.9.3"
44
45
  },
45
46
  "devDependencies": {
46
47
  "unbuild": "^3.6.1"
@@ -55,6 +56,7 @@
55
56
  "dev": "unbuild --stub",
56
57
  "typecheck": "tsc --noEmit --skipLibCheck",
57
58
  "lint": "cross-env NODE_ENV=production eslint .",
58
- "lint:fix": "pnpm lint --fix"
59
+ "lint:fix": "pnpm lint --fix",
60
+ "test": "tsx test.ts"
59
61
  }
60
62
  }