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
}

tests/baselines/reference/commentsExternalModules2.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@ define(["require", "exports", "commentsExternalModules2_0"], function (require,
140140

141141
//// [commentsExternalModules2_0.d.ts]
142142
/** Module comment*/
143-
export declare module m1 {
143+
export declare namespace m1 {
144144
/** b's comment*/
145145
var b: number;
146146
/** m2 comments*/
147-
module m2 {
147+
namespace m2 {
148148
/** class comment;*/
149149
class c {
150150
}
@@ -155,12 +155,12 @@ export declare module m1 {
155155
function fooExport(): number;
156156
}
157157
/** Module comment */
158-
export declare module m4 {
158+
export declare namespace m4 {
159159
/** b's comment */
160160
var b: number;
161161
/** m2 comments
162162
*/
163-
module m2 {
163+
namespace m2 {
164164
/** class comment; */
165165
class c {
166166
}

tests/baselines/reference/commentsExternalModules3.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,11 @@ exports.newVar2 = new extMod.m4.m2.c();
138138

139139
//// [commentsExternalModules2_0.d.ts]
140140
/** Module comment*/
141-
export declare module m1 {
141+
export declare namespace m1 {
142142
/** b's comment*/
143143
var b: number;
144144
/** m2 comments*/
145-
module m2 {
145+
namespace m2 {
146146
/** class comment;*/
147147
class c {
148148
}
@@ -153,12 +153,12 @@ export declare module m1 {
153153
function fooExport(): number;
154154
}
155155
/** Module comment */
156-
export declare module m4 {
156+
export declare namespace m4 {
157157
/** b's comment */
158158
var b: number;
159159
/** m2 comments
160160
*/
161-
module m2 {
161+
namespace m2 {
162162
/** class comment; */
163163
class c {
164164
}

tests/baselines/reference/commentsFormatting.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ this is 4 spaces left aligned but above line is empty
188188

189189

190190
//// [commentsFormatting.d.ts]
191-
declare module m {
191+
declare namespace m {
192192
/** this is first line - aligned to class declaration
193193
* this is 4 spaces left aligned
194194
* this is 3 spaces left aligned

tests/baselines/reference/commentsModules.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -270,11 +270,11 @@ new m7.m8.m9.c();
270270

271271
//// [commentsModules.d.ts]
272272
/** Module comment*/
273-
declare module m1 {
273+
declare namespace m1 {
274274
/** b's comment*/
275275
var b: number;
276276
/** m2 comments*/
277-
module m2 {
277+
namespace m2 {
278278
/** class comment;*/
279279
class c {
280280
}
@@ -291,44 +291,44 @@ declare module m1 {
291291
}
292292
declare var myvar: m1.m2.c;
293293
/** module comment of m2.m3*/
294-
declare module m2.m3 {
294+
declare namespace m2.m3 {
295295
/** Exported class comment*/
296296
class c {
297297
}
298298
}
299299
/** module comment of m3.m4.m5*/
300-
declare module m3.m4.m5 {
300+
declare namespace m3.m4.m5 {
301301
/** Exported class comment*/
302302
class c {
303303
}
304304
}
305305
/** module comment of m4.m5.m6*/
306-
declare module m4.m5.m6 {
307-
module m7 {
306+
declare namespace m4.m5.m6 {
307+
namespace m7 {
308308
/** Exported class comment*/
309309
class c {
310310
}
311311
}
312312
}
313313
/** module comment of m5.m6.m7*/
314-
declare module m5.m6.m7 {
314+
declare namespace m5.m6.m7 {
315315
/** module m8 comment*/
316-
module m8 {
316+
namespace m8 {
317317
/** Exported class comment*/
318318
class c {
319319
}
320320
}
321321
}
322-
declare module m6.m7 {
323-
module m8 {
322+
declare namespace m6.m7 {
323+
namespace m8 {
324324
/** Exported class comment*/
325325
class c {
326326
}
327327
}
328328
}
329-
declare module m7.m8 {
329+
declare namespace m7.m8 {
330330
/** module m9 comment*/
331-
module m9 {
331+
namespace m9 {
332332
/** Exported class comment*/
333333
class c {
334334
}

tests/baselines/reference/commentsMultiModuleMultiFile.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ define(["require", "exports"], function (require, exports) {
100100

101101
//// [commentsMultiModuleMultiFile_0.d.ts]
102102
/** this is multi declare module*/
103-
export declare module multiM {
103+
export declare namespace multiM {
104104
class b {
105105
}
106106
}
107107
/** thi is multi module 2*/
108-
export declare module multiM {
108+
export declare namespace multiM {
109109
/** class c comment*/
110110
class c {
111111
}
@@ -114,7 +114,7 @@ export declare module multiM {
114114
}
115115
//// [commentsMultiModuleMultiFile_1.d.ts]
116116
/** this is multi module 3 comment*/
117-
export declare module multiM {
117+
export declare namespace multiM {
118118
/** class d comment*/
119119
class d {
120120
}

tests/baselines/reference/commentsMultiModuleSingleFile.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ new multiM.c();
6565

6666
//// [commentsMultiModuleSingleFile.d.ts]
6767
/** this is multi declare module*/
68-
declare module multiM {
68+
declare namespace multiM {
6969
/** class b*/
7070
class b {
7171
}
7272
class d {
7373
}
7474
}
75-
declare module multiM {
75+
declare namespace multiM {
7676
/** class c comment*/
7777
class c {
7878
}

tests/baselines/reference/commentsdoNotEmitComments.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,12 @@ interface i1 {
158158
prop: string;
159159
}
160160
declare var i1_i: i1;
161-
declare module m1 {
161+
declare namespace m1 {
162162
class b {
163163
x: number;
164164
constructor(x: number);
165165
}
166-
module m2 {
166+
namespace m2 {
167167
}
168168
}
169169
declare var x: any;

tests/baselines/reference/commentsemitComments.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,13 +186,13 @@ interface i1 {
186186
/**interface instance comments*/
187187
declare var i1_i: i1;
188188
/** this is module comment*/
189-
declare module m1 {
189+
declare namespace m1 {
190190
/** class b */
191191
class b {
192192
x: number;
193193
constructor(x: number);
194194
}
195-
module m2 {
195+
namespace m2 {
196196
}
197197
}
198198
declare var x: any;

tests/baselines/reference/constDeclarations2.js

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

1919

2020
//// [constDeclarations2.d.ts]
21-
declare module M {
21+
declare namespace M {
2222
const c1 = false;
2323
const c2: number;
2424
const c3 = 0, c4: string, c5: any;

tests/baselines/reference/declFileAliasUseBeforeDeclaration2.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ declare module "test" {
1414

1515
//// [declFileAliasUseBeforeDeclaration2.d.ts]
1616
declare module "test" {
17-
module A {
17+
namespace A {
1818
class C {
1919
}
2020
}

tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ exports.x = void 0;
2626

2727
//// [declFileAmbientExternalModuleWithSingleExportedModule_0.d.ts]
2828
declare module "SubModule" {
29-
module m {
30-
module m3 {
29+
namespace m {
30+
namespace m3 {
3131
interface c {
3232
}
3333
}

0 commit comments

Comments
 (0)