@@ -13,6 +13,7 @@ import {
13
13
getPlatformName ,
14
14
} from '../helpers/platform' ;
15
15
import base from './base' ;
16
+ import semver from 'semver' ;
16
17
// until we can switch to async/await on the webpack config, copy this from '@angular/compiler-cli'
17
18
const GLOBAL_DEFS_FOR_TERSER = {
18
19
ngDevMode : false ,
@@ -24,6 +25,40 @@ const GLOBAL_DEFS_FOR_TERSER_WITH_AOT = {
24
25
ngJitMode : false ,
25
26
} ;
26
27
28
+ const CHROME_VERSIONS = {
29
+ android : {
30
+ '0.0.0' : 'chrome 83' ,
31
+ '8.5.0' : 'chrome 103' ,
32
+ } ,
33
+ ios : {
34
+ '0.0.0' : 'chrome 92' ,
35
+ '8.5.0' : 'chrome 103' ,
36
+ } ,
37
+ default : 'chrome 103' ,
38
+ } ;
39
+
40
+ function getSupportedBrowsers ( ) {
41
+ const platform = getPlatformName ( ) ;
42
+ if ( platform === 'android' || platform === 'ios' ) {
43
+ try {
44
+ const version = require ( `@nativescript/${ platform } /package.json` ) . version ;
45
+ let parsed = semver . parse ( version ) ;
46
+ if ( parsed ) {
47
+ let lastVersion = CHROME_VERSIONS . default ;
48
+ for ( const k in CHROME_VERSIONS [ platform ] ) {
49
+ if ( semver . gte ( parsed , k ) ) {
50
+ lastVersion = CHROME_VERSIONS [ platform ] [ k ] ;
51
+ } else {
52
+ break ;
53
+ }
54
+ }
55
+ return [ lastVersion ] ;
56
+ }
57
+ } catch ( e ) { }
58
+ }
59
+ return [ CHROME_VERSIONS . default ] ;
60
+ }
61
+
27
62
export default function ( config : Config , env : IWebpackEnv = _env ) : Config {
28
63
base ( config , env ) ;
29
64
@@ -197,6 +232,8 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
197
232
const { ScriptTarget } = getTypescript ( ) ;
198
233
buildAngularOptions . scriptTarget =
199
234
tsConfig . options . target ?? ScriptTarget . ESNext ;
235
+ } else {
236
+ buildAngularOptions . supportedBrowsers = getSupportedBrowsers ( ) ;
200
237
}
201
238
202
239
if ( disableAOT ) {
0 commit comments