mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-29 19:42:39 -05:00
Handle ts-only declaration export aliases in system transformer (#22919)
* handle ts declarations export alises in system transformer * Retain end of declaration marker
This commit is contained in:
@@ -913,6 +913,12 @@ namespace ts {
|
||||
delete deferredExports[id];
|
||||
return append(statements, node);
|
||||
}
|
||||
else {
|
||||
const original = getOriginalNode(node);
|
||||
if (isModuleOrEnumDeclaration(original)) {
|
||||
return append(appendExportsOfDeclaration(statements, original), node);
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
34
tests/baselines/reference/systemNamespaceAliasEmit.js
Normal file
34
tests/baselines/reference/systemNamespaceAliasEmit.js
Normal file
@@ -0,0 +1,34 @@
|
||||
//// [systemNamespaceAliasEmit.ts]
|
||||
namespace ns {
|
||||
const value = 1;
|
||||
}
|
||||
|
||||
enum AnEnum {
|
||||
ONE,
|
||||
TWO
|
||||
}
|
||||
|
||||
export {ns, AnEnum, ns as FooBar, AnEnum as BarEnum};
|
||||
|
||||
//// [systemNamespaceAliasEmit.js]
|
||||
System.register([], function (exports_1, context_1) {
|
||||
"use strict";
|
||||
var __moduleName = context_1 && context_1.id;
|
||||
var ns, AnEnum;
|
||||
return {
|
||||
setters: [],
|
||||
execute: function () {
|
||||
(function (ns) {
|
||||
var value = 1;
|
||||
})(ns || (ns = {}));
|
||||
exports_1("ns", ns);
|
||||
exports_1("FooBar", ns);
|
||||
(function (AnEnum) {
|
||||
AnEnum[AnEnum["ONE"] = 0] = "ONE";
|
||||
AnEnum[AnEnum["TWO"] = 1] = "TWO";
|
||||
})(AnEnum || (AnEnum = {}));
|
||||
exports_1("AnEnum", AnEnum);
|
||||
exports_1("BarEnum", AnEnum);
|
||||
}
|
||||
};
|
||||
});
|
||||
26
tests/baselines/reference/systemNamespaceAliasEmit.symbols
Normal file
26
tests/baselines/reference/systemNamespaceAliasEmit.symbols
Normal file
@@ -0,0 +1,26 @@
|
||||
=== tests/cases/compiler/systemNamespaceAliasEmit.ts ===
|
||||
namespace ns {
|
||||
>ns : Symbol(ns, Decl(systemNamespaceAliasEmit.ts, 0, 0))
|
||||
|
||||
const value = 1;
|
||||
>value : Symbol(value, Decl(systemNamespaceAliasEmit.ts, 1, 9))
|
||||
}
|
||||
|
||||
enum AnEnum {
|
||||
>AnEnum : Symbol(AnEnum, Decl(systemNamespaceAliasEmit.ts, 2, 1))
|
||||
|
||||
ONE,
|
||||
>ONE : Symbol(BarEnum.ONE, Decl(systemNamespaceAliasEmit.ts, 4, 13))
|
||||
|
||||
TWO
|
||||
>TWO : Symbol(BarEnum.TWO, Decl(systemNamespaceAliasEmit.ts, 5, 8))
|
||||
}
|
||||
|
||||
export {ns, AnEnum, ns as FooBar, AnEnum as BarEnum};
|
||||
>ns : Symbol(ns, Decl(systemNamespaceAliasEmit.ts, 9, 8))
|
||||
>AnEnum : Symbol(AnEnum, Decl(systemNamespaceAliasEmit.ts, 9, 11))
|
||||
>ns : Symbol(FooBar, Decl(systemNamespaceAliasEmit.ts, 9, 19))
|
||||
>FooBar : Symbol(FooBar, Decl(systemNamespaceAliasEmit.ts, 9, 19))
|
||||
>AnEnum : Symbol(BarEnum, Decl(systemNamespaceAliasEmit.ts, 9, 33))
|
||||
>BarEnum : Symbol(BarEnum, Decl(systemNamespaceAliasEmit.ts, 9, 33))
|
||||
|
||||
27
tests/baselines/reference/systemNamespaceAliasEmit.types
Normal file
27
tests/baselines/reference/systemNamespaceAliasEmit.types
Normal file
@@ -0,0 +1,27 @@
|
||||
=== tests/cases/compiler/systemNamespaceAliasEmit.ts ===
|
||||
namespace ns {
|
||||
>ns : typeof ns
|
||||
|
||||
const value = 1;
|
||||
>value : 1
|
||||
>1 : 1
|
||||
}
|
||||
|
||||
enum AnEnum {
|
||||
>AnEnum : AnEnum
|
||||
|
||||
ONE,
|
||||
>ONE : AnEnum.ONE
|
||||
|
||||
TWO
|
||||
>TWO : AnEnum.TWO
|
||||
}
|
||||
|
||||
export {ns, AnEnum, ns as FooBar, AnEnum as BarEnum};
|
||||
>ns : typeof ns
|
||||
>AnEnum : typeof AnEnum
|
||||
>ns : typeof ns
|
||||
>FooBar : typeof ns
|
||||
>AnEnum : typeof AnEnum
|
||||
>BarEnum : typeof AnEnum
|
||||
|
||||
11
tests/cases/compiler/systemNamespaceAliasEmit.ts
Normal file
11
tests/cases/compiler/systemNamespaceAliasEmit.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
// @module: system
|
||||
namespace ns {
|
||||
const value = 1;
|
||||
}
|
||||
|
||||
enum AnEnum {
|
||||
ONE,
|
||||
TWO
|
||||
}
|
||||
|
||||
export {ns, AnEnum, ns as FooBar, AnEnum as BarEnum};
|
||||
Reference in New Issue
Block a user