@@ -12,7 +12,7 @@ import type {StringLiteral} from "./javascript/source.js";
12
12
import { getStringLiteralValue , isStringLiteral } from "./javascript/source.js" ;
13
13
import { relativePath } from "./path.js" ;
14
14
import { Sourcemap } from "./sourcemap.js" ;
15
- import { faint } from "./tty.js" ;
15
+ import { faint , yellow } from "./tty.js" ;
16
16
17
17
export interface NpmSpecifier {
18
18
name : string ;
@@ -144,7 +144,7 @@ export async function getDependencyResolver(
144
144
if ( value . startsWith ( "/npm/" ) ) {
145
145
const { name : depName , range : depRange } = parseNpmSpecifier ( value . slice ( "/npm/" . length ) ) ;
146
146
if ( depName === name ) return ; // ignore self-references, e.g. mermaid plugin
147
- if ( existsSync ( join ( root , ".observablehq" , "cache" , "_npm" , `${ depName } @${ depRange } ` ) ) ) return ; // already resolved
147
+ if ( depRange && existsSync ( join ( root , ".observablehq" , "cache" , "_npm" , `${ depName } @${ depRange } ` ) ) ) return ; // already resolved
148
148
dependencies . add ( value ) ;
149
149
}
150
150
}
@@ -163,9 +163,11 @@ export async function getDependencyResolver(
163
163
? "latest" // force Arquero, Mosaic & DuckDB-Wasm to use the (same) latest version of Arrow
164
164
: name === "@uwdata/mosaic-core" && depName === "@duckdb/duckdb-wasm"
165
165
? "1.28.0" // force Mosaic to use the latest (stable) version of DuckDB-Wasm
166
- : pkg . dependencies ?. [ depName ] ?? pkg . devDependencies ?. [ depName ] ?? pkg . peerDependencies ?. [ depName ] ;
167
- if ( range === undefined ) continue ; // only resolve if we find a range
168
- resolutions . set ( dependency , await resolveNpmImport ( root , `${ depName } @${ range } /${ depPath } ` ) ) ;
166
+ : pkg . dependencies ?. [ depName ] ??
167
+ pkg . devDependencies ?. [ depName ] ??
168
+ pkg . peerDependencies ?. [ depName ] ??
169
+ void console . warn ( yellow ( `${ depName } is an undeclared dependency of ${ name } ; resolving latest version` ) ) ;
170
+ resolutions . set ( dependency , await resolveNpmImport ( root , `${ depName } ${ range ? `@${ range } ` : "" } /${ depPath } ` ) ) ;
169
171
}
170
172
}
171
173
0 commit comments