@@ -52,35 +52,46 @@ export class VersionManager {
52
52
} ;
53
53
} ) ;
54
54
55
+ // This handle the fallback if the resource fails.
55
56
versions = computed ( ( ) => {
56
57
return this . remoteVersions . hasValue ( ) ? this . remoteVersions . value ( ) : this . localVersions ;
57
58
} ) ;
58
59
59
- remoteVersions = httpResource ( ( ) => 'https://angular.dev/assets/others/versions.json' , {
60
- parse : ( json ) => {
61
- if ( ! Array . isArray ( json ) ) {
62
- throw new Error ( 'Invalid version data' ) ;
63
- }
64
- return json . map ( ( v : unknown ) => {
65
- if (
66
- v === undefined ||
67
- v === null ||
68
- typeof v !== 'object' ||
69
- ! ( 'version' in v ) ||
70
- ! ( 'url' in v ) ||
71
- typeof v . version !== 'string' ||
72
- typeof v . url !== 'string'
73
- ) {
60
+ // Yes this will trigger a cors error on localhost
61
+ // but this is fine as we'll fallback to the local versions.json
62
+ // which is the most up-to-date anyway.
63
+ remoteVersions = httpResource (
64
+ ( ) => ( {
65
+ url : 'https://angular.dev/assets/others/versions.json' ,
66
+ transferCache : false ,
67
+ cache : 'no-cache' ,
68
+ } ) ,
69
+ {
70
+ parse : ( json : unknown ) => {
71
+ if ( ! Array . isArray ( json ) ) {
74
72
throw new Error ( 'Invalid version data' ) ;
75
73
}
74
+ return json . map ( ( v : unknown ) => {
75
+ if (
76
+ v === undefined ||
77
+ v === null ||
78
+ typeof v !== 'object' ||
79
+ ! ( 'version' in v ) ||
80
+ ! ( 'url' in v ) ||
81
+ typeof v . version !== 'string' ||
82
+ typeof v . url !== 'string'
83
+ ) {
84
+ throw new Error ( 'Invalid version data' ) ;
85
+ }
76
86
77
- return {
78
- displayName : v . version ,
79
- url : v . url ,
80
- } ;
81
- } ) ;
87
+ return {
88
+ displayName : v . version ,
89
+ url : v . url ,
90
+ } ;
91
+ } ) ;
92
+ } ,
82
93
} ,
83
- } ) ;
94
+ ) ;
84
95
85
96
currentDocsVersion = computed ( ( ) => {
86
97
// In devmode the version is 0, so we'll target next (which is first on the list)
0 commit comments