Skip to content

Commit f4c71e5

Browse files
authored
Protect against shimmed process usage in Vercel Edge (#5969)
* Protect against shimmed process usage in Vercel Edge * Adding a changeset
1 parent 4d1e4f6 commit f4c71e5

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

.changeset/nasty-dolphins-cry.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'astro': patch
3+
---
4+
5+
Fix usage of logger in Vercel Edge
6+
7+
This protects against usage of `process` global in shimmed environments.

packages/astro/src/core/logger/core.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,18 @@ function padStr(str: string, len: number) {
101101

102102
export let defaultLogLevel: LoggerLevel;
103103
if (typeof process !== 'undefined') {
104-
if (process.argv.includes('--verbose')) {
105-
defaultLogLevel = 'debug';
106-
} else if (process.argv.includes('--silent')) {
107-
defaultLogLevel = 'silent';
104+
// This could be a shimmed environment so we don't know that `process` is the full
105+
// NodeJS.process. This code treats it as a plain object so TS doesn't let us
106+
// get away with incorrect assumptions.
107+
let proc: object = process;
108+
if('argv' in proc && Array.isArray(proc.argv)) {
109+
if (proc.argv.includes('--verbose')) {
110+
defaultLogLevel = 'debug';
111+
} else if (proc.argv.includes('--silent')) {
112+
defaultLogLevel = 'silent';
113+
} else {
114+
defaultLogLevel = 'info';
115+
}
108116
} else {
109117
defaultLogLevel = 'info';
110118
}

0 commit comments

Comments
 (0)