Skip to content

Commit 57aadc2

Browse files
mmalerbajelbourn
authored andcommitted
chore: add yarn format command and pre-commit hook to ensure code is formatted (angular#15132)
1 parent d69bc45 commit 57aadc2

File tree

4 files changed

+145
-3
lines changed

4 files changed

+145
-3
lines changed

.clang-format

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ ColumnLimit: 100
44

55
TabWidth: 2
66
ContinuationIndentWidth: 4
7-
MaxEmptyLinesToKeep : 2
7+
MaxEmptyLinesToKeep: 2
88

99
AllowShortBlocksOnASingleLine: false
1010
AllowShortIfStatementsOnASingleLine: false
1111
AllowShortLoopsOnASingleLine: false
1212
AllowShortFunctionsOnASingleLine: Empty
13+
JavaScriptWrapImports: true
14+

.huskyrc.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"hooks": {
3+
"pre-commit": "check-clang-format \"\\`yarn format\\`\""
4+
}
5+
}

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"stage-release": "ts-node --project tools/release/ tools/release/stage-release.ts",
2525
"publish-release": "ts-node --project tools/release/ tools/release/publish-release.ts",
2626
"check-release-output": "ts-node --project tools/release tools/release/check-release-output.ts",
27-
"preinstall": "node ./tools/npm/check-npm.js"
27+
"preinstall": "node ./tools/npm/check-npm.js",
28+
"format": "git-clang-format"
2829
},
2930
"version": "7.3.1",
3031
"requiredAngularVersion": ">=7.0.0",
@@ -79,6 +80,7 @@
7980
"axe-webdriverjs": "^1.1.1",
8081
"browser-sync": "^2.26.3",
8182
"chalk": "^1.1.3",
83+
"clang-format": "^1.2.4",
8284
"codelyzer": "^4.5.0",
8385
"conventional-changelog": "^3.0.5",
8486
"dgeni": "^0.4.10",
@@ -98,6 +100,7 @@
98100
"hammerjs": "^2.0.8",
99101
"highlight.js": "^9.11.0",
100102
"http-rewrite-middleware": "^0.1.6",
103+
"husky": "^1.3.1",
101104
"inquirer": "^6.2.0",
102105
"jasmine-core": "^3.3.0",
103106
"karma": "^3.1.4",

yarn.lock

+133-1
Original file line numberDiff line numberDiff line change
@@ -2133,6 +2133,11 @@ ci-info@^1.5.0:
21332133
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
21342134
integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
21352135

2136+
ci-info@^2.0.0:
2137+
version "2.0.0"
2138+
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
2139+
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
2140+
21362141
circular-json@^0.3.1:
21372142
version "0.3.3"
21382143
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
@@ -2150,6 +2155,15 @@ cjson@^0.3.1:
21502155
dependencies:
21512156
json-parse-helpfulerror "^1.0.3"
21522157

2158+
clang-format@^1.2.4:
2159+
version "1.2.4"
2160+
resolved "https://registry.yarnpkg.com/clang-format/-/clang-format-1.2.4.tgz#4bb4b0a98180428deb093cf20982e9fc1af20b6c"
2161+
integrity sha512-sw+nrGUp3hvmANd1qF8vZPuezSYQAiXgGBiEtkXTtJnnu6b00fCqkkDIsnRKrNgg4nv6NYZE92ejvOMIXZoejw==
2162+
dependencies:
2163+
async "^1.5.2"
2164+
glob "^7.0.0"
2165+
resolve "^1.1.6"
2166+
21532167
class-utils@^0.3.5:
21542168
version "0.3.6"
21552169
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@@ -2709,7 +2723,7 @@ [email protected], core-util-is@~1.0.0:
27092723
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
27102724
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
27112725

2712-
cosmiconfig@^5.0.0:
2726+
cosmiconfig@^5.0.0, cosmiconfig@^5.0.7:
27132727
version "5.0.7"
27142728
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
27152729
integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
@@ -3599,6 +3613,19 @@ execa@^0.7.0:
35993613
signal-exit "^3.0.0"
36003614
strip-eof "^1.0.0"
36013615

3616+
execa@^1.0.0:
3617+
version "1.0.0"
3618+
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
3619+
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
3620+
dependencies:
3621+
cross-spawn "^6.0.0"
3622+
get-stream "^4.0.0"
3623+
is-stream "^1.1.0"
3624+
npm-run-path "^2.0.0"
3625+
p-finally "^1.0.0"
3626+
signal-exit "^3.0.0"
3627+
strip-eof "^1.0.0"
3628+
36023629
execall@^1.0.0:
36033630
version "1.0.0"
36043631
resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73"
@@ -3939,6 +3966,13 @@ find-up@^2.0.0, find-up@^2.1.0:
39393966
dependencies:
39403967
locate-path "^2.0.0"
39413968

3969+
find-up@^3.0.0:
3970+
version "3.0.0"
3971+
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
3972+
integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
3973+
dependencies:
3974+
locate-path "^3.0.0"
3975+
39423976
findup-sync@^2.0.0:
39433977
version "2.0.0"
39443978
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
@@ -4324,6 +4358,13 @@ [email protected], get-stream@^3.0.0:
43244358
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
43254359
integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
43264360

4361+
get-stream@^4.0.0:
4362+
version "4.1.0"
4363+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
4364+
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
4365+
dependencies:
4366+
pump "^3.0.0"
4367+
43274368
get-uri@^2.0.0:
43284369
version "2.0.2"
43294370
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578"
@@ -5250,6 +5291,22 @@ https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1:
52505291
agent-base "^4.1.0"
52515292
debug "^3.1.0"
52525293

5294+
husky@^1.3.1:
5295+
version "1.3.1"
5296+
resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0"
5297+
integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==
5298+
dependencies:
5299+
cosmiconfig "^5.0.7"
5300+
execa "^1.0.0"
5301+
find-up "^3.0.0"
5302+
get-stdin "^6.0.0"
5303+
is-ci "^2.0.0"
5304+
pkg-dir "^3.0.0"
5305+
please-upgrade-node "^3.1.1"
5306+
read-pkg "^4.0.1"
5307+
run-node "^1.0.0"
5308+
slash "^2.0.0"
5309+
52535310
52545311
version "0.3.6"
52555312
resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d"
@@ -5531,6 +5588,13 @@ is-ci@^1.0.10:
55315588
dependencies:
55325589
ci-info "^1.5.0"
55335590

5591+
is-ci@^2.0.0:
5592+
version "2.0.0"
5593+
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
5594+
integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
5595+
dependencies:
5596+
ci-info "^2.0.0"
5597+
55345598
is-data-descriptor@^0.1.4:
55355599
version "0.1.4"
55365600
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -6491,6 +6555,14 @@ locate-path@^2.0.0:
64916555
p-locate "^2.0.0"
64926556
path-exists "^3.0.0"
64936557

6558+
locate-path@^3.0.0:
6559+
version "3.0.0"
6560+
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
6561+
integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
6562+
dependencies:
6563+
p-locate "^3.0.0"
6564+
path-exists "^3.0.0"
6565+
64946566
lodash._basecopy@^3.0.0:
64956567
version "3.0.1"
64966568
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
@@ -8013,13 +8085,27 @@ p-limit@^1.1.0:
80138085
dependencies:
80148086
p-try "^1.0.0"
80158087

8088+
p-limit@^2.0.0:
8089+
version "2.1.0"
8090+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68"
8091+
integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==
8092+
dependencies:
8093+
p-try "^2.0.0"
8094+
80168095
p-locate@^2.0.0:
80178096
version "2.0.0"
80188097
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
80198098
integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
80208099
dependencies:
80218100
p-limit "^1.1.0"
80228101

8102+
p-locate@^3.0.0:
8103+
version "3.0.0"
8104+
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
8105+
integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
8106+
dependencies:
8107+
p-limit "^2.0.0"
8108+
80238109
p-timeout@^2.0.1:
80248110
version "2.0.1"
80258111
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038"
@@ -8032,6 +8118,11 @@ p-try@^1.0.0:
80328118
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
80338119
integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
80348120

8121+
p-try@^2.0.0:
8122+
version "2.0.0"
8123+
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
8124+
integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
8125+
80358126
pac-proxy-agent@^3.0.0:
80368127
version "3.0.0"
80378128
resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz#11d578b72a164ad74bf9d5bac9ff462a38282432"
@@ -8315,6 +8406,13 @@ pinkie@^2.0.0:
83158406
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
83168407
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
83178408

8409+
pkg-dir@^3.0.0:
8410+
version "3.0.0"
8411+
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
8412+
integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
8413+
dependencies:
8414+
find-up "^3.0.0"
8415+
83188416
83198417
version "0.3.1"
83208418
resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
@@ -8325,6 +8423,13 @@ [email protected]:
83258423
resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff"
83268424
integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=
83278425

8426+
please-upgrade-node@^3.1.1:
8427+
version "3.1.1"
8428+
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
8429+
integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==
8430+
dependencies:
8431+
semver-compare "^1.0.0"
8432+
83288433
[email protected], plugin-error@^1.0.1:
83298434
version "1.0.1"
83308435
resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c"
@@ -8631,6 +8736,14 @@ pump@^2.0.0:
86318736
end-of-stream "^1.1.0"
86328737
once "^1.3.1"
86338738

8739+
pump@^3.0.0:
8740+
version "3.0.0"
8741+
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
8742+
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
8743+
dependencies:
8744+
end-of-stream "^1.1.0"
8745+
once "^1.3.1"
8746+
86348747
pumpify@^1.4.0, pumpify@^1.5.1:
86358748
version "1.5.1"
86368749
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
@@ -8792,6 +8905,15 @@ read-pkg@^3.0.0:
87928905
normalize-package-data "^2.3.2"
87938906
path-type "^3.0.0"
87948907

8908+
read-pkg@^4.0.1:
8909+
version "4.0.1"
8910+
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237"
8911+
integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc=
8912+
dependencies:
8913+
normalize-package-data "^2.3.2"
8914+
parse-json "^4.0.0"
8915+
pify "^3.0.0"
8916+
87958917
87968918
version "1.0.7"
87978919
resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
@@ -9333,6 +9455,11 @@ run-async@^2.2.0:
93339455
dependencies:
93349456
is-promise "^2.1.0"
93359457

9458+
run-node@^1.0.0:
9459+
version "1.0.0"
9460+
resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
9461+
integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
9462+
93369463
run-sequence@^1.2.2:
93379464
version "1.2.2"
93389465
resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-1.2.2.tgz#5095a0bebe98733b0140bd08dd80ec030ddacdeb"
@@ -9466,6 +9593,11 @@ selenium-webdriver@^4.0.0-alpha.1:
94669593
tmp "0.0.30"
94679594
xml2js "^0.4.17"
94689595

9596+
semver-compare@^1.0.0:
9597+
version "1.0.0"
9598+
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
9599+
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
9600+
94699601
semver-diff@^2.0.0:
94709602
version "2.1.0"
94719603
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"

0 commit comments

Comments
 (0)