@@ -86,12 +86,30 @@ module.exports = function extractCalendars(locales) {
86
86
} ;
87
87
88
88
function loadCalendars ( locale ) {
89
- var dir = path . resolve ( path . dirname ( require . resolve ( 'cldr-dates-full/package.json' ) ) , 'main' , locale ) ;
90
- var filenames = glob . sync ( "ca-*.json" , {
91
- cwd : dir
92
- } ) ;
93
-
94
- return filenames . reduce ( function ( calendars , filename ) {
95
- return assign ( calendars , require ( path . join ( dir , filename ) ) . main [ locale ] . dates . calendars ) ;
89
+ // all NPM packages providing calendars specific data
90
+ var pkgs = [
91
+ "cldr-dates-full" ,
92
+ "cldr-cal-buddhist-full" ,
93
+ "cldr-cal-chinese-full" ,
94
+ "cldr-cal-coptic-full" ,
95
+ "cldr-cal-dangi-full" ,
96
+ "cldr-cal-ethiopic-full" ,
97
+ "cldr-cal-hebrew-full" ,
98
+ "cldr-cal-indian-full" ,
99
+ "cldr-cal-islamic-full" ,
100
+ "cldr-cal-japanese-full" ,
101
+ "cldr-cal-persian-full" ,
102
+ "cldr-cal-roc-full"
103
+ ] ;
104
+ // walking all packages, selecting calendar files, then
105
+ // reading the content of each calendar, and concatenating the set
106
+ return pkgs . reduce ( function ( calendars , pkgName ) {
107
+ var dir = path . resolve ( path . dirname ( require . resolve ( pkgName + '/package.json' ) ) , 'main' , locale ) ;
108
+ var filenames = glob . sync ( "ca-*.json" , {
109
+ cwd : dir
110
+ } ) ;
111
+ return filenames . reduce ( function ( calendars , filename ) {
112
+ return assign ( calendars , require ( path . join ( dir , filename ) ) . main [ locale ] . dates . calendars ) ;
113
+ } , calendars ) ;
96
114
} , { } ) ;
97
115
}
0 commit comments