Skip to content

Commit

Permalink
feat: add support for TypeScript 4.0
Browse files Browse the repository at this point in the history
With this change we refactor the code to support compilation using TS 4.0.

1) Refactor tests to not delete non optional properties
2) Refactor components not to override properties with accessors and vice-versa which is now not permitted. https://devblogs.microsoft.com/typescript/announcing-typescript-4-0-beta/#breaking-changes
3) update typescript to 4.0, tslint to 6.1.3 and angular packages to 10.1.0-next.8
4) add ts-compat integration test for TypeScript 3.9
  • Loading branch information
trik committed Nov 6, 2020
1 parent 59b6d90 commit 173aec1
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 75 deletions.
1 change: 1 addition & 0 deletions integration/ts-compat/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ write_file(
# List of TypeScript packages that we want to run the compatibility test against.
# The list contains NPM module names that resolve to the desired TypeScript version.
typescript_version_packages = [
"typescript-3.9",
"typescript",
]

Expand Down
35 changes: 18 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@
"version": "10.0.6",
"dependencies": {
"@ajf/icons": "^1.0.0",
"@angular/animations": "^10.0.8",
"@angular/cdk": "^10.1.2",
"@angular/common": "^10.0.8",
"@angular/compiler": "^10.0.8",
"@angular/core": "^10.0.8",
"@angular/elements": "^10.0.8",
"@angular/forms": "^10.0.8",
"@angular/material": "^10.1.2",
"@angular/platform-browser": "^10.0.8",
"@angular/animations": "^10.1.0-next.8",
"@angular/cdk": "^10.2.7",
"@angular/common": "^10.1.0-next.8",
"@angular/compiler": "^10.1.0-next.8",
"@angular/core": "^10.1.0-next.8",
"@angular/elements": "^10.1.0-next.8",
"@angular/forms": "^10.1.0-next.8",
"@angular/material": "^10.2.7",
"@angular/platform-browser": "^10.1.0-next.8",
"@gic/angular": "^5.2.0",
"@ionic/angular": "^5.2.2",
"@ngx-translate/core": "^13.0.0",
Expand All @@ -82,13 +82,13 @@
"@angular-devkit/build-optimizer": "^0.1000.5",
"@angular-devkit/core": "^10.0.5",
"@angular-devkit/schematics": "^10.0.5",
"@angular/bazel": "^10.0.8",
"@angular/bazel": "^10.1.0-next.8",
"@angular/benchpress": "^0.2.1",
"@angular/compiler-cli": "^10.0.8",
"@angular/compiler-cli": "^10.1.0-next.8",
"@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#d0855af987db4e426477da1780bcd02941c31271",
"@angular/platform-browser-dynamic": "^10.0.8",
"@angular/platform-server": "^10.0.8",
"@angular/router": "^10.0.8",
"@angular/platform-browser-dynamic": "^10.1.0-next.8",
"@angular/platform-server": "^10.1.0-next.8",
"@angular/router": "^10.1.0-next.8",
"@bazel/bazelisk": "^1.4.0",
"@bazel/buildifier": "^2.2.1",
"@bazel/ibazel": "^0.13.0",
Expand Down Expand Up @@ -193,15 +193,16 @@
"ts-api-guardian": "^0.5.0",
"ts-node": "^8.10.1",
"tsickle": "0.38.1",
"tslint": "^6.1.0",
"tslint": "^6.1.3",
"tsutils": "^3.17.1",
"typescript": "3.9.7",
"typescript": "4.0.2",
"typescript-3.9": "npm:typescript@~3.9.7",
"uglify-js": "^3.7.6",
"vrsource-tslint-rules": "5.1.1",
"yaml": "^1.10.0"
},
"resolutions": {
"dgeni-packages/typescript": "3.9.7",
"dgeni-packages/typescript": "4.0.2",
"**/graceful-fs": "4.2.2"
}
}
121 changes: 63 additions & 58 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,17 @@
ora "4.0.4"
rxjs "6.5.5"

"@angular/animations@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.0.8.tgz#f033a7043f41075fae128ea6e91bcdaec3a4df2f"
integrity sha512-vxJRNz6CbguuoLxZpKbaCRcJRFg+/UeXvrUjRlUxwJpAni5hFYkWZUjjXvHDszI97q8FkDNLpGDPcggGqPfo4w==
"@angular/animations@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.1.0-next.8.tgz#f78ff8ba0ffa67dc303d7b7271e2dc2487bc82f9"
integrity sha512-Pk9j4xauDrREnd1fE7Rmac/gsJiQGkPXj258U4BZI/UaqYQXXaD7QVNf/KSD1t1Pkma2cAztY9SYWt/HMVu1qA==
dependencies:
tslib "^2.0.0"

"@angular/bazel@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-10.0.8.tgz#5ec9100d639aae3f798a415a53bfc7be61149f8b"
integrity sha512-NwmyqNzgkqxta2pUKY+R5b6DEaffUhfrAknJ5Z9taOg8kugd8royVzF4N3BrecvMeNPEKQP4n3I3DJHjF4id+A==
"@angular/bazel@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-10.1.0-next.8.tgz#0cccc592c3ac7162dd1479e97374db88cf0aec43"
integrity sha512-atp6Nvi4JRT2XiM/J1BDdzF7ai4orbELfz14OypUB73SxdRyii9hWNy7g+BXQe6malQHJw/+zjJRGTlskKEw8A==
dependencies:
"@microsoft/api-extractor" "^7.7.13"
shelljs "0.8.2"
Expand All @@ -74,26 +74,26 @@
"@angular/core" "^10.0.0-0 || ^11.0.0"
reflect-metadata "^0.1.13"

"@angular/cdk@^10.1.2":
version "10.1.2"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-10.1.2.tgz#0c16ad767be4daaeb13d16652ba66bcfd79d5e1e"
integrity sha512-nK2+UppQvD8wz4Ur0MAa9mVKa1rZsJLYmJtZzQ0tRNFdgdhCQZe/PIYxvrR0uByoe5lYsjtKESjltb9PxZE08g==
"@angular/cdk@^10.2.7":
version "10.2.7"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-10.2.7.tgz#0ff82eb91b2653ea26909c57a460d4593b44f186"
integrity sha512-ZQjDfTRTn7JuAKsf3jiIdU2XBaxxGBi/ZWYv5Pb3HCl6B4PISsIE5VWRhkoUogoAB0MiFHpjnWeIqknJEm11YQ==
dependencies:
tslib "^2.0.0"
optionalDependencies:
parse5 "^5.0.0"

"@angular/common@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.0.8.tgz#591263b42f8d03f3730e927251dae175e0d60669"
integrity sha512-Nzk5ckQ8y/qvTmqRdzpwUQELYD9N6DJC5yPWQw+remlkUTw24KX4KMUnt9Iy/2eFQC65MhZoTwostuKpjffrlQ==
"@angular/common@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.1.0-next.8.tgz#04a05c9ca117057b49255844a86a9c4189cfe914"
integrity sha512-mEEEfaMUkLlA1qybTYal4wc9eGlhFsx3T+ckmN2tl8rouvVWL+nXP3EjCJJZAhNG31lqSULOW8dkpPk1+4sHuA==
dependencies:
tslib "^2.0.0"

"@angular/compiler-cli@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-10.0.8.tgz#94a45667d1b545c763a476c1e1ee32004a47ad01"
integrity sha512-G/hStouc8Zlzsjqka2k+FXP9KKgB5NmzBxMOzdQV+KixPev+AMHhLl+tnzx1iFwn4F5yf3bvLz363yX9k7LHWw==
"@angular/compiler-cli@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-10.1.0-next.8.tgz#c5cdd98de68f783f2a52d66e6cdfd73457a5c1b8"
integrity sha512-bj7SXxcMdqPYHm9MimZgdD0POpcBzF2pig5OwXODe/hX0BS2jYIkZFAtrmSOlOgEl/oQfTSSoT6RbOUQ+zHs9w==
dependencies:
canonical-path "1.0.0"
chokidar "^3.0.0"
Expand All @@ -109,10 +109,10 @@
tslib "^2.0.0"
yargs "15.3.0"

"@angular/compiler@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-10.0.8.tgz#87becc64f1a2ef100c369c182959a0562a759969"
integrity sha512-8zpxmDgDs45Q0rm1D3Gb4NP4CToizdOy7oBhDN7ijukRXAl19oE5vj1mHWvalbtgeC13kfdrdlQ8Ke2z61cd/g==
"@angular/compiler@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-10.1.0-next.8.tgz#bf0ce38ee77c2aa6ec7447c19a3253e18aa9a4e4"
integrity sha512-lvkt/H1s8/bmv9S/CtPQLtg7Pfz9hv21tfXlr9ionIaqta4TBqtlsvxMVj9ex+ZT2riuBUPIVC/OgOwxbWOLAA==
dependencies:
tslib "^2.0.0"

Expand All @@ -130,10 +130,10 @@
dependencies:
tslib "^2.0.0"

"@angular/core@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.0.8.tgz#dd8855e9faa3f2ba37268144d15402d346b1be57"
integrity sha512-52M1krR/TRZsV9WKPd+r7IPVT8c5Nh+Im1z3/ZY7rG0HmxXsV7YzuTuKV7oyHbWPg0WPJAwyH0+qxBK3kpvc8w==
"@angular/core@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.1.0-next.8.tgz#60619b3225d6275b37ef2be493ade7cb8e6f24a7"
integrity sha512-Ph8p+qky2IcSoZsDJQ78cMAHcy+UQl9f3+/03jyTZ0jXCqrlSIaRkptUibhj1R9RbIkp0FniO0D0mhZ0A34XIQ==
dependencies:
tslib "^2.0.0"

Expand Down Expand Up @@ -172,54 +172,54 @@
yaml "^1.7.2"
yargs "15.3.0"

"@angular/elements@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-10.0.8.tgz#78bbf2758b0311a4722989b1e07d7fd538d4c2c4"
integrity sha512-LTWqNCqBPzKiTDAgFJMhX5nViYf12ufW4eVyUatvgHa3QpV1TEsou6c+q46sw6y9RoV87aRV3H+DnpaSuuQx8w==
"@angular/elements@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-10.1.0-next.8.tgz#c38b36dcfdbe1ddcbf2b94064bd7783f712af7f7"
integrity sha512-YoewXHhJM70SYTCX4esoTes4h7kbgW6MMeo2vbjsKi8+SvDGY0YE+cfa32VBNtCMBX34DeahQcrzKkJq1aKyzQ==
dependencies:
tslib "^2.0.0"

"@angular/forms@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-10.0.8.tgz#e491010a78be6997d4ac228565de661f5505dc2f"
integrity sha512-7aEF0iO8pwcCtVgY0uNN7njVvdXWzXCTygd0SfqOTJRpCQwZ5IgICmUkpjlo8soTrOUC/8VRUstEKVltNzj9gA==
"@angular/forms@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-10.1.0-next.8.tgz#8eea74676df9faa68c59902cacfa9c6b8f944350"
integrity sha512-mQMKPmCzL9WyBjco84rz+l10ivIoA8/uXMciRiFBS/x25uz7tJEwe+o1y7A8dBGctXlssaS56bQ/Y2KjjmXpzQ==
dependencies:
tslib "^2.0.0"

"@angular/material@^10.1.2":
version "10.1.2"
resolved "https://registry.yarnpkg.com/@angular/material/-/material-10.1.2.tgz#92efd28099869d7a16acb9d7f49c3a3d396ddba9"
integrity sha512-iNSfkPdRfXPW+VJQ66qKQvmR5FCQY/ZP1Vz+bi+fYsdNrT/yYEA8UT9xcAMw5C14i4d86zpIk3hSC0hz+9vQtQ==
"@angular/material@^10.2.7":
version "10.2.7"
resolved "https://registry.yarnpkg.com/@angular/material/-/material-10.2.7.tgz#b84aeeca997dc64fbcc7969540e22434315bab68"
integrity sha512-uk6JkRrKHaM9VFMzX7pWC83YNLVgXPB3D8U1yjSOafCdWwrRZgUHGr8MPlSILCr3o2nxgg5SsKdWcWwHuXXUZA==
dependencies:
tslib "^2.0.0"

"@angular/platform-browser-dynamic@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.8.tgz#dd865d535a324a59a334a6f973bcd2d6333c2191"
integrity sha512-1hIourV0jF8188xwrweQnmP7QmcoRZu8D2wcy4EYyFU+i0mF6JXxJ97rfqVD3ueDr+Sd9VqXGZYFb0mO5G6MNg==
"@angular/platform-browser-dynamic@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.1.0-next.8.tgz#a269d1ed217524ef20fa910adfce5c5eaee48baf"
integrity sha512-vqEkAD2MUsvJKmbQ3CrtZgJVD1w02HrcLeq7qlWFtFNBcnAznhO0Pl5sbS2tW2BcaZ5eO2aDAB9EJDhVzfCfvg==
dependencies:
tslib "^2.0.0"

"@angular/platform-browser@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.0.8.tgz#9d9880f090664fc1908f42e4be0a899d435681c8"
integrity sha512-x6ZJz6K+YvsgZFTTD5Rv/uwJAGVWzCqvYUspq25MjvkYTFAEOc6kQ9cfsqS/dTqhPBDoTTjGu6qhIxgm4ovGjA==
"@angular/platform-browser@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.1.0-next.8.tgz#89d77f9dd53380eade7c8bd8538de23fc3fc695c"
integrity sha512-f62t953wxDLykXaJpgwwMD55l0JSwpIl2qC7lotpbpYJlIkIitsNkFqgUXhH0Lzu5dXJMBjM1DcKO+NYvQEVRg==
dependencies:
tslib "^2.0.0"

"@angular/platform-server@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-10.0.8.tgz#a2283f32576f1a6f88acf93a289ae0e44fa4f0e2"
integrity sha512-XJkEAvdiryFnGzwEq7yL6AQVAsNAsOP9QH4aPTBXpyBdYMJtN51KPzOsd+1cJgarf9UerMMdxzkxQiw1dfg+Lg==
"@angular/platform-server@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-10.1.0-next.8.tgz#381d4dce33c9004d118e877b9b01fcb4709eb141"
integrity sha512-29BoDP1R4KCjPbTo3GMtJOGfWBrRQWbdUSPJW8GuW2XxWBDbAaIpuRSQqsO++Ae4LFzjsIvkRc717VzIupbr5A==
dependencies:
domino "^2.1.2"
tslib "^2.0.0"
xhr2 "^0.2.0"

"@angular/router@^10.0.8":
version "10.0.8"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.0.8.tgz#8eec22a8c1050be4fb4003d177bee9e566df8aaf"
integrity sha512-Plub5gtfRv0Uk/e1Q66LVXRohzfMPqE9a4OqboFDjlWT5a94XSJaSHMgQHZ0esKoRidxijo3aRJOUSc/LAO9JQ==
"@angular/router@^10.1.0-next.8":
version "10.1.0-next.8"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.1.0-next.8.tgz#e7d2936dd86d08dae955c8702fbf913787a1c885"
integrity sha512-IdtMbW+o6wsMvlo5dLbs/hHmLejCevkMMtn4SqBUBWem1jIoN7Bm4xeKUHO9i+nUrEBCO0l4IIXeDJxC2nZSQA==
dependencies:
tslib "^2.0.0"

Expand Down Expand Up @@ -12401,7 +12401,7 @@ tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==

tslint@^6.1.0:
tslint@^6.1.3:
version "6.1.3"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904"
integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==
Expand Down Expand Up @@ -12528,11 +12528,16 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=

typescript@3.9.7, typescript@^3.2.2:
"typescript-3.9@npm:typescript@~3.9.7", typescript@^3.6.4:
version "3.9.7"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==

typescript@4.0.2, typescript@^3.2.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2"
integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==

typescript@^3.0.3, typescript@^3.4.5:
version "3.5.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
Expand Down

0 comments on commit 173aec1

Please sign in to comment.