@@ -34,35 +34,37 @@ export type ResolveConfigOptions = {
3434 cwd ?: string ;
3535 overrides ?: Partial < TriggerConfig > ;
3636 configFile ?: string ;
37- defaultRuntime ?: BuildRuntime ;
3837 warn ?: boolean ;
3938} ;
4039
40+ export type LoadedConfig = ResolvedConfig & {
41+ runtimeWasExplicit : boolean ;
42+ } ;
43+
4144export async function loadConfig ( {
4245 cwd = process . cwd ( ) ,
4346 overrides,
4447 configFile,
45- defaultRuntime,
4648 warn = true ,
47- } : ResolveConfigOptions = { } ) : Promise < ResolvedConfig > {
49+ } : ResolveConfigOptions = { } ) : Promise < LoadedConfig > {
4850 const result = await c12 . loadConfig < TriggerConfig > ( {
4951 name : "trigger" ,
5052 cwd,
5153 configFile,
5254 jitiOptions : { debug : logger . loggerLevel === "debug" } ,
5355 } ) ;
5456
55- return await resolveConfig ( cwd , result , overrides , defaultRuntime , warn ) ;
57+ return await resolveConfig ( cwd , result , overrides , warn ) ;
5658}
5759
5860type ResolveWatchConfigOptions = ResolveConfigOptions & {
59- onUpdate : ( config : ResolvedConfig ) => void ;
61+ onUpdate : ( config : LoadedConfig ) => void ;
6062 debounce ?: number ;
6163 ignoreInitial ?: boolean ;
6264} ;
6365
6466type ResolveWatchConfigResult = {
65- config : ResolvedConfig ;
67+ config : LoadedConfig ;
6668 files : string [ ] ;
6769 stop : ( ) => Promise < void > ;
6870} ;
@@ -74,7 +76,6 @@ export async function watchConfig({
7476 ignoreInitial = true ,
7577 overrides,
7678 configFile,
77- defaultRuntime,
7879} : ResolveWatchConfigOptions ) : Promise < ResolveWatchConfigResult > {
7980 const result = await c12 . watchConfig < TriggerConfig > ( {
8081 name : "trigger" ,
@@ -84,13 +85,13 @@ export async function watchConfig({
8485 chokidarOptions : { ignoreInitial } ,
8586 jitiOptions : { debug : logger . loggerLevel === "debug" } ,
8687 onUpdate : async ( { newConfig } ) => {
87- const resolvedConfig = await resolveConfig ( cwd , newConfig , overrides , defaultRuntime , false ) ;
88+ const resolvedConfig = await resolveConfig ( cwd , newConfig , overrides , false ) ;
8889
8990 onUpdate ( resolvedConfig ) ;
9091 } ,
9192 } ) ;
9293
93- const config = await resolveConfig ( cwd , result , overrides , defaultRuntime ) ;
94+ const config = await resolveConfig ( cwd , result , overrides ) ;
9495
9596 return {
9697 config,
@@ -159,9 +160,8 @@ async function resolveConfig(
159160 cwd : string ,
160161 result : c12 . ResolvedConfig < TriggerConfig > ,
161162 overrides ?: Partial < TriggerConfig > ,
162- defaultRuntime ?: BuildRuntime ,
163163 warn = true
164- ) : Promise < ResolvedConfig > {
164+ ) : Promise < LoadedConfig > {
165165 // `trigger.config` is the fallback value set by c12. Bail out with actionable guidance before
166166 // touching the filesystem: the pkg-types resolvers below throw raw errors when run outside a
167167 // project (e.g. `dev` before `init`), which would mask this message.
@@ -186,8 +186,7 @@ async function resolveConfig(
186186 [ "run_engine_v2" as const ] . concat ( config . compatibilityFlags ?? [ ] )
187187 ) ;
188188 const legacyDefaultRuntime : BuildRuntime = features . run_engine_v2 ? "node" : DEFAULT_RUNTIME ;
189- const configuredRuntime =
190- overrides ?. runtime ?? config . runtime ?? defaultRuntime ?? legacyDefaultRuntime ;
189+ const configuredRuntime = overrides ?. runtime ?? config . runtime ?? legacyDefaultRuntime ;
191190 const runtime = resolveBuildRuntime ( configuredRuntime ) ;
192191
193192 if ( warn && isDeprecatedConfigRuntime ( configuredRuntime ) ) {
@@ -229,7 +228,7 @@ async function resolveConfig(
229228 config ,
230229 {
231230 dirs,
232- runtime : defaultRuntime ?? legacyDefaultRuntime ,
231+ runtime : legacyDefaultRuntime ,
233232 tsconfig : tsconfigPath ,
234233 build : {
235234 jsx : {
@@ -246,12 +245,19 @@ async function resolveConfig(
246245 }
247246 ) as ResolvedConfig ; // TODO: For some reason, without this, there is a weird type error complaining about tsconfigPath being string | nullish, which can't be assigned to string | undefined
248247
249- return {
248+ const resolvedConfig = {
250249 ...mergedConfig ,
251250 dirs : Array . from ( new Set ( dirs ) ) ,
252251 instrumentedPackageNames : getInstrumentedPackageNames ( mergedConfig ) ,
253252 runtime,
254253 } ;
254+
255+ Object . defineProperty ( resolvedConfig , "runtimeWasExplicit" , {
256+ value : overrides ?. runtime !== undefined || config . runtime !== undefined ,
257+ enumerable : false ,
258+ } ) ;
259+
260+ return resolvedConfig as LoadedConfig ;
255261}
256262
257263function resolveTriggerDir ( dir : string , workingDir : string ) : string {
0 commit comments