Skip to content

Commit 3c8ce2a

Browse files
Merge pull request #77 from bloomberg/deprecate-namespaces-declared-with-module-keyword
Transform namespaces declared with module keyword to namespace keyword in d.ts files
2 parents eb014a2 + 98210e8 commit 3c8ce2a

File tree

176 files changed

+535
-518
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+535
-518
lines changed

src/compiler/factory/nodeFactory.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ import {
146146
InterfaceDeclaration,
147147
InternalEmitFlags,
148148
IntersectionTypeNode,
149+
isAmbientModule,
149150
isArray,
150151
isArrayLiteralExpression,
151152
isArrowFunction,
@@ -765,6 +766,7 @@ export function createNodeFactory(flags: NodeFactoryFlags, baseFactory: BaseNode
765766
updateEnumDeclaration,
766767
createModuleDeclaration,
767768
updateModuleDeclaration,
769+
updateModuleDeclarationAndKeyword,
768770
createModuleBlock,
769771
updateModuleBlock,
770772
createCaseBlock,
@@ -4476,6 +4478,20 @@ export function createNodeFactory(flags: NodeFactoryFlags, baseFactory: BaseNode
44764478
: node;
44774479
}
44784480

4481+
// @api
4482+
function updateModuleDeclarationAndKeyword(
4483+
node: ModuleDeclaration,
4484+
modifiers: readonly ModifierLike[] | undefined,
4485+
name: ModuleName,
4486+
body: ModuleBody | undefined
4487+
) {
4488+
if (isAmbientModule(node)) {
4489+
return updateModuleDeclaration(node, modifiers, name, body);
4490+
}
4491+
4492+
return update(createModuleDeclaration(modifiers, name, body, node.flags | NodeFlags.Namespace), node);
4493+
}
4494+
44794495
// @api
44804496
function createModuleBlock(statements: readonly Statement[]) {
44814497
const node = createBaseNode<ModuleBlock>(SyntaxKind.ModuleBlock);

src/compiler/transformers/declarations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1595,7 +1595,7 @@ export function transformDeclarations(context: TransformationContext) {
15951595
needsScopeFixMarker = oldNeedsScopeFix;
15961596
resultHasScopeMarker = oldHasScopeFix;
15971597
const mods = ensureModifiers(input);
1598-
return cleanup(factory.updateModuleDeclaration(
1598+
return cleanup(factory.updateModuleDeclarationAndKeyword(
15991599
input,
16001600
mods,
16011601
isExternalModuleAugmentation(input) ? rewriteModuleSpecifier(input, input.name) : input.name,
@@ -1611,7 +1611,7 @@ export function transformDeclarations(context: TransformationContext) {
16111611
const id = getOriginalNodeId(inner!); // TODO: GH#18217
16121612
const body = lateStatementReplacementMap.get(id);
16131613
lateStatementReplacementMap.delete(id);
1614-
return cleanup(factory.updateModuleDeclaration(
1614+
return cleanup(factory.updateModuleDeclarationAndKeyword(
16151615
input,
16161616
mods,
16171617
input.name,

src/compiler/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8587,6 +8587,7 @@ export interface NodeFactory {
85878587
updateEnumDeclaration(node: EnumDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration;
85888588
createModuleDeclaration(modifiers: readonly ModifierLike[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration;
85898589
updateModuleDeclaration(node: ModuleDeclaration, modifiers: readonly ModifierLike[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration;
8590+
/** @internal */ updateModuleDeclarationAndKeyword(node: ModuleDeclaration, modifiers: readonly ModifierLike[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration;
85908591
createModuleBlock(statements: readonly Statement[]): ModuleBlock;
85918592
updateModuleBlock(node: ModuleBlock, statements: readonly Statement[]): ModuleBlock;
85928593
createCaseBlock(clauses: readonly CaseOrDefaultClause[]): CaseBlock;

tests/baselines/reference/aliasInaccessibleModule.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ var M;
1212

1313

1414
//// [aliasInaccessibleModule.d.ts]
15-
declare module M {
16-
module N {
15+
declare namespace M {
16+
namespace N {
1717
}
1818
export import X = N;
1919
export {};

tests/baselines/reference/aliasInaccessibleModule2.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ var M;
2626

2727

2828
//// [aliasInaccessibleModule2.d.ts]
29-
declare module M {
30-
module N {
29+
declare namespace M {
30+
namespace N {
3131
}
3232
import R = N;
3333
export import X = R;

tests/baselines/reference/classConstructorAccessibility.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,5 @@ declare class E {
9898
declare var c: C;
9999
declare var d: any;
100100
declare var e: any;
101-
declare module Generic {
101+
declare namespace Generic {
102102
}

tests/baselines/reference/classDoesNotDependOnPrivateMember.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var M;
1919

2020

2121
//// [classDoesNotDependOnPrivateMember.d.ts]
22-
declare module M {
22+
declare namespace M {
2323
class C {
2424
private x;
2525
}

tests/baselines/reference/classdecl.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,14 +233,14 @@ declare class a {
233233
}
234234
declare class b extends a {
235235
}
236-
declare module m1 {
236+
declare namespace m1 {
237237
class b {
238238
}
239239
interface ib {
240240
}
241241
}
242-
declare module m2 {
243-
module m3 {
242+
declare namespace m2 {
243+
namespace m3 {
244244
class c extends b {
245245
}
246246
class ib2 implements m1.ib {

tests/baselines/reference/commentsDottedModuleName.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ define(["require", "exports"], function (require, exports) {
3030

3131
//// [commentsDottedModuleName.d.ts]
3232
/** this is multi declare module*/
33-
export declare module outerModule.InnerModule {
33+
export declare namespace outerModule.InnerModule {
3434
class b {
3535
}
3636
}

tests/baselines/reference/commentsExternalModules.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,11 @@ define(["require", "exports", "commentsExternalModules_0"], function (require, e
139139

140140
//// [commentsExternalModules_0.d.ts]
141141
/** Module comment*/
142-
export declare module m1 {
142+
export declare namespace m1 {
143143
/** b's comment*/
144144
var b: number;
145145
/** m2 comments*/
146-
module m2 {
146+
namespace m2 {
147147
/** class comment;*/
148148
class c {
149149
}
@@ -154,12 +154,12 @@ export declare module m1 {
154154
function fooExport(): number;
155155
}
156156
/** Module comment */
157-
export declare module m4 {
157+
export declare namespace m4 {
158158
/** b's comment */
159159
var b: number;
160160
/** m2 comments
161161
*/
162-
module m2 {
162+
namespace m2 {
163163
/** class comment; */
164164
class c {
165165
}

0 commit comments

Comments
 (0)