Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Print declare and export keywords for nested namespace #15249

Merged
merged 5 commits into from
Aug 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
16 changes: 16 additions & 0 deletions changelog_unreleased/typescript/15249.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#### Print `declare` and `export` keywords for nested namespace (#15249 by @sosukesuzuki)

<!-- prettier-ignore -->
```tsx
// Input
declare namespace abc1.def {}
export namespace abc2.def {}

// Prettier stable
namespace abc1.def {}
namespace abc2.def {}

// Prettier main
declare namespace abc1.def {}
export namespace abc2.def {}
```
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
"@iarna/toml": "2.2.5",
"@prettier/is-es5-identifier-name": "0.2.0",
"@prettier/parse-srcset": "3.1.0",
"@typescript-eslint/typescript-estree": "6.3.0",
"@typescript-eslint/visitor-keys": "6.3.0",
"@typescript-eslint/typescript-estree": "6.4.0",
"@typescript-eslint/visitor-keys": "6.4.0",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you upgrade @typescript-eslint/eslint-plugin too? So the dependencies doesn't get duplicated.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done 5cdb8a6

"acorn": "8.10.0",
"acorn-jsx": "5.3.2",
"angular-estree-parser": "7.0.0",
Expand Down Expand Up @@ -113,7 +113,7 @@
"@types/file-entry-cache": "5.0.2",
"@types/find-cache-dir": "3.2.1",
"@types/jest": "29.5.3",
"@typescript-eslint/eslint-plugin": "6.3.0",
"@typescript-eslint/eslint-plugin": "6.4.0",
"benchmark": "2.1.4",
"browserslist-to-esbuild": "1.2.0",
"c8": "8.0.1",
Expand Down
84 changes: 84 additions & 0 deletions tests/format/typescript/module/__snapshots__/jsfmt.spec.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,48 @@ namespace X {
================================================================================
`;

exports[`module_nested.ts format 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
| printWidth
=====================================input======================================
declare module abc1.def {}

export declare module abc2.def {}

export module abc3.def {}

module abc4.def {}

declare module abc5.def.ghi {}

export declare module abc2.def.ghi {}

export module abc3.def.ghi {}

module abc4.def.ghi {}

=====================================output=====================================
declare module abc1.def {}

export declare module abc2.def {}

export module abc3.def {}

module abc4.def {}

declare module abc5.def.ghi {}

export declare module abc2.def.ghi {}

export module abc3.def.ghi {}

module abc4.def.ghi {}

================================================================================
`;

exports[`namespace_function.ts format 1`] = `
====================================options=====================================
parsers: ["typescript"]
Expand All @@ -133,3 +175,45 @@ namespace X {

================================================================================
`;

exports[`namespace_nested.ts format 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
| printWidth
=====================================input======================================
declare namespace abc1.def {}

export declare namespace abc2.def {}

export namespace abc3.def {}

namespace abc4.def {}

declare namespace abc5.def.ghi {}

export declare namespace abc2.def.ghi {}

export namespace abc3.def.ghi {}

namespace abc4.def.ghi {}

=====================================output=====================================
declare namespace abc1.def {}

export declare namespace abc2.def {}

export namespace abc3.def {}

namespace abc4.def {}

declare namespace abc5.def.ghi {}

export declare namespace abc2.def.ghi {}

export namespace abc3.def.ghi {}

namespace abc4.def.ghi {}

================================================================================
`;
15 changes: 15 additions & 0 deletions tests/format/typescript/module/module_nested.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
declare module abc1.def {}

export declare module abc2.def {}

export module abc3.def {}

module abc4.def {}

declare module abc5.def.ghi {}

export declare module abc2.def.ghi {}

export module abc3.def.ghi {}

module abc4.def.ghi {}
15 changes: 15 additions & 0 deletions tests/format/typescript/module/namespace_nested.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
declare namespace abc1.def {}

export declare namespace abc2.def {}

export namespace abc3.def {}

namespace abc4.def {}

declare namespace abc5.def.ghi {}

export declare namespace abc2.def.ghi {}

export namespace abc3.def.ghi {}

namespace abc4.def.ghi {}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you also replace namespace with module keyword, and test them?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done 4c60892

98 changes: 45 additions & 53 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1800,20 +1800,19 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/eslint-plugin@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.3.0"
"@typescript-eslint/eslint-plugin@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.4.0"
dependencies:
"@eslint-community/regexpp": ^4.5.1
"@typescript-eslint/scope-manager": 6.3.0
"@typescript-eslint/type-utils": 6.3.0
"@typescript-eslint/utils": 6.3.0
"@typescript-eslint/visitor-keys": 6.3.0
"@typescript-eslint/scope-manager": 6.4.0
"@typescript-eslint/type-utils": 6.4.0
"@typescript-eslint/utils": 6.4.0
"@typescript-eslint/visitor-keys": 6.4.0
debug: ^4.3.4
graphemer: ^1.4.0
ignore: ^5.2.4
natural-compare: ^1.4.0
natural-compare-lite: ^1.4.0
semver: ^7.5.4
ts-api-utils: ^1.0.1
peerDependencies:
Expand All @@ -1822,7 +1821,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 1493c6c661993640eef56893a7919cb964165cb46653c62468e71ce02a5ec8c654dd7e9767587aea67ec16c026a5630011bc7ea6c04e2fa8a4afee7f26a51358
checksum: d59e88228a4088f3dcaa614103eefa7a0c57315ed79ee1c48afd9817ad013522aa9a9f987e90e1fd7dccc0bbb03ed23e4df6f5ea5cceef8856db33c78ea13d53
languageName: node
linkType: hard

Expand All @@ -1836,30 +1835,30 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/scope-manager@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/scope-manager@npm:6.3.0"
"@typescript-eslint/scope-manager@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/scope-manager@npm:6.4.0"
dependencies:
"@typescript-eslint/types": 6.3.0
"@typescript-eslint/visitor-keys": 6.3.0
checksum: 1690465f620f2b4517d45516864ef107258b2b608293d72606d0f115e11a8c1416b3d57e1b67f1daa1838f0239f71464aead57fe77c53ebd54b0aeee5fd4cf5e
"@typescript-eslint/types": 6.4.0
"@typescript-eslint/visitor-keys": 6.4.0
checksum: 19406eac3a1899f77eb7c3aa52577e2146075e1318c6eb34d220678afa167832b89c90860714f33b99e107544b48f6970594ca4bcf48c5ede8f2a14a0795ba33
languageName: node
linkType: hard

"@typescript-eslint/type-utils@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/type-utils@npm:6.3.0"
"@typescript-eslint/type-utils@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/type-utils@npm:6.4.0"
dependencies:
"@typescript-eslint/typescript-estree": 6.3.0
"@typescript-eslint/utils": 6.3.0
"@typescript-eslint/typescript-estree": 6.4.0
"@typescript-eslint/utils": 6.4.0
debug: ^4.3.4
ts-api-utils: ^1.0.1
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: cf2ab9d576bc9f3c0554318d20cb92671e4f46a07c24271fc47f144139b3843dab54592ee2e0962f81ad588f57a0b0a7c09d7e1047c720143a54bb1ec3ac4007
checksum: 7930d2ffdc844a5b706d48ae3e4584882f7f0c06d581a3b06bc280a351c55974b16dbb73f1842f7389f04b80c2cfaf867edd2f261b699804d8a4fea9c20b3869
languageName: node
linkType: hard

Expand All @@ -1870,10 +1869,10 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/types@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/types@npm:6.3.0"
checksum: 3c133e4c1b06d009739f1a4387831eb99758ba45b06b6f632fe9cf14c2839fc92dcbdbb6d94ca42c1cb5ab4ca1b31a5ead50a72e0a084b62e4de15255c451160
"@typescript-eslint/types@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/types@npm:6.4.0"
checksum: 85b293ad1559dbf8103b2c4cfd0db11c3d9c970d502e2c13d4b1d35e420567042d7077a716d2b4e5113286314d5260f378f242a6dd22ad4b94b4aa69c5f79223
languageName: node
linkType: hard

Expand All @@ -1895,12 +1894,12 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/typescript-estree@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/typescript-estree@npm:6.3.0"
"@typescript-eslint/typescript-estree@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/typescript-estree@npm:6.4.0"
dependencies:
"@typescript-eslint/types": 6.3.0
"@typescript-eslint/visitor-keys": 6.3.0
"@typescript-eslint/types": 6.4.0
"@typescript-eslint/visitor-keys": 6.4.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
Expand All @@ -1909,24 +1908,24 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: b2bb03411a5d079a9fd3310eec0af3b81a99827569cb3957724071aa54ac6c88449fbd1ebb72d7a356d5994d7e9542b5292a385ca3c3b0bc8049bb61a40a8ae9
checksum: a8db3896550515d0adf140ee115527b409916c4a14ac1f45b5623d130a27ae2d08a1ac906ceda440b01167c88846e2b91ca2025f3d718bff389948f66990c1e7
languageName: node
linkType: hard

"@typescript-eslint/utils@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/utils@npm:6.3.0"
"@typescript-eslint/utils@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/utils@npm:6.4.0"
dependencies:
"@eslint-community/eslint-utils": ^4.4.0
"@types/json-schema": ^7.0.12
"@types/semver": ^7.5.0
"@typescript-eslint/scope-manager": 6.3.0
"@typescript-eslint/types": 6.3.0
"@typescript-eslint/typescript-estree": 6.3.0
"@typescript-eslint/scope-manager": 6.4.0
"@typescript-eslint/types": 6.4.0
"@typescript-eslint/typescript-estree": 6.4.0
semver: ^7.5.4
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
checksum: 98a078a3948e8b6a45dec8f3be9bcb72dc98faa2fe84336b1925efb7caa06c05a2fbf7290cddb420465b415cc05252548e2b839b9311f99bce84cf856fd32888
checksum: abc55382c601c7ed298076548d2df78f15b07ed6830086db6ce1b82d461f0a190ee103a804690ac9205cdca9f373a864e1dd3e20012e9d103f3137963e0aa5ea
languageName: node
linkType: hard

Expand Down Expand Up @@ -1958,13 +1957,13 @@ __metadata:
languageName: node
linkType: hard

"@typescript-eslint/visitor-keys@npm:6.3.0":
version: 6.3.0
resolution: "@typescript-eslint/visitor-keys@npm:6.3.0"
"@typescript-eslint/visitor-keys@npm:6.4.0":
version: 6.4.0
resolution: "@typescript-eslint/visitor-keys@npm:6.4.0"
dependencies:
"@typescript-eslint/types": 6.3.0
"@typescript-eslint/types": 6.4.0
eslint-visitor-keys: ^3.4.1
checksum: fc3148c3284de3f42724736f312a4fd0c3c2029617ae2ea9a84cf6601d31f600ee6563f9288de162028ffffde85b58d92feaafbe75a2da863ff2c4e3a0b5ed8c
checksum: 42eb614b9c0a49b6929e093757d772fd27fe5dda9c75f4c7820d1710012c8257eea9bd4f1c4173e2265a8a9ad86cefc1a21869893e7304f3b29b94fa1f987554
languageName: node
linkType: hard

Expand Down Expand Up @@ -6269,13 +6268,6 @@ __metadata:
languageName: node
linkType: hard

"natural-compare-lite@npm:^1.4.0":
version: 1.4.0
resolution: "natural-compare-lite@npm:1.4.0"
checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225
languageName: node
linkType: hard

"natural-compare@npm:^1.4.0":
version: 1.4.0
resolution: "natural-compare@npm:1.4.0"
Expand Down Expand Up @@ -7018,9 +7010,9 @@ __metadata:
"@types/file-entry-cache": 5.0.2
"@types/find-cache-dir": 3.2.1
"@types/jest": 29.5.3
"@typescript-eslint/eslint-plugin": 6.3.0
"@typescript-eslint/typescript-estree": 6.3.0
"@typescript-eslint/visitor-keys": 6.3.0
"@typescript-eslint/eslint-plugin": 6.4.0
"@typescript-eslint/typescript-estree": 6.4.0
"@typescript-eslint/visitor-keys": 6.4.0
acorn: 8.10.0
acorn-jsx: 5.3.2
angular-estree-parser: 7.0.0
Expand Down