mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-03-15 14:05:47 -05:00
Add support for UMD-like module export format
The new module format enables global-less universal modules, compatible with both AMD and CJS module loaders. Fixes #2036.
This commit is contained in:
32
tests/baselines/reference/es5-umd.js
Normal file
32
tests/baselines/reference/es5-umd.js
Normal file
@@ -0,0 +1,32 @@
|
||||
//// [es5-umd.ts]
|
||||
|
||||
class A
|
||||
{
|
||||
constructor ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public B()
|
||||
{
|
||||
return 42;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//// [es5-umd.js]
|
||||
var A = (function () {
|
||||
function A() {
|
||||
}
|
||||
A.prototype.B = function () {
|
||||
return 42;
|
||||
};
|
||||
return A;
|
||||
})();
|
||||
//# sourceMappingURL=es5-umd.js.map
|
||||
|
||||
//// [es5-umd.d.ts]
|
||||
declare class A {
|
||||
constructor();
|
||||
B(): number;
|
||||
}
|
||||
2
tests/baselines/reference/es5-umd.js.map
Normal file
2
tests/baselines/reference/es5-umd.js.map
Normal file
@@ -0,0 +1,2 @@
|
||||
//// [es5-umd.js.map]
|
||||
{"version":3,"file":"es5-umd.js","sourceRoot":"","sources":["es5-umd.ts"],"names":["A","A.constructor","A.B"],"mappings":"AACA;IAEIA;IAGAC,CAACA;IAEMD,aAACA,GAARA;QAEIE,MAAMA,CAACA,EAAEA,CAACA;IACdA,CAACA;IACLF,QAACA;AAADA,CAACA,AAXD,IAWC"}
|
||||
115
tests/baselines/reference/es5-umd.sourcemap.txt
Normal file
115
tests/baselines/reference/es5-umd.sourcemap.txt
Normal file
@@ -0,0 +1,115 @@
|
||||
===================================================================
|
||||
JsFile: es5-umd.js
|
||||
mapUrl: es5-umd.js.map
|
||||
sourceRoot:
|
||||
sources: es5-umd.ts
|
||||
===================================================================
|
||||
-------------------------------------------------------------------
|
||||
emittedFile:tests/cases/compiler/es5-umd.js
|
||||
sourceFile:es5-umd.ts
|
||||
-------------------------------------------------------------------
|
||||
>>>var A = (function () {
|
||||
1 >
|
||||
2 >^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
>
|
||||
1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
|
||||
---
|
||||
>>> function A() {
|
||||
1->^^^^
|
||||
2 > ^^->
|
||||
1->class A
|
||||
>{
|
||||
>
|
||||
1->Emitted(2, 5) Source(4, 5) + SourceIndex(0) name (A)
|
||||
---
|
||||
>>> }
|
||||
1->^^^^
|
||||
2 > ^
|
||||
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1->constructor ()
|
||||
> {
|
||||
>
|
||||
>
|
||||
2 > }
|
||||
1->Emitted(3, 5) Source(7, 5) + SourceIndex(0) name (A.constructor)
|
||||
2 >Emitted(3, 6) Source(7, 6) + SourceIndex(0) name (A.constructor)
|
||||
---
|
||||
>>> A.prototype.B = function () {
|
||||
1->^^^^
|
||||
2 > ^^^^^^^^^^^^^
|
||||
3 > ^^^
|
||||
1->
|
||||
>
|
||||
> public
|
||||
2 > B
|
||||
3 >
|
||||
1->Emitted(4, 5) Source(9, 12) + SourceIndex(0) name (A)
|
||||
2 >Emitted(4, 18) Source(9, 13) + SourceIndex(0) name (A)
|
||||
3 >Emitted(4, 21) Source(9, 5) + SourceIndex(0) name (A)
|
||||
---
|
||||
>>> return 42;
|
||||
1 >^^^^^^^^
|
||||
2 > ^^^^^^
|
||||
3 > ^
|
||||
4 > ^^
|
||||
5 > ^
|
||||
1 >public B()
|
||||
> {
|
||||
>
|
||||
2 > return
|
||||
3 >
|
||||
4 > 42
|
||||
5 > ;
|
||||
1 >Emitted(5, 9) Source(11, 9) + SourceIndex(0) name (A.B)
|
||||
2 >Emitted(5, 15) Source(11, 15) + SourceIndex(0) name (A.B)
|
||||
3 >Emitted(5, 16) Source(11, 16) + SourceIndex(0) name (A.B)
|
||||
4 >Emitted(5, 18) Source(11, 18) + SourceIndex(0) name (A.B)
|
||||
5 >Emitted(5, 19) Source(11, 19) + SourceIndex(0) name (A.B)
|
||||
---
|
||||
>>> };
|
||||
1 >^^^^
|
||||
2 > ^
|
||||
3 > ^^^^^^^^^->
|
||||
1 >
|
||||
>
|
||||
2 > }
|
||||
1 >Emitted(6, 5) Source(12, 5) + SourceIndex(0) name (A.B)
|
||||
2 >Emitted(6, 6) Source(12, 6) + SourceIndex(0) name (A.B)
|
||||
---
|
||||
>>> return A;
|
||||
1->^^^^
|
||||
2 > ^^^^^^^^
|
||||
1->
|
||||
>
|
||||
2 > }
|
||||
1->Emitted(7, 5) Source(13, 1) + SourceIndex(0) name (A)
|
||||
2 >Emitted(7, 13) Source(13, 2) + SourceIndex(0) name (A)
|
||||
---
|
||||
>>>})();
|
||||
1 >
|
||||
2 >^
|
||||
3 >
|
||||
4 > ^^^^
|
||||
5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
2 >}
|
||||
3 >
|
||||
4 > class A
|
||||
> {
|
||||
> constructor ()
|
||||
> {
|
||||
>
|
||||
> }
|
||||
>
|
||||
> public B()
|
||||
> {
|
||||
> return 42;
|
||||
> }
|
||||
> }
|
||||
1 >Emitted(8, 1) Source(13, 1) + SourceIndex(0) name (A)
|
||||
2 >Emitted(8, 2) Source(13, 2) + SourceIndex(0) name (A)
|
||||
3 >Emitted(8, 2) Source(2, 1) + SourceIndex(0)
|
||||
4 >Emitted(8, 6) Source(13, 2) + SourceIndex(0)
|
||||
---
|
||||
>>>//# sourceMappingURL=es5-umd.js.map
|
||||
17
tests/baselines/reference/es5-umd.symbols
Normal file
17
tests/baselines/reference/es5-umd.symbols
Normal file
@@ -0,0 +1,17 @@
|
||||
=== tests/cases/compiler/es5-umd.ts ===
|
||||
|
||||
class A
|
||||
>A : Symbol(A, Decl(es5-umd.ts, 0, 0))
|
||||
{
|
||||
constructor ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public B()
|
||||
>B : Symbol(B, Decl(es5-umd.ts, 6, 5))
|
||||
{
|
||||
return 42;
|
||||
}
|
||||
}
|
||||
|
||||
18
tests/baselines/reference/es5-umd.types
Normal file
18
tests/baselines/reference/es5-umd.types
Normal file
@@ -0,0 +1,18 @@
|
||||
=== tests/cases/compiler/es5-umd.ts ===
|
||||
|
||||
class A
|
||||
>A : A
|
||||
{
|
||||
constructor ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public B()
|
||||
>B : () => number
|
||||
{
|
||||
return 42;
|
||||
>42 : number
|
||||
}
|
||||
}
|
||||
|
||||
11
tests/baselines/reference/umdDependencyComment2.errors.txt
Normal file
11
tests/baselines/reference/umdDependencyComment2.errors.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
tests/cases/compiler/umdDependencyComment2.ts(3,21): error TS2307: Cannot find external module 'm2'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/umdDependencyComment2.ts (1 errors) ====
|
||||
///<amd-dependency path='bar'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find external module 'm2'.
|
||||
m1.f();
|
||||
|
||||
20
tests/baselines/reference/umdDependencyComment2.js
Normal file
20
tests/baselines/reference/umdDependencyComment2.js
Normal file
@@ -0,0 +1,20 @@
|
||||
//// [umdDependencyComment2.ts]
|
||||
///<amd-dependency path='bar'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
m1.f();
|
||||
|
||||
|
||||
//// [umdDependencyComment2.js]
|
||||
///<amd-dependency path='bar'/>
|
||||
(function (deps, factory) {
|
||||
if (typeof module === 'object' && typeof module.exports === 'object') {
|
||||
var v = factory(require, exports); if (v !== undefined) module.exports = v;
|
||||
}
|
||||
else if (typeof define === 'function' && define.amd) {
|
||||
define(deps, factory);
|
||||
}
|
||||
})(["require", "exports", "bar", "m2"], function (require, exports) {
|
||||
var m1 = require("m2");
|
||||
m1.f();
|
||||
});
|
||||
@@ -0,0 +1,11 @@
|
||||
tests/cases/compiler/umdDependencyCommentName1.ts(3,21): error TS2307: Cannot find external module 'm2'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/umdDependencyCommentName1.ts (1 errors) ====
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find external module 'm2'.
|
||||
m1.f();
|
||||
|
||||
20
tests/baselines/reference/umdDependencyCommentName1.js
Normal file
20
tests/baselines/reference/umdDependencyCommentName1.js
Normal file
@@ -0,0 +1,20 @@
|
||||
//// [umdDependencyCommentName1.ts]
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
m1.f();
|
||||
|
||||
|
||||
//// [umdDependencyCommentName1.js]
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
(function (deps, factory) {
|
||||
if (typeof module === 'object' && typeof module.exports === 'object') {
|
||||
var v = factory(require, exports); if (v !== undefined) module.exports = v;
|
||||
}
|
||||
else if (typeof define === 'function' && define.amd) {
|
||||
define(deps, factory);
|
||||
}
|
||||
})(["require", "exports", "bar", "m2"], function (require, exports, b) {
|
||||
var m1 = require("m2");
|
||||
m1.f();
|
||||
});
|
||||
@@ -0,0 +1,13 @@
|
||||
tests/cases/compiler/umdDependencyCommentName2.ts(5,21): error TS2307: Cannot find external module 'm2'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/umdDependencyCommentName2.ts (1 errors) ====
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
///<amd-dependency path='foo'/>
|
||||
///<amd-dependency path='goo' name='c'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
~~~~
|
||||
!!! error TS2307: Cannot find external module 'm2'.
|
||||
m1.f();
|
||||
|
||||
24
tests/baselines/reference/umdDependencyCommentName2.js
Normal file
24
tests/baselines/reference/umdDependencyCommentName2.js
Normal file
@@ -0,0 +1,24 @@
|
||||
//// [umdDependencyCommentName2.ts]
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
///<amd-dependency path='foo'/>
|
||||
///<amd-dependency path='goo' name='c'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
m1.f();
|
||||
|
||||
|
||||
//// [umdDependencyCommentName2.js]
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
///<amd-dependency path='foo'/>
|
||||
///<amd-dependency path='goo' name='c'/>
|
||||
(function (deps, factory) {
|
||||
if (typeof module === 'object' && typeof module.exports === 'object') {
|
||||
var v = factory(require, exports); if (v !== undefined) module.exports = v;
|
||||
}
|
||||
else if (typeof define === 'function' && define.amd) {
|
||||
define(deps, factory);
|
||||
}
|
||||
})(["require", "exports", "bar", "goo", "foo", "m2"], function (require, exports, b, c) {
|
||||
var m1 = require("m2");
|
||||
m1.f();
|
||||
});
|
||||
17
tests/cases/compiler/es5-umd.ts
Normal file
17
tests/cases/compiler/es5-umd.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
// @target: ES5
|
||||
// @sourcemap: false
|
||||
// @declaration: false
|
||||
// @module: umd
|
||||
|
||||
class A
|
||||
{
|
||||
constructor ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public B()
|
||||
{
|
||||
return 42;
|
||||
}
|
||||
}
|
||||
5
tests/cases/compiler/umdDependencyComment2.ts
Normal file
5
tests/cases/compiler/umdDependencyComment2.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
//@module: umd
|
||||
///<amd-dependency path='bar'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
m1.f();
|
||||
5
tests/cases/compiler/umdDependencyCommentName1.ts
Normal file
5
tests/cases/compiler/umdDependencyCommentName1.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
//@module: umd
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
m1.f();
|
||||
7
tests/cases/compiler/umdDependencyCommentName2.ts
Normal file
7
tests/cases/compiler/umdDependencyCommentName2.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
//@module: umd
|
||||
///<amd-dependency path='bar' name='b'/>
|
||||
///<amd-dependency path='foo'/>
|
||||
///<amd-dependency path='goo' name='c'/>
|
||||
|
||||
import m1 = require("m2")
|
||||
m1.f();
|
||||
Reference in New Issue
Block a user