Skip to content

Commit 818bece

Browse files
committed
fix: replace npmlog with simple inline logger
1 parent 0b3a840 commit 818bece

8 files changed

Lines changed: 68 additions & 12 deletions

File tree

bin/cmake-js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env node
22
'use strict'
33

4-
const log = require('npmlog')
4+
const log = require('../lib/logger')
55
const BuildSystem = require('../').BuildSystem
66
const util = require('util')
77
const version = require('../package').version
@@ -186,7 +186,6 @@ if (argv.h) {
186186

187187
if (argv.l && logLevels.includes(argv.l)) {
188188
log.level = argv.l
189-
log.resume()
190189
}
191190

192191
log.silly('CON', 'argv:')

lib/cmLog.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'use strict'
2-
const log = require('npmlog')
2+
const log = require('./logger')
33

44
class CMLog {
55
get level() {

lib/import/find-visualstudio.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const log = require('npmlog')
3+
const log = require('../logger')
44
const { existsSync } = require('fs')
55
const { win32: path } = require('path')
66
const { regSearchKeys, execFile, logWithPrefix } = require('./util')

lib/import/util.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const log = require('npmlog')
3+
const log = require('../logger')
44
const cp = require('child_process')
55
const path = require('path')
66

lib/logger.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
const util = require('util')
2+
3+
const levels = {
4+
silly: -Infinity,
5+
verbose: 1000,
6+
info: 2000,
7+
http: 3000,
8+
warn: 4000,
9+
error: 5000,
10+
silent: Infinity,
11+
}
12+
13+
const colors = {
14+
silly: 'inverse',
15+
verbose: 'blue',
16+
info: 'green',
17+
http: 'green',
18+
warn: 'yellow',
19+
error: 'red',
20+
}
21+
22+
let currentLevel = levels.info
23+
24+
function log(level, prefix, message, ...args) {
25+
if (currentLevel <= levels[level]) {
26+
const stream = level === 'error' ? process.stderr : process.stdout
27+
const color = colors[level]
28+
let levelStr = level.toUpperCase()
29+
if (process.stdout.isTTY && util.styleText) {
30+
// util.styleText is available in Node.js >= 20.12.0
31+
levelStr = util.styleText(color, levelStr)
32+
if (prefix) prefix = util.styleText('magenta', prefix)
33+
}
34+
35+
const formattedMessage = util.format(message, ...args)
36+
const line = prefix
37+
? util.format('%s %s %s', levelStr, prefix, formattedMessage)
38+
: util.format('%s %s', levelStr, formattedMessage)
39+
40+
stream.write(line + '\n')
41+
}
42+
}
43+
44+
const logger = {
45+
get level() {
46+
return Object.keys(levels).find((key) => levels[key] === currentLevel)
47+
},
48+
set level(newLevel) {
49+
if (levels[newLevel] !== undefined) {
50+
currentLevel = levels[newLevel]
51+
}
52+
},
53+
}
54+
55+
for (const level of Object.keys(colors)) {
56+
logger[level] = (prefix, message, ...args) => log(level, prefix, message, ...args)
57+
}
58+
59+
module.exports = logger

package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,11 @@
4141
"node": "^20.17.0 || >=22.9.0"
4242
},
4343
"dependencies": {
44-
"debug": "^4",
44+
"debug": "^4.4.3",
4545
"fs-extra": "^11.3.3",
4646
"node-api-headers": "^1.8.0",
47-
"npmlog": "^6.0.2",
48-
"rc": "^1.2.7",
49-
"semver": "^7.5.4",
47+
"rc": "1.2.8",
48+
"semver": "^7.7.3",
5049
"tar": "^7.5.6",
5150
"url-join": "^4.0.1",
5251
"which": "^6.0.0",

tests/es6/buildSystem.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const lib = require('../../')
55
const locateNAN = require('../../lib/locateNAN')
66
const CMake = lib.CMake
77
const path = require('path')
8-
const log = require('npmlog')
8+
const log = require('../../lib/logger')
99
const testRunner = require('./testRunner')
1010
const testCases = require('./testCases')
1111

@@ -15,7 +15,6 @@ describe('BuildSystem', function () {
1515
before(function () {
1616
if (process.env.UT_LOG_LEVEL) {
1717
log.level = process.env.UT_LOG_LEVEL
18-
log.resume()
1918
}
2019
locateNAN.__projectRoot = path.resolve(path.join(__dirname, '../../'))
2120
})

tests/es6/testRunner.js

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

33
const lib = require('../../')
44
const environment = lib.environment
5-
const log = require('npmlog')
5+
const log = require('../../lib/logger')
66
const util = require('util')
77

88
function* generateRuntimeOptions() {

0 commit comments

Comments
 (0)