1
1
import * as choki from "chokidar" ;
2
2
import { hook } from "../common/helpers" ;
3
- import { performanceLog , cache } from "../common/decorators" ;
3
+ import { cache , performanceLog } from "../common/decorators" ;
4
4
import { EventEmitter } from "events" ;
5
5
import * as path from "path" ;
6
6
import {
7
- PREPARE_READY_EVENT_NAME ,
8
- WEBPACK_COMPILATION_COMPLETE ,
9
- PACKAGE_JSON_FILE_NAME ,
10
- PLATFORMS_DIR_NAME ,
11
- TrackActionNames ,
12
7
AnalyticsEventLabelDelimiter ,
13
8
CONFIG_FILE_NAME_JS ,
14
9
CONFIG_FILE_NAME_TS ,
10
+ PACKAGE_JSON_FILE_NAME ,
11
+ PLATFORMS_DIR_NAME ,
12
+ PREPARE_READY_EVENT_NAME ,
15
13
SupportedPlatform ,
14
+ TrackActionNames ,
15
+ WEBPACK_COMPILATION_COMPLETE ,
16
16
} from "../constants" ;
17
17
import {
18
- IProjectDataService ,
19
- IProjectData ,
20
18
IProjectConfigService ,
19
+ IProjectData ,
20
+ IProjectDataService ,
21
21
} from "../definitions/project" ;
22
22
import {
23
- IPlatformController ,
24
23
INodeModulesDependenciesBuilder ,
25
- IPlatformsDataService ,
24
+ IPlatformController ,
26
25
IPlatformData ,
26
+ IPlatformsDataService ,
27
27
} from "../definitions/platform" ;
28
28
import { IPluginsService } from "../definitions/plugins" ;
29
29
import { IWatchIgnoreListService } from "../declarations" ;
30
30
import {
31
- IDictionary ,
32
- IHooksService ,
33
31
IAnalyticsService ,
32
+ IDictionary ,
34
33
IFileSystem ,
34
+ IHooksService ,
35
35
} from "../common/declarations" ;
36
36
import { injector } from "../common/yok" ;
37
+ import * as _ from "lodash" ;
37
38
// import { project } from "nativescript-dev-xcode";
38
39
// import { platform } from "os";
39
40
interface IPlatformWatcherData {
@@ -76,14 +77,6 @@ export class PrepareController extends EventEmitter {
76
77
await this . $markingModeService . handleMarkingModeFullDeprecation ( {
77
78
projectDir : projectData . projectDir ,
78
79
} ) ;
79
-
80
- this . $projectConfigService . writeLegacyNSConfigIfNeeded (
81
- projectData . projectDir ,
82
- this . $projectDataService . getRuntimePackage (
83
- projectData . projectDir ,
84
- prepareData . platform as SupportedPlatform
85
- )
86
- ) ;
87
80
}
88
81
89
82
await this . trackRuntimeVersion ( prepareData . platform , projectData ) ;
@@ -138,6 +131,17 @@ export class PrepareController extends EventEmitter {
138
131
await this . $platformController . addPlatformIfNeeded ( prepareData ) ;
139
132
140
133
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
+
141
145
let result = null ;
142
146
143
147
const platformData = this . $platformsDataService . getPlatformData (
@@ -335,6 +339,7 @@ export class PrepareController extends EventEmitter {
335
339
this . $watchIgnoreListService . removeFileFromIgnoreList ( filePath ) ;
336
340
} else {
337
341
this . $logger . info ( `Chokidar raised event ${ event } for ${ filePath } .` ) ;
342
+ await this . writeRuntimePackageJson ( projectData , platformData ) ;
338
343
this . emitPrepareEvent ( {
339
344
files : [ ] ,
340
345
hasOnlyHotUpdateFiles : false ,
@@ -391,21 +396,27 @@ export class PrepareController extends EventEmitter {
391
396
projectData : IProjectData ,
392
397
platformData : IPlatformData
393
398
) {
399
+ this . $logger . info (
400
+ "Updating runtime package.json with configuration values..."
401
+ ) ;
394
402
const nsConfig = this . $projectConfigService . readConfig (
395
403
projectData . projectDir
396
404
) ;
397
- const packageData = {
398
- ...projectData . packageJsonData ,
399
- ...nsConfig ,
405
+ const packageData : any = {
400
406
main : "bundle" ,
407
+ ..._ . pick ( projectData . packageJsonData , [ "name" ] ) ,
408
+ ...nsConfig ,
401
409
} ;
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
+ ) {
405
415
packageData . discardUncaughtJsExceptions =
406
416
packageData . ios . discardUncaughtJsExceptions ;
407
417
}
408
418
if (
419
+ platformData . platformNameLowerCase === "android" &&
409
420
packageData . android &&
410
421
packageData . android . discardUncaughtJsExceptions
411
422
) {
@@ -431,7 +442,7 @@ export class PrepareController extends EventEmitter {
431
442
"package.json"
432
443
) ;
433
444
}
434
- this . $logger . info ( "packagePath:" , packagePath ) ;
445
+
435
446
this . $fs . writeJson ( packagePath , packageData ) ;
436
447
}
437
448
@@ -466,4 +477,5 @@ export class PrepareController extends EventEmitter {
466
477
} ) ;
467
478
}
468
479
}
480
+
469
481
injector . register ( "prepareController" , PrepareController ) ;
0 commit comments