@sequencemedia/gulp-cli 1.0.9 → 1.0.12
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/index.mjs +20 -23
- package/lib/log/listen-for-gulp-events.mjs +7 -7
- package/lib/log/listen-for-level-events.mjs +6 -6
- package/lib/log/listen-for-sync-events.mjs +7 -5
- package/lib/log/tasks-json.mjs +1 -1
- package/lib/log/tasks.mjs +6 -6
- package/lib/logger.mjs +3 -0
- package/lib/run-gulp-tasks.mjs +4 -5
- package/lib/run-verify.mjs +6 -7
- package/package.json +2 -2
package/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
import path from 'node:path'
|
|
3
|
-
import log from 'gulplog'
|
|
4
3
|
import yargs from 'yargs'
|
|
5
4
|
import {
|
|
6
5
|
hideBin
|
|
@@ -9,6 +8,7 @@ import Liftoff from '@sequencemedia/liftoff'
|
|
|
9
8
|
import interpret from 'interpret'
|
|
10
9
|
import v8flags from 'v8flags'
|
|
11
10
|
|
|
11
|
+
import logger from './lib/logger.mjs'
|
|
12
12
|
import ansi from './lib/ansi.mjs'
|
|
13
13
|
import exit from './lib/exit.mjs'
|
|
14
14
|
import tildify from './lib/tildify.mjs'
|
|
@@ -62,27 +62,24 @@ let {
|
|
|
62
62
|
.options(cliOptions)
|
|
63
63
|
)
|
|
64
64
|
|
|
65
|
-
cli
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (error) {
|
|
78
|
-
log.warn(ansi.yellow(error.toString()))
|
|
79
|
-
}
|
|
80
|
-
})
|
|
65
|
+
cli
|
|
66
|
+
.on('require', (name) => {
|
|
67
|
+
// This is needed because interpret needs to stub the .mjs extension
|
|
68
|
+
// Without the .mjs require hook, rechoir blows up
|
|
69
|
+
// However, we don't want to show the mjs-stub loader in the logs
|
|
70
|
+
if (path.basename(name, '.js') !== 'mjs-stub') {
|
|
71
|
+
logger.info('Loading external module', ansi.magenta(name))
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
.on('requireFail', (name, error) => {
|
|
75
|
+
logger.warn(`${ansi.yellow('Failed to load external module')} ${ansi.magenta(name)}`)
|
|
81
76
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
})
|
|
77
|
+
if (error) logger.warn(ansi.yellow(error.toString()))
|
|
78
|
+
})
|
|
79
|
+
.on('respawn', (nodeFlags, { pid }) => {
|
|
80
|
+
logger.info(`Node flags: ${ansi.magenta(nodeFlags.join(', '))}`)
|
|
81
|
+
logger.info(`Respawned to PID: ${ansi.magenta(pid)}`)
|
|
82
|
+
})
|
|
86
83
|
|
|
87
84
|
function execute (envProps, cliProps, configProps) {
|
|
88
85
|
/**
|
|
@@ -102,12 +99,12 @@ function execute (envProps, cliProps, configProps) {
|
|
|
102
99
|
process.env.GULP_CWD = GULP_CWD
|
|
103
100
|
|
|
104
101
|
if (!envProps.modulePath) {
|
|
105
|
-
|
|
102
|
+
logger.error(`${ansi.red('Gulp not found')} in ${ansi.magenta(tildify(GULP_CWD))}`)
|
|
106
103
|
exit(1)
|
|
107
104
|
}
|
|
108
105
|
|
|
109
106
|
if (!envProps.configPath) {
|
|
110
|
-
|
|
107
|
+
logger.error(`${ansi.red('Gulpfile not found')} in ${ansi.magenta(tildify(GULP_CWD))}`)
|
|
111
108
|
exit(1)
|
|
112
109
|
}
|
|
113
110
|
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import log from 'gulplog'
|
|
2
1
|
import prettyHrtime from 'pretty-hrtime'
|
|
3
2
|
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import logger from '#gulp-cli/lib/logger'
|
|
4
|
+
import ansi from '#gulp-cli/lib/ansi'
|
|
5
|
+
import formatError from '#gulp-cli/lib/format-error'
|
|
6
6
|
|
|
7
7
|
const errors = new Set()
|
|
8
8
|
|
|
9
9
|
function start (event) {
|
|
10
10
|
const level = event.branch ? 'debug' : 'info'
|
|
11
|
-
|
|
11
|
+
logger[level](`Starting '${ansi.cyan(event.name)}'...`)
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
function stop (event) {
|
|
15
15
|
const level = event.branch ? 'debug' : 'info'
|
|
16
|
-
|
|
16
|
+
logger[level](`Finished '${ansi.cyan(event.name)}' after ${ansi.magenta(prettyHrtime(event.duration))}`)
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
function error (event) {
|
|
20
20
|
const level = event.branch ? 'debug' : 'error'
|
|
21
|
-
|
|
21
|
+
logger[level](`'${ansi.cyan(event.name)}' ${ansi.red('errored after')} ${ansi.magenta(prettyHrtime(event.duration))}`)
|
|
22
22
|
|
|
23
23
|
// Exit if we have logged this before
|
|
24
24
|
if (errors.has(event.error)) return
|
|
25
25
|
|
|
26
26
|
// If we haven't logged this before, log it and add it to the error list
|
|
27
|
-
|
|
27
|
+
logger.error(formatError(event))
|
|
28
28
|
errors.add(event.error)
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import log from 'gulplog'
|
|
2
1
|
import fancyLog from 'fancy-log'
|
|
2
|
+
import logger from '#gulp-cli/lib/logger'
|
|
3
3
|
|
|
4
4
|
const noop = () => {}
|
|
5
5
|
|
|
@@ -16,9 +16,9 @@ function stopListeningForLevelEvents () {
|
|
|
16
16
|
levels
|
|
17
17
|
.forEach((level) => {
|
|
18
18
|
if (level === 'error') {
|
|
19
|
-
|
|
19
|
+
logger.removeListener(level, noop).removeListener(level, fancyLog.error)
|
|
20
20
|
} else {
|
|
21
|
-
|
|
21
|
+
logger.removeListener(level, fancyLog)
|
|
22
22
|
}
|
|
23
23
|
})
|
|
24
24
|
}
|
|
@@ -31,7 +31,7 @@ export default function listenForLevelEvents (cliProps) {
|
|
|
31
31
|
// Silent?
|
|
32
32
|
if (cliProps.tasksList || cliProps.tasksJson || cliProps.help || cliProps.version || cliProps.silent) {
|
|
33
33
|
// Keep from crashing process when silent
|
|
34
|
-
|
|
34
|
+
logger.on('error', noop)
|
|
35
35
|
} else {
|
|
36
36
|
// Default level is 3 (info)
|
|
37
37
|
const loglevel = cliProps.logLevel || 3
|
|
@@ -40,9 +40,9 @@ export default function listenForLevelEvents (cliProps) {
|
|
|
40
40
|
.filter((level, i) => level && i < loglevel)
|
|
41
41
|
.forEach((level) => {
|
|
42
42
|
if (level === 'error') {
|
|
43
|
-
|
|
43
|
+
logger.on(level, fancyLog.error)
|
|
44
44
|
} else {
|
|
45
|
-
|
|
45
|
+
logger.on(level, fancyLog)
|
|
46
46
|
}
|
|
47
47
|
})
|
|
48
48
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import ansi from '
|
|
1
|
+
import logger from '#gulp-cli/lib/logger'
|
|
2
|
+
import ansi from '#gulp-cli/lib/ansi'
|
|
3
3
|
|
|
4
4
|
const tasks = new Map()
|
|
5
5
|
|
|
@@ -9,13 +9,15 @@ function warn () {
|
|
|
9
9
|
|
|
10
10
|
process.exitCode = 1
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
logger.warn(
|
|
13
13
|
ansi.red('The following tasks did not complete:')
|
|
14
14
|
)
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
logger.warn(
|
|
16
17
|
ansi.cyan(taskNames)
|
|
17
18
|
)
|
|
18
|
-
|
|
19
|
+
|
|
20
|
+
logger.warn(
|
|
19
21
|
ansi.red('Did you forget to signal async completion?')
|
|
20
22
|
)
|
|
21
23
|
}
|
package/lib/log/tasks-json.mjs
CHANGED
package/lib/log/tasks.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import archy from 'archy'
|
|
2
|
-
import log from 'gulplog'
|
|
3
2
|
|
|
4
3
|
import sortBy from 'array-sort'
|
|
5
4
|
import isObject from 'isobject'
|
|
6
5
|
|
|
7
|
-
import
|
|
8
|
-
import
|
|
6
|
+
import logger from '#gulp-cli/lib/logger'
|
|
7
|
+
import ansi from '#gulp-cli/lib/ansi'
|
|
8
|
+
import getDuplicate from '#gulp-cli/lib/get-duplicate'
|
|
9
9
|
|
|
10
10
|
function getLineInfoCollector (lineInfo) {
|
|
11
11
|
return {
|
|
@@ -140,11 +140,11 @@ function logLines (lines, spacer, lineInfo) {
|
|
|
140
140
|
line += ansi.white(info.name)
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
logger.info(line)
|
|
144
144
|
})
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
// Wire up
|
|
147
|
+
// Wire up logger tasks
|
|
148
148
|
export default function logTasks (tree, cliProps, getTask) {
|
|
149
149
|
if (cliProps.sortTasks) {
|
|
150
150
|
tree.nodes = sortBy(tree.nodes, 'label')
|
|
@@ -158,6 +158,6 @@ export default function logTasks (tree, cliProps, getTask) {
|
|
|
158
158
|
const spacer = getSpacerForLineIndents(dupe, lineInfo)
|
|
159
159
|
const lines = getLinesContainingOnlyBranches(dupe)
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
logger.info(dupe.label)
|
|
162
162
|
logLines(lines, spacer, lineInfo)
|
|
163
163
|
}
|
package/lib/logger.mjs
ADDED
package/lib/run-gulp-tasks.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import logger from './logger.mjs'
|
|
3
2
|
import ansi from './ansi.mjs'
|
|
4
3
|
import exit from './exit.mjs'
|
|
5
4
|
import tildify from './tildify.mjs'
|
|
@@ -30,7 +29,7 @@ export default function runGulpTasks (gulp, cliProps, envProps, configProps) {
|
|
|
30
29
|
configPath
|
|
31
30
|
} = envProps
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
logger.info(`Using gulpfile ${ansi.magenta(tildify(configPath))}`)
|
|
34
33
|
|
|
35
34
|
const method = getMethodFromCliProps(cliProps)
|
|
36
35
|
const tasks = getTasksFromCliProps(cliProps)
|
|
@@ -39,8 +38,8 @@ export default function runGulpTasks (gulp, cliProps, envProps, configProps) {
|
|
|
39
38
|
gulp[method](tasks)((e) => e && exit(1))
|
|
40
39
|
)
|
|
41
40
|
} catch ({ message }) {
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
logger.error(ansi.red(message))
|
|
42
|
+
logger.error('To list available tasks run: gulp --tasks')
|
|
44
43
|
exit(1)
|
|
45
44
|
}
|
|
46
45
|
}
|
package/lib/run-verify.mjs
CHANGED
|
@@ -4,8 +4,7 @@ import {
|
|
|
4
4
|
readFile
|
|
5
5
|
} from 'node:fs/promises'
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
|
|
7
|
+
import logger from './logger.mjs'
|
|
9
8
|
import ansi from './ansi.mjs'
|
|
10
9
|
import exit from './exit.mjs'
|
|
11
10
|
import tildify from './tildify.mjs'
|
|
@@ -31,7 +30,7 @@ async function getPackageJson (packagePath) {
|
|
|
31
30
|
export default async function runVerify (envProps, cliProps) {
|
|
32
31
|
const packagePath = getPackagePath(envProps, cliProps)
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
logger.info(`Verifying dependencies in ${ansi.magenta(tildify(packagePath))}`)
|
|
35
34
|
try {
|
|
36
35
|
const blacklistJson = await getBlacklist()
|
|
37
36
|
const packageJson = await getPackageJson(packagePath)
|
|
@@ -39,18 +38,18 @@ export default async function runVerify (envProps, cliProps) {
|
|
|
39
38
|
|
|
40
39
|
const dependencies = Object.entries(packageBlacklist)
|
|
41
40
|
if (dependencies.length) {
|
|
42
|
-
|
|
41
|
+
logger.warn(ansi.red('Blacklisted dependencies in this project:'))
|
|
43
42
|
dependencies
|
|
44
43
|
.forEach(([name, reason]) => {
|
|
45
|
-
|
|
44
|
+
logger.warn(`${ansi.bgred(name)}: ${reason}`)
|
|
46
45
|
})
|
|
47
46
|
exit(1)
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
logger.info(ansi.green('There are no blacklisted dependencies in this project'))
|
|
51
50
|
exit(0)
|
|
52
51
|
} catch ({ message }) {
|
|
53
|
-
|
|
52
|
+
logger.error(`${ansi.red('Failed to verify dependencies.')} Could not get blacklist - ${message}`)
|
|
54
53
|
exit(1)
|
|
55
54
|
}
|
|
56
55
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sequencemedia/gulp-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "The command line interface to Gulp",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"build",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"gulp": "bin/gulp.mjs"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
+
"@sequencemedia/gulp-log": "^1.0.0",
|
|
36
37
|
"@sequencemedia/liftoff": "1.0.0",
|
|
37
38
|
"ansi-colors": "^4.1.3",
|
|
38
39
|
"archy": "^1.0.0",
|
|
@@ -62,7 +63,6 @@
|
|
|
62
63
|
"eslint-plugin-import": "^2.27.5",
|
|
63
64
|
"eslint-plugin-node": "^11.1.0",
|
|
64
65
|
"eslint-plugin-promise": "^6.1.1",
|
|
65
|
-
"expect": "^29.5.0",
|
|
66
66
|
"husky": "^8.0.3",
|
|
67
67
|
"mocha": "^10.2.0",
|
|
68
68
|
"rimraf": "^5.0.0",
|