Skip to content

Commit a0461b2

Browse files
shivarmamandesai01
andauthored
feat(ci): code style and type check in Node.js CI environment (#120)
Co-authored-by: Aman Desai <[email protected]>
1 parent df5c7fc commit a0461b2

File tree

3 files changed

+146
-3
lines changed

3 files changed

+146
-3
lines changed

.github/workflows/lint.yml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
workflow_dispatch:
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.ref }}
13+
14+
jobs:
15+
lint:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Use Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: '20'
24+
cache: 'yarn'
25+
26+
- name: Install dependencies
27+
run: yarn install
28+
29+
- name: Check code style
30+
run: yarn run format:check
31+
32+
- name: Type check
33+
run: yarn run type:check

package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
"release": "changelogen --release && git push --follow-tags",
1616
"lint-staged": "lint-staged",
1717
"format": "prettier --write .",
18+
"format:check": "prettier --check .",
19+
"type:check": "npx nuxi typecheck",
1820
"prepare": "husky"
1921
},
2022
"dependencies": {
@@ -49,7 +51,9 @@
4951
"changelogen": "^0.5.5",
5052
"husky": "^9.1.5",
5153
"lint-staged": "^15.2.10",
52-
"prettier": "^3.3.3"
54+
"prettier": "^3.3.3",
55+
"typescript": "^5.5.4",
56+
"vue-tsc": "^2.1.6"
5357
},
5458
"lint-staged": {
5559
"*.{js,ts,vue}": [

yarn.lock

+108-2
Original file line numberDiff line numberDiff line change
@@ -1935,6 +1935,27 @@
19351935
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz#42b55c1a4d6f329aea25c5a24db51a31db31c693"
19361936
integrity sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==
19371937

1938+
"@volar/[email protected]", "@volar/language-core@~2.4.1":
1939+
version "2.4.2"
1940+
resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.2.tgz#522e06c69c55d2c124240db9e93385c022144712"
1941+
integrity sha512-sONt5RLvLL1SlBdhyUSthZzuKePbJ7DwFFB9zT0eyWpDl+v7GXGh/RkPxxWaR22bIhYtTzp4Ka1MWatl/53Riw==
1942+
dependencies:
1943+
"@volar/source-map" "2.4.2"
1944+
1945+
1946+
version "2.4.2"
1947+
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.2.tgz#253d8dcb0a68960cbf6e0ade7a1319e980935de9"
1948+
integrity sha512-qiGfGgeZ5DEarPX3S+HcFktFCjfDrFPCXKeXNbrlB7v8cvtPRm8YVwoXOdGG1NhaL5rMlv5BZPVQyu4EdWWIvA==
1949+
1950+
"@volar/typescript@~2.4.1":
1951+
version "2.4.2"
1952+
resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.2.tgz#4674d9dc9a39434fa65b956cbe1cc2a75d5c9054"
1953+
integrity sha512-m2uZduhaHO1SZuagi30OsjI/X1gwkaEAC+9wT/nCNAtJ5FqXEkKvUncHmffG7ESDZPlFFUBK4vJ0D9Hfr+f2EA==
1954+
dependencies:
1955+
"@volar/language-core" "2.4.2"
1956+
path-browserify "^1.0.1"
1957+
vscode-uri "^3.0.8"
1958+
19381959
"@vue-macros/common@^1.12.2":
19391960
version "1.12.2"
19401961
resolved "https://registry.yarnpkg.com/@vue-macros/common/-/common-1.12.2.tgz#ffaaf91c5fc2f2e8aee64bdfa75a559970793428"
@@ -2002,6 +2023,17 @@
20022023
estree-walker "^2.0.2"
20032024
source-map-js "^1.2.0"
20042025

2026+
2027+
version "3.5.2"
2028+
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.2.tgz#56aa06f3f0efc08579739aa04685dc34ee49b003"
2029+
integrity sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==
2030+
dependencies:
2031+
"@babel/parser" "^7.25.3"
2032+
"@vue/shared" "3.5.2"
2033+
entities "^4.5.0"
2034+
estree-walker "^2.0.2"
2035+
source-map-js "^1.2.0"
2036+
20052037
"@vue/[email protected]", "@vue/compiler-dom@^3.3.4":
20062038
version "3.4.38"
20072039
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz#90348fac1130e0bbd408b650635cb626b3b9df06"
@@ -2018,6 +2050,14 @@
20182050
"@vue/compiler-core" "3.5.1"
20192051
"@vue/shared" "3.5.1"
20202052

2053+
"@vue/compiler-dom@^3.4.0":
2054+
version "3.5.2"
2055+
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.2.tgz#9b4423ec215e016429b7739b21b8727a846481fe"
2056+
integrity sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==
2057+
dependencies:
2058+
"@vue/compiler-core" "3.5.2"
2059+
"@vue/shared" "3.5.2"
2060+
20212061
20222062
version "3.5.1"
20232063
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.1.tgz#457a7309fa5006d490450c3d5410b9caf37949c2"
@@ -2064,6 +2104,14 @@
20642104
"@vue/compiler-dom" "3.5.1"
20652105
"@vue/shared" "3.5.1"
20662106

2107+
"@vue/compiler-vue2@^2.7.16":
2108+
version "2.7.16"
2109+
resolved "https://registry.yarnpkg.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz#2ba837cbd3f1b33c2bc865fbe1a3b53fb611e249"
2110+
integrity sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==
2111+
dependencies:
2112+
de-indent "^1.0.2"
2113+
he "^1.2.0"
2114+
20672115
"@vue/devtools-api@^6.6.1", "@vue/devtools-api@^6.6.3":
20682116
version "6.6.3"
20692117
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz#b23a588154cba8986bba82b6e1d0248bde3fd1a0"
@@ -2114,6 +2162,20 @@
21142162
dependencies:
21152163
rfdc "^1.4.1"
21162164

2165+
2166+
version "2.1.6"
2167+
resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.1.6.tgz#b48186bdb9b3ef2b83e1f76d5b1ac357b3a7ed94"
2168+
integrity sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==
2169+
dependencies:
2170+
"@volar/language-core" "~2.4.1"
2171+
"@vue/compiler-dom" "^3.4.0"
2172+
"@vue/compiler-vue2" "^2.7.16"
2173+
"@vue/shared" "^3.4.0"
2174+
computeds "^0.0.1"
2175+
minimatch "^9.0.3"
2176+
muggle-string "^0.4.1"
2177+
path-browserify "^1.0.1"
2178+
21172179
21182180
version "3.5.1"
21192181
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.1.tgz#e4a57a038e3caaa9669de529533fcb16288a1736"
@@ -2157,6 +2219,11 @@
21572219
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.1.tgz#f9418dae5ac194a4f19023d812978c21a15412a1"
21582220
integrity sha512-NdcTRoO4KuW2RSFgpE2c+E/R/ZHaRzWPxAGxhmxZaaqLh6nYCXx7lc9a88ioqOCxCaV2SFJmujkxbUScW7dNsQ==
21592221

2222+
"@vue/[email protected]", "@vue/shared@^3.4.0":
2223+
version "3.5.2"
2224+
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.2.tgz#c4e3c3a0b6df91753689a635cb4729f889acdff0"
2225+
integrity sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==
2226+
21602227
"@vueuse/core@^10.11.0":
21612228
version "10.11.1"
21622229
resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.11.1.tgz#15d2c0b6448d2212235b23a7ba29c27173e0c2c6"
@@ -2824,6 +2891,11 @@ compress-commons@^6.0.2:
28242891
normalize-path "^3.0.0"
28252892
readable-stream "^4.0.0"
28262893

2894+
computeds@^0.0.1:
2895+
version "0.0.1"
2896+
resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e"
2897+
integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==
2898+
28272899
28282900
version "0.0.1"
28292901
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -3041,6 +3113,11 @@ db0@^0.1.4:
30413113
resolved "https://registry.yarnpkg.com/db0/-/db0-0.1.4.tgz#8df1d9600b812bad0b4129ccbbb7f1b8596a5817"
30423114
integrity sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==
30433115

3116+
de-indent@^1.0.2:
3117+
version "1.0.2"
3118+
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
3119+
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
3120+
30443121
debounce@^1.2.0:
30453122
version "1.2.1"
30463123
resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
@@ -3934,6 +4011,11 @@ hasown@^2.0.2:
39344011
dependencies:
39354012
function-bind "^1.1.2"
39364013

4014+
he@^1.2.0:
4015+
version "1.2.0"
4016+
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
4017+
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
4018+
39374019
hookable@^5.5.3:
39384020
version "5.5.3"
39394021
resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d"
@@ -4789,7 +4871,7 @@ minimatch@^5.0.1, minimatch@^5.1.0:
47894871
dependencies:
47904872
brace-expansion "^2.0.1"
47914873

4792-
minimatch@^9.0.4:
4874+
minimatch@^9.0.3, minimatch@^9.0.4:
47934875
version "9.0.5"
47944876
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
47954877
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
@@ -4878,6 +4960,11 @@ [email protected], ms@^2.1.1:
48784960
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
48794961
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
48804962

4963+
muggle-string@^0.4.1:
4964+
version "0.4.1"
4965+
resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328"
4966+
integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==
4967+
48814968
mz@^2.7.0:
48824969
version "2.7.0"
48834970
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -5329,6 +5416,11 @@ parseurl@^1.3.2, parseurl@~1.3.3:
53295416
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
53305417
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
53315418

5419+
path-browserify@^1.0.1:
5420+
version "1.0.1"
5421+
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
5422+
integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
5423+
53325424
[email protected], path-is-absolute@^1.0.0:
53335425
version "1.0.1"
53345426
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -6726,6 +6818,11 @@ type-is@^1.6.16:
67266818
media-typer "0.3.0"
67276819
mime-types "~2.1.24"
67286820

6821+
typescript@^5.5.4:
6822+
version "5.5.4"
6823+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba"
6824+
integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
6825+
67296826
ufo@^1.1.2, ufo@^1.4.0, ufo@^1.5.3, ufo@^1.5.4:
67306827
version "1.5.4"
67316828
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754"
@@ -7059,7 +7156,7 @@ vscode-languageserver@^7.0.0:
70597156
dependencies:
70607157
vscode-languageserver-protocol "3.16.0"
70617158

7062-
vscode-uri@^3.0.2:
7159+
vscode-uri@^3.0.2, vscode-uri@^3.0.8:
70637160
version "3.0.8"
70647161
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f"
70657162
integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==
@@ -7097,6 +7194,15 @@ vue-router@^4.3.2, vue-router@^4.4.3:
70977194
dependencies:
70987195
"@vue/devtools-api" "^6.6.3"
70997196

7197+
vue-tsc@^2.1.6:
7198+
version "2.1.6"
7199+
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.1.6.tgz#d93fdc617da6546674301a746fd7089ea6d4543d"
7200+
integrity sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==
7201+
dependencies:
7202+
"@volar/typescript" "~2.4.1"
7203+
"@vue/language-core" "2.1.6"
7204+
semver "^7.5.4"
7205+
71007206
vue@^3.4.38, vue@^3.5.0:
71017207
version "3.5.1"
71027208
resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.1.tgz#507eb4ab010a2ad894f8d7765f32e68be1604815"

0 commit comments

Comments
 (0)