Skip to content

Commit 15b9e99

Browse files
committed
Cleanup how safe-wrapper flags are used
1 parent f00ebce commit 15b9e99

File tree

5 files changed

+33
-26
lines changed

5 files changed

+33
-26
lines changed

src/commands/cdxgen/cmd-cdxgen.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,12 @@ async function run(
138138
): Promise<void> {
139139
const cli = meowOrExit({
140140
allowUnknownFlags: true,
141-
argv: argv.filter(s => s !== '--help' && s !== '-h'), // Don't let meow take over --help
141+
// Don't let meow take over --help.
142+
argv: argv.filter(s => s !== '--help' && s !== '-h'),
142143
config,
143144
importMeta,
144145
parentName
145146
})
146-
//
147-
//
148147
// if (cli.input.length)
149148
// logger.fail(
150149
// stripIndents`
@@ -156,10 +155,10 @@ async function run(
156155
// return
157156
// }
158157

159-
// TODO: convert to meow
158+
// TODO: Convert to meow.
160159
const yargv = {
161160
...yargsParse(argv as string[], yargsConfig)
162-
} as any // as Record<string, unknown>;
161+
} as any
163162

164163
const unknown: string[] = yargv._
165164
const { length: unknownLength } = unknown
@@ -174,14 +173,14 @@ async function run(
174173
return
175174
}
176175

177-
if (yargv.output === undefined) {
178-
yargv.output = 'socket-cdx.json'
179-
}
180-
181176
if (cli.flags['dryRun']) {
182177
logger.log(DRY_RUN_BAIL_TEXT)
183178
return
184179
}
185180

181+
if (yargv.output === undefined) {
182+
yargv.output = 'socket-cdx.json'
183+
}
184+
186185
await runCycloneDX(yargv)
187186
}

src/commands/cdxgen/run-cyclonedx.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,22 @@ export async function runCycloneDX(yargv: any) {
3636
// Use synp to create a package-lock.json from the yarn.lock,
3737
// based on the node_modules folder, for a more accurate SBOM.
3838
try {
39-
await shadowBin(
40-
NPX,
41-
['[email protected]', '--', '--source-file', './yarn.lock'],
42-
2
43-
)
39+
await shadowBin(NPX, [
40+
41+
'--',
42+
'--source-file',
43+
'./yarn.lock'
44+
])
4445
yargv.type = NPM
4546
cleanupPackageLock = true
4647
} catch {}
4748
}
4849
}
49-
await shadowBin(
50-
NPX,
51-
['@cyclonedx/[email protected]', '--', ...argvToArray(yargv)],
52-
2
53-
)
50+
await shadowBin(NPX, [
51+
'@cyclonedx/[email protected]',
52+
'--',
53+
...argvToArray(yargv)
54+
])
5455
if (cleanupPackageLock) {
5556
try {
5657
await fs.rm('./package-lock.json')

src/constants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ type ENV = Remap<
5555
type IPC = Readonly<{
5656
SOCKET_CLI_FIX?: string | undefined
5757
SOCKET_CLI_OPTIMIZE?: boolean | undefined
58-
SOCKET_CLI_SAFE_WRAPPER?: number | undefined
58+
SOCKET_CLI_SAFE_WRAPPER?: string | undefined
5959
}>
6060

6161
type Constants = Remap<

src/shadow/npm/arborist/lib/arborist/index.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import type { ArboristClass, ArboristReifyOptions } from './types'
1212
import type { SafeNode } from '../node'
1313

1414
const {
15+
NPM,
16+
NPX,
1517
SOCKET_CLI_SAFE_WRAPPER,
1618
kInternalsSymbol,
1719
[kInternalsSymbol as unknown as 'Symbol(kInternalsSymbol)']: { getIPC }
@@ -82,10 +84,15 @@ export class SafeArborist extends Arborist {
8284
__proto__: null,
8385
...(args.length ? args[0] : undefined)
8486
} as ArboristReifyOptions
85-
const level = options.dryRun ? 0 : await getIPC(SOCKET_CLI_SAFE_WRAPPER)
86-
if (!level) {
87+
const safeWrapperName = options.dryRun
88+
? undefined
89+
: await getIPC(SOCKET_CLI_SAFE_WRAPPER)
90+
const isSafeNpm = safeWrapperName === NPM
91+
const isSafeNpx = safeWrapperName === NPX
92+
if (!safeWrapperName || (isSafeNpx && options['yes'])) {
8793
return await this[kRiskyReify](...args)
8894
}
95+
8996
// Lazily access constants.spinner.
9097
const { spinner } = constants
9198
await super.reify(
@@ -100,7 +107,8 @@ export class SafeArborist extends Arborist {
100107
const alertsMap = await getAlertsMapFromArborist(this, {
101108
spinner,
102109
include: {
103-
unfixable: level < 2
110+
existing: isSafeNpx,
111+
unfixable: isSafeNpm
104112
}
105113
})
106114
if (alertsMap.size) {

src/shadow/npm/bin.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ const {
1818

1919
export default async function shadowBin(
2020
binName: 'npm' | 'npx',
21-
args = process.argv.slice(2),
22-
level = 1
21+
args = process.argv.slice(2)
2322
) {
2423
process.exitCode = 1
2524
const useDebug = isDebug()
@@ -74,7 +73,7 @@ export default async function shadowBin(
7473
})
7574
spawnPromise.process.send({
7675
[SOCKET_IPC_HANDSHAKE]: {
77-
[SOCKET_CLI_SAFE_WRAPPER]: level
76+
[SOCKET_CLI_SAFE_WRAPPER]: binName
7877
}
7978
})
8079
await spawnPromise

0 commit comments

Comments
 (0)