@@ -5,12 +5,12 @@ const fs = require('fs');
55const { prefix, warn } = require ( './console' ) ;
66const debug = require ( 'debug' ) ( 'ember-try:utils:config' ) ;
77
8- function getConfigPath ( project ) {
8+ function getConfigPath ( cwd ) {
9+ let packageFile = readPackageFile ( cwd ) ;
910 let possibleConfigPath ;
10- if ( project . pkg && project . pkg [ 'ember-addon' ] && project . pkg [ 'ember-addon' ] [ 'configPath' ] ) {
11- let configDir = project . pkg [ 'ember-addon' ] [ 'configPath' ] ;
1211
13- possibleConfigPath = path . join ( configDir , 'ember-try.js' ) ;
12+ if ( packageFile [ 'ember-addon' ] ?. [ 'configPath' ] ) {
13+ possibleConfigPath = path . join ( packageFile [ 'ember-addon' ] [ 'configPath' ] , 'ember-try.js' ) ;
1414 }
1515
1616 if ( fs . existsSync ( possibleConfigPath ) ) {
@@ -25,8 +25,8 @@ function getConfigPath(project) {
2525}
2626
2727async function getBaseConfig ( options ) {
28- let relativeConfigPath = options . configPath || getConfigPath ( options . project ) ;
29- let configPath = path . join ( options . project . root , relativeConfigPath ) ;
28+ let relativeConfigPath = options . configPath || getConfigPath ( options . cwd ) ;
29+ let configPath = path . join ( options . cwd , relativeConfigPath ) ;
3030 let data ;
3131
3232 if ( fs . existsSync ( configPath ) ) {
@@ -42,14 +42,13 @@ async function getBaseConfig(options) {
4242 }
4343
4444 let versionCompatibility =
45- options . versionCompatibility || versionCompatibilityFromPackageJSON ( options . project . root ) ;
45+ options . versionCompatibility || versionCompatibilityFromPackageJSON ( options . cwd ) ;
4646 if ( versionCompatibility ) {
4747 // Required lazily to improve startup speed.
4848 let autoScenarioConfigForEmber = require ( 'ember-try-config' ) ;
4949
5050 let autoConfig = await autoScenarioConfigForEmber ( {
5151 versionCompatibility,
52- project : options . project ,
5352 } ) ;
5453 return await mergeAutoConfigAndConfigFileData ( autoConfig , data ) ;
5554 } else {
@@ -103,11 +102,18 @@ function mergeAutoConfigAndConfigFileData(autoConfig, configData) {
103102 return conf ;
104103}
105104
106- function versionCompatibilityFromPackageJSON ( root ) {
107- let packageJSONFile = path . join ( root , 'package.json' ) ;
108- if ( fs . existsSync ( packageJSONFile ) ) {
109- let packageJSON = JSON . parse ( fs . readFileSync ( packageJSONFile ) ) ;
105+ function versionCompatibilityFromPackageJSON ( cwd ) {
106+ let packageFile = readPackageFile ( cwd ) ;
110107
111- return packageJSON [ 'ember-addon' ] ? packageJSON [ 'ember-addon' ] . versionCompatibility : null ;
108+ return packageFile [ 'ember-addon' ] ?. versionCompatibility ?? null ;
109+ }
110+
111+ function readPackageFile ( cwd ) {
112+ let packageFile = path . join ( cwd , 'package.json' ) ;
113+
114+ if ( fs . existsSync ( packageFile ) ) {
115+ return JSON . parse ( fs . readFileSync ( packageFile ) ) ;
116+ } else {
117+ return { } ;
112118 }
113119}
0 commit comments