Skip to content

Commit 950885f

Browse files
committed
Add details.agentSupported check
1 parent 9fa941d commit 950885f

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

src/commands/optimize/add-overrides.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export async function addOverrides(
132132
// Roughly check Node range as semver.coerce will strip leading
133133
// v's, carets (^), comparators (<,<=,>,>=,=), and tildes (~).
134134
semver.coerce(data.engines.node)!,
135-
`>=${pkgEnvDetails.pkgRequirements.node}`
135+
pkgEnvDetails.pkgRequirements.node
136136
)
137137
)
138138

src/utils/package-environment.ts

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,9 @@ export async function detectPackageEnvironment({
266266
let pkgMinAgentVersion = minSupportedAgentVersion
267267
let pkgMinNodeVersion = minSupportedNodeVersion
268268
if (pkgJson) {
269-
const agentRange = pkgJson.engines?.[agent]
270-
const nodeRange = pkgJson.engines?.['node']
269+
const { engines } = pkgJson
270+
const agentRange = engines?.[agent]
271+
const nodeRange = engines?.['node']
271272
if (isNonEmptyString(agentRange)) {
272273
// Roughly check agent range as semver.coerce will strip leading
273274
// v's, carets (^), comparators (<,<=,>,>=,=), and tildes (~).
@@ -339,8 +340,8 @@ export async function detectPackageEnvironment({
339340
pkgPath,
340341
pkgSupported,
341342
pkgRequirements: {
342-
agent: pkgMinAgentVersion,
343-
node: pkgMinNodeVersion
343+
agent: `>=${pkgMinAgentVersion}`,
344+
node: `>=${pkgMinNodeVersion}`
344345
}
345346
}
346347
}
@@ -373,17 +374,31 @@ export async function detectAndValidatePackageEnvironment(
373374
)
374375
}
375376
})
377+
const { agent, agentVersion } = details
378+
if (!details.agentSupported) {
379+
const minVersion = constants.minimumVersionByAgent.get(agent)!
380+
logger?.fail(
381+
cmdPrefixMessage(
382+
cmdName,
383+
`Requires ${agent} >=${minVersion}. Current version: ${agentVersion ?? 'unknown'}.`
384+
)
385+
)
386+
return
387+
}
376388
if (!details.pkgSupported) {
377389
logger?.fail(
378-
cmdPrefixMessage(cmdName, 'No supported Node or browser range detected')
390+
cmdPrefixMessage(
391+
cmdName,
392+
`Package engine "node" or "${agent}" range not met`
393+
)
379394
)
380395
return
381396
}
382-
if (details.agent === VLT) {
397+
if (agent === VLT) {
383398
logger?.fail(
384399
cmdPrefixMessage(
385400
cmdName,
386-
`${details.agent} does not support overrides. Soon, though ⚡`
401+
`${agent} does not support overrides. Soon, though ⚡`
387402
)
388403
)
389404
return
@@ -401,11 +416,11 @@ export async function detectAndValidatePackageEnvironment(
401416
logger?.fail(cmdPrefixMessage(cmdName, `No ${PACKAGE_JSON} found`))
402417
return
403418
}
404-
if (prod && (details.agent === BUN || details.agent === YARN_BERRY)) {
419+
if (prod && (agent === BUN || agent === YARN_BERRY)) {
405420
logger?.fail(
406421
cmdPrefixMessage(
407422
cmdName,
408-
`--prod not supported for ${details.agent}${details.agentVersion ? `@${details.agentVersion.version}` : ''}`
423+
`--prod not supported for ${agent}${agentVersion ? `@${agentVersion}` : ''}`
409424
)
410425
)
411426
return

0 commit comments

Comments
 (0)