@@ -28,13 +28,15 @@ var optparse = require('./optparse');
28
28
29
29
30
30
var CLOSURE_BASE_REGEX = / ^ v a r g o o g = g o o g \| \| \{ \} ; / ;
31
- var REQUIRE_REGEX = / ^ \s * (?: (?: v a r | l e t | c o n s t ) \s + [ a - z A - Z _ $ ] [ a - z A - Z 0 - 9 $ _ ] * \s * = \s * ) ? g o o g \. r e q u i r e \s * \( \s * [ \' \" ] ( [ ^ \) ] + ) [ \' \" ] \s * \) ; ? $ / ;
31
+ var MODULE_REGEX = / ^ g o o g \. m o d u l e \s * \( \s * [ \' \" ] ( [ ^ \) ] + ) [ \' \" ] \s * \) ; ? $ / ;
32
32
var PROVIDE_REGEX = / ^ g o o g \. p r o v i d e \s * \( \s * [ \' \" ] ( [ ^ \) ] + ) [ \' \" ] \s * \) ; ? $ / ;
33
+ var REQUIRE_REGEX = / ^ \s * (?: (?: v a r | l e t | c o n s t ) \s + [ a - z A - Z _ $ ] [ a - z A - Z 0 - 9 $ _ ] * \s * = \s * ) ? g o o g \. r e q u i r e \s * \( \s * [ \' \" ] ( [ ^ \) ] + ) [ \' \" ] \s * \) ; ? $ / ;
33
34
34
35
35
36
/**
36
37
* Map of file paths to a hash of what symbols that file provides and requires.
37
- * @type {!Object.<{provides: !Array.<string>,
38
+ * @type {!Object.<{modules: boolean,
39
+ * provides: !Array.<string>,
38
40
* requires: !Array.<string>}>}
39
41
*/
40
42
var FILE_INFO = { } ;
@@ -104,14 +106,18 @@ function updateProviders(path, symbol) {
104
106
*/
105
107
function parseFile ( path ) {
106
108
var contents = fs . readFileSync ( path , 'utf8' ) ;
107
- var info = { provides : [ ] , requires : [ ] } ;
109
+ var info = { module : false , provides : [ ] , requires : [ ] } ;
108
110
FILE_INFO [ path ] = info ;
109
111
110
112
contents . split ( / \n / ) . forEach ( function ( line ) {
111
113
var match = line . match ( REQUIRE_REGEX ) ;
112
114
if ( match ) {
113
115
info . requires . push ( match [ 1 ] ) ;
114
116
addRequiredEdge ( path , match [ 1 ] ) ;
117
+ } else if ( match = line . match ( MODULE_REGEX ) ) {
118
+ info . module = true ;
119
+ info . provides . push ( match [ 1 ] ) ;
120
+ updateProviders ( path , match [ 1 ] ) ;
115
121
} else if ( match = line . match ( PROVIDE_REGEX ) ) {
116
122
info . provides . push ( match [ 1 ] ) ;
117
123
updateProviders ( path , match [ 1 ] ) ;
@@ -244,7 +250,8 @@ function copyLibraries(outputDirPath, filePaths) {
244
250
'goog.addDependency(' ,
245
251
JSON . stringify ( relativePath ) , ', ' ,
246
252
JSON . stringify ( FILE_INFO [ file ] . provides ) , ', ' ,
247
- JSON . stringify ( FILE_INFO [ file ] . requires ) ,
253
+ JSON . stringify ( FILE_INFO [ file ] . requires ) , ', ' ,
254
+ ! ! FILE_INFO [ file ] . module ,
248
255
');'
249
256
] . join ( '' ) ) ;
250
257
0 commit comments