11import * as choki from "chokidar" ;
22import { hook } from "../common/helpers" ;
3- import { performanceLog , cache } from "../common/decorators" ;
3+ import { cache , performanceLog } from "../common/decorators" ;
44import { EventEmitter } from "events" ;
55import * as path from "path" ;
66import {
7- PREPARE_READY_EVENT_NAME ,
8- WEBPACK_COMPILATION_COMPLETE ,
9- PACKAGE_JSON_FILE_NAME ,
10- PLATFORMS_DIR_NAME ,
11- TrackActionNames ,
127 AnalyticsEventLabelDelimiter ,
138 CONFIG_FILE_NAME_JS ,
149 CONFIG_FILE_NAME_TS ,
10+ PACKAGE_JSON_FILE_NAME ,
11+ PLATFORMS_DIR_NAME ,
12+ PREPARE_READY_EVENT_NAME ,
1513 SupportedPlatform ,
14+ TrackActionNames ,
15+ WEBPACK_COMPILATION_COMPLETE ,
1616} from "../constants" ;
1717import {
18- IProjectDataService ,
19- IProjectData ,
2018 IProjectConfigService ,
19+ IProjectData ,
20+ IProjectDataService ,
2121} from "../definitions/project" ;
2222import {
23- IPlatformController ,
2423 INodeModulesDependenciesBuilder ,
25- IPlatformsDataService ,
24+ IPlatformController ,
2625 IPlatformData ,
26+ IPlatformsDataService ,
2727} from "../definitions/platform" ;
2828import { IPluginsService } from "../definitions/plugins" ;
2929import { IWatchIgnoreListService } from "../declarations" ;
3030import {
31- IDictionary ,
32- IHooksService ,
3331 IAnalyticsService ,
32+ IDictionary ,
3433 IFileSystem ,
34+ IHooksService ,
3535} from "../common/declarations" ;
3636import { injector } from "../common/yok" ;
37+ import * as _ from "lodash" ;
3738// import { project } from "nativescript-dev-xcode";
3839// import { platform } from "os";
3940interface IPlatformWatcherData {
@@ -76,14 +77,6 @@ export class PrepareController extends EventEmitter {
7677 await this . $markingModeService . handleMarkingModeFullDeprecation ( {
7778 projectDir : projectData . projectDir ,
7879 } ) ;
79-
80- this . $projectConfigService . writeLegacyNSConfigIfNeeded (
81- projectData . projectDir ,
82- this . $projectDataService . getRuntimePackage (
83- projectData . projectDir ,
84- prepareData . platform as SupportedPlatform
85- )
86- ) ;
8780 }
8881
8982 await this . trackRuntimeVersion ( prepareData . platform , projectData ) ;
@@ -138,6 +131,17 @@ export class PrepareController extends EventEmitter {
138131 await this . $platformController . addPlatformIfNeeded ( prepareData ) ;
139132
140133 this . $logger . info ( "Preparing project..." ) ;
134+
135+ if ( this . $mobileHelper . isAndroidPlatform ( prepareData . platform ) ) {
136+ this . $projectConfigService . writeLegacyNSConfigIfNeeded (
137+ projectData . projectDir ,
138+ this . $projectDataService . getRuntimePackage (
139+ projectData . projectDir ,
140+ prepareData . platform as SupportedPlatform
141+ )
142+ ) ;
143+ }
144+
141145 let result = null ;
142146
143147 const platformData = this . $platformsDataService . getPlatformData (
@@ -335,6 +339,7 @@ export class PrepareController extends EventEmitter {
335339 this . $watchIgnoreListService . removeFileFromIgnoreList ( filePath ) ;
336340 } else {
337341 this . $logger . info ( `Chokidar raised event ${ event } for ${ filePath } .` ) ;
342+ await this . writeRuntimePackageJson ( projectData , platformData ) ;
338343 this . emitPrepareEvent ( {
339344 files : [ ] ,
340345 hasOnlyHotUpdateFiles : false ,
@@ -391,21 +396,27 @@ export class PrepareController extends EventEmitter {
391396 projectData : IProjectData ,
392397 platformData : IPlatformData
393398 ) {
399+ this . $logger . info (
400+ "Updating runtime package.json with configuration values..."
401+ ) ;
394402 const nsConfig = this . $projectConfigService . readConfig (
395403 projectData . projectDir
396404 ) ;
397- const packageData = {
398- ...projectData . packageJsonData ,
399- ...nsConfig ,
405+ const packageData : any = {
400406 main : "bundle" ,
407+ ..._ . pick ( projectData . packageJsonData , [ "name" ] ) ,
408+ ...nsConfig ,
401409 } ;
402- delete packageData . dependencies ;
403- delete packageData . devDependencies ;
404- if ( packageData . ios && packageData . ios . discardUncaughtJsExceptions ) {
410+ if (
411+ platformData . platformNameLowerCase === "ios" &&
412+ packageData . ios &&
413+ packageData . ios . discardUncaughtJsExceptions
414+ ) {
405415 packageData . discardUncaughtJsExceptions =
406416 packageData . ios . discardUncaughtJsExceptions ;
407417 }
408418 if (
419+ platformData . platformNameLowerCase === "android" &&
409420 packageData . android &&
410421 packageData . android . discardUncaughtJsExceptions
411422 ) {
@@ -431,7 +442,7 @@ export class PrepareController extends EventEmitter {
431442 "package.json"
432443 ) ;
433444 }
434- this . $logger . info ( "packagePath:" , packagePath ) ;
445+
435446 this . $fs . writeJson ( packagePath , packageData ) ;
436447 }
437448
@@ -466,4 +477,5 @@ export class PrepareController extends EventEmitter {
466477 } ) ;
467478 }
468479}
480+
469481injector . register ( "prepareController" , PrepareController ) ;
0 commit comments