@@ -3,6 +3,7 @@ import * as fs from 'fs';
3
3
import * as path from 'path' ;
4
4
import * as ts from 'typescript' ;
5
5
6
+ import * as cli_support from '../src/cli_support' ;
6
7
import * as tsickle from '../src/tsickle' ;
7
8
8
9
import * as test_support from './test_support' ;
@@ -164,102 +165,96 @@ describe('getJSDocAnnotation', () => {
164
165
} ) ;
165
166
166
167
describe ( 'convertCommonJsToGoogModule' , ( ) => {
167
- function pathToModuleName ( context : string , fileName : string ) {
168
- if ( fileName [ 0 ] === '.' ) {
169
- fileName = path . join ( path . dirname ( context ) , fileName ) ;
170
- }
171
- return fileName . replace ( / \/ / g, '$' ) . replace ( / _ / g, '__' ) ;
172
- }
173
-
174
168
function expectCommonJs ( fileName : string , content : string ) {
175
- fileName = fileName . substring ( 0 , fileName . lastIndexOf ( '.' ) ) ;
176
- return expect ( tsickle . convertCommonJsToGoogModule ( fileName , content , pathToModuleName ) . output ) ;
169
+ return expect (
170
+ tsickle . convertCommonJsToGoogModule ( fileName , content , cli_support . pathToModuleName )
171
+ . output ) ;
177
172
}
178
173
179
174
it ( 'adds a goog.module call' , ( ) => {
180
175
// NB: no line break added below.
181
176
expectCommonJs ( 'a.js' , `console.log('hello');` )
182
- . to . equal ( `goog.module('a');var module = module || {id: 'a'};console.log('hello');` ) ;
177
+ . to . equal ( `goog.module('a');var module = module || {id: 'a.js '};console.log('hello');` ) ;
183
178
} ) ;
184
179
185
180
it ( 'adds a goog.module call to empty files' , ( ) => {
186
- expectCommonJs ( 'a.js' , `` ) . to . equal ( `goog.module('a');var module = module || {id: 'a'};` ) ;
181
+ expectCommonJs ( 'a.js' , `` ) . to . equal ( `goog.module('a');var module = module || {id: 'a.js '};` ) ;
187
182
} ) ;
188
183
189
184
it ( 'adds a goog.module call to empty-looking files' , ( ) => {
190
185
expectCommonJs ( 'a.js' , `// empty` )
191
- . to . equal ( `goog.module('a');var module = module || {id: 'a'};// empty` ) ;
186
+ . to . equal ( `goog.module('a');var module = module || {id: 'a.js '};// empty` ) ;
192
187
} ) ;
193
188
194
189
it ( 'strips use strict directives' , ( ) => {
195
190
// NB: no line break added below.
196
191
expectCommonJs ( 'a.js' , `"use strict";
197
192
console.log('hello');` )
198
- . to . equal ( `goog.module('a');var module = module || {id: 'a'};
193
+ . to . equal ( `goog.module('a');var module = module || {id: 'a.js '};
199
194
console.log('hello');` ) ;
200
195
} ) ;
201
196
202
197
it ( 'converts require calls' , ( ) => {
203
198
expectCommonJs ( 'a.js' , `var r = require('req/mod');` )
204
199
. to . equal (
205
- `goog.module('a');var module = module || {id: 'a'};var r = goog.require('req$ mod');` ) ;
200
+ `goog.module('a');var module = module || {id: 'a.js '};var r = goog.require('req. mod');` ) ;
206
201
} ) ;
207
202
208
203
it ( 'converts require calls without assignments on first line' , ( ) => {
209
204
expectCommonJs ( 'a.js' , `require('req/mod');` )
210
205
. to . equal (
211
- `goog.module('a');var module = module || {id: 'a'};var unused_0_ = goog.require('req$ mod');` ) ;
206
+ `goog.module('a');var module = module || {id: 'a.js '};var unused_0_ = goog.require('req. mod');` ) ;
212
207
} ) ;
213
208
214
209
it ( 'converts require calls without assignments on a new line' , ( ) => {
215
210
expectCommonJs ( 'a.js' , `
216
211
require('req/mod');
217
212
require('other');` )
218
- . to . equal ( `goog.module('a');var module = module || {id: 'a'};
219
- var unused_0_ = goog.require('req$ mod');
213
+ . to . equal ( `goog.module('a');var module = module || {id: 'a.js '};
214
+ var unused_0_ = goog.require('req. mod');
220
215
var unused_1_ = goog.require('other');` ) ;
221
216
} ) ;
222
217
223
218
it ( 'converts require calls without assignments after comments' , ( ) => {
224
219
expectCommonJs ( 'a.js' , `
225
220
// Comment
226
221
require('req/mod');` )
227
- . to . equal ( `goog.module('a');var module = module || {id: 'a'};
222
+ . to . equal ( `goog.module('a');var module = module || {id: 'a.js '};
228
223
// Comment
229
- var unused_0_ = goog.require('req$ mod');` ) ;
224
+ var unused_0_ = goog.require('req. mod');` ) ;
230
225
} ) ;
231
226
232
227
it ( 'converts const require calls' , ( ) => {
233
228
expectCommonJs ( 'a.js' , `const r = require('req/mod');` )
234
229
. to . equal (
235
- `goog.module('a');var module = module || {id: 'a'};var r = goog.require('req$ mod');` ) ;
230
+ `goog.module('a');var module = module || {id: 'a.js '};var r = goog.require('req. mod');` ) ;
236
231
} ) ;
237
232
238
233
it ( 'converts export * statements' , ( ) => {
239
234
expectCommonJs ( 'a.js' , `__export(require('req/mod'));` )
240
235
. to . equal (
241
- `goog.module('a');var module = module || {id: 'a'};__export(goog.require('req$ mod'));` ) ;
236
+ `goog.module('a');var module = module || {id: 'a.js '};__export(goog.require('req. mod'));` ) ;
242
237
} ) ;
243
238
244
239
it ( 'resolves relative module URIs' , ( ) => {
245
240
// See below for more fine-grained unit tests.
246
241
expectCommonJs ( 'a/b.js' , `var r = require('./req/mod');` )
247
242
. to . equal (
248
- `goog.module('a$ b');var module = module || {id: 'a/b'};var r = goog.require('a$ req$ mod');` ) ;
243
+ `goog.module('a. b');var module = module || {id: 'a/b.js '};var r = goog.require('a. req. mod');` ) ;
249
244
} ) ;
250
245
251
246
it ( 'avoids mangling module names in goog: imports' , ( ) => {
252
247
expectCommonJs ( 'a/b.js' , `
253
248
var goog_use_Foo_1 = require('goog:foo_bar.baz');` )
254
- . to . equal ( `goog.module('a$ b');var module = module || {id: 'a/b'};
249
+ . to . equal ( `goog.module('a. b');var module = module || {id: 'a/b.js '};
255
250
var goog_use_Foo_1 = goog.require('foo_bar.baz');` ) ;
256
251
} ) ;
257
252
258
253
it ( 'resolves default goog: module imports' , ( ) => {
259
254
expectCommonJs ( 'a/b.js' , `
260
255
var goog_use_Foo_1 = require('goog:use.Foo');
261
256
console.log(goog_use_Foo_1.default);` )
262
- . to . equal ( `goog.module('a$ b');var module = module || {id: 'a/b'};
257
+ . to . equal ( `goog.module('a. b');var module = module || {id: 'a/b.js '};
263
258
var goog_use_Foo_1 = goog.require('use.Foo');
264
259
console.log(goog_use_Foo_1 );` ) ;
265
260
// NB: the whitespace above matches the .default part, so that
@@ -271,7 +266,7 @@ console.log(goog_use_Foo_1 );`);
271
266
expectCommonJs ( 'a/b.js' , `
272
267
console.log(this.default);
273
268
console.log(foo.bar.default);` )
274
- . to . equal ( `goog.module('a$ b');var module = module || {id: 'a/b'};
269
+ . to . equal ( `goog.module('a. b');var module = module || {id: 'a/b.js '};
275
270
console.log(this.default);
276
271
console.log(foo.bar.default);` ) ;
277
272
} ) ;
@@ -282,7 +277,7 @@ console.log(foo.bar.default);`);
282
277
*/
283
278
"use strict";
284
279
var foo = bar;
285
- ` ) . to . equal ( `goog.module('a$ b');var module = module || {id: 'a/b'};/**
280
+ ` ) . to . equal ( `goog.module('a. b');var module = module || {id: 'a/b.js '};/**
286
281
* docstring here
287
282
*/
288
283
@@ -294,7 +289,7 @@ var foo = bar;
294
289
expectCommonJs ( 'a/b.js' , `var foo_1 = require('goog:foo');
295
290
var foo_2 = require('goog:foo');
296
291
foo_1.A, foo_2.B, foo_2.default, foo_3.default;
297
- ` ) . to . equal ( `goog.module('a$ b');var module = module || {id: 'a/b'};var foo_1 = goog.require('foo');
292
+ ` ) . to . equal ( `goog.module('a. b');var module = module || {id: 'a/b.js '};var foo_1 = goog.require('foo');
298
293
var foo_2 = foo_1;
299
294
foo_1.A, foo_2.B, foo_2 , foo_3.default;
300
295
` ) ;
@@ -309,14 +304,14 @@ var es6RelativeRequire = require('./relative');
309
304
var es6NonRelativeRequire = require('non/relative');
310
305
__export(require('./export-star');
311
306
` ,
312
- pathToModuleName ) ;
307
+ cli_support . pathToModuleName ) ;
313
308
314
309
return expect ( referencedModules ) . to . deep . equal ( [
315
- 'foo$ bare-require' ,
310
+ 'foo. bare-require' ,
316
311
'foo.bar' ,
317
- 'a$ relative' ,
318
- 'non$ relative' ,
319
- 'a$ export-star' ,
312
+ 'a. relative' ,
313
+ 'non. relative' ,
314
+ 'a. export-star' ,
320
315
] ) ;
321
316
} ) ;
322
317
} ) ;
0 commit comments