Skip to content

Commit 77700f1

Browse files
committed
chore: add typechecking via typescript
1 parent fb3911c commit 77700f1

File tree

5 files changed

+105
-3
lines changed

5 files changed

+105
-3
lines changed

.github/workflows/pulls.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@ permissions:
99
contents: read
1010

1111
jobs:
12+
test:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v5
16+
- run: corepack enable
17+
- uses: actions/setup-node@v6
18+
with:
19+
node-version: 22
20+
registry-url: https://registry.npmjs.org
21+
- run: yarn install
22+
- run: yarn run typecheck
1223
build:
1324
runs-on: ubuntu-latest
1425
steps:

index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ Handlebars.registerHelper("link", (body) => {
7676
});
7777

7878
/**
79-
* @param {Object} resume
79+
* @param {any} resume
8080
* @returns {Promise<string>}
8181
*/
8282
export async function render(resume) {
83-
const [ css, template ] = await Promise.all([
83+
const loading = Promise.all([
8484
fs.readFile(import.meta.dirname + "/style.css", "utf-8"),
8585
fs.readFile(import.meta.dirname + "/resume.handlebars", "utf-8"),
8686
]);
@@ -114,6 +114,7 @@ export async function render(resume) {
114114
}
115115
}
116116

117+
const [ css, template ] = await loading;
117118
const html = Handlebars.compile(template)({
118119
css,
119120
resume

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
],
2929
"scripts": {
3030
"serve": "resume serve --theme . --resume ./test/fixture.resume.json",
31+
"typecheck": "tsc --noEmit",
3132
"build:pdf": "resume export --theme . --resume ./test/fixture.resume.json resume.pdf",
3233
"build:html": "resume export --theme . --resume ./test/fixture.resume.json resume.html"
3334
},
@@ -40,6 +41,9 @@
4041
"marked": "^16.4.1"
4142
},
4243
"devDependencies": {
43-
"resume-cli": "^3.1.2"
44+
"@types/html-minifier": "^4.0.5",
45+
"@types/node": "^24.8.1",
46+
"resume-cli": "^3.1.2",
47+
"typescript": "^5.9.3"
4448
}
4549
}

tsconfig.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"compilerOptions": {
3+
"noEmit": true,
4+
"module": "preserve",
5+
"target": "es2021",
6+
"lib": ["es2021"],
7+
"allowJs": true,
8+
"checkJs": true,
9+
"strict": true,
10+
"resolveJsonModule": true,
11+
"skipLibCheck": true
12+
},
13+
"exclude": [
14+
".yarn/",
15+
"node_modules/"
16+
]
17+
}

yarn.lock

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,13 @@ __metadata:
9494
version: 0.0.0-use.local
9595
resolution: "@jsonresume/jsonresume-theme-class@workspace:."
9696
dependencies:
97+
"@types/html-minifier": "npm:^4.0.5"
98+
"@types/node": "npm:^24.8.1"
9799
handlebars: "npm:^4.7.8"
98100
html-minifier: "npm:^4.0.0"
99101
marked: "npm:^16.4.1"
100102
resume-cli: "npm:^3.1.2"
103+
typescript: "npm:^5.9.3"
101104
languageName: unknown
102105
linkType: soft
103106

@@ -153,6 +156,16 @@ __metadata:
153156
languageName: node
154157
linkType: hard
155158

159+
"@types/clean-css@npm:*":
160+
version: 4.2.11
161+
resolution: "@types/clean-css@npm:4.2.11"
162+
dependencies:
163+
"@types/node": "npm:*"
164+
source-map: "npm:^0.6.0"
165+
checksum: 10c0/bd9848821982500854fed36e672981d9ff286a4cf37b8a7d15a51bbb3f3a3e90676ec18e29e0e753a4c1785c108ca0c30939209cc7dd72712a32fa9d727ea601
166+
languageName: node
167+
linkType: hard
168+
156169
"@types/cors@npm:^2.8.12":
157170
version: 2.8.19
158171
resolution: "@types/cors@npm:2.8.19"
@@ -162,6 +175,17 @@ __metadata:
162175
languageName: node
163176
linkType: hard
164177

178+
"@types/html-minifier@npm:^4.0.5":
179+
version: 4.0.5
180+
resolution: "@types/html-minifier@npm:4.0.5"
181+
dependencies:
182+
"@types/clean-css": "npm:*"
183+
"@types/relateurl": "npm:*"
184+
"@types/uglify-js": "npm:*"
185+
checksum: 10c0/7ecf8d2358b9f7a88e4c157b1ed951cf9dcf66e1f54f798074082b6d36f88a3eb46b0a364eda8bae5c020b491d7fcab5cd9d6de08021c0337d0156f6f7e12fd4
186+
languageName: node
187+
linkType: hard
188+
165189
"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0":
166190
version: 2.0.6
167191
resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
@@ -197,13 +221,38 @@ __metadata:
197221
languageName: node
198222
linkType: hard
199223

224+
"@types/node@npm:^24.8.1":
225+
version: 24.8.1
226+
resolution: "@types/node@npm:24.8.1"
227+
dependencies:
228+
undici-types: "npm:~7.14.0"
229+
checksum: 10c0/d185f2f14aa26cc2b482aa730bfc452943f9636df37aad6ceed80aa397f1278f894043336bd72f74c47b3dbef23e772ac9b1a256168984aa8aee26836132d290
230+
languageName: node
231+
linkType: hard
232+
233+
"@types/relateurl@npm:*":
234+
version: 0.2.33
235+
resolution: "@types/relateurl@npm:0.2.33"
236+
checksum: 10c0/6b6aafe9ed59bf674703555d9fbd3d54c4f27eab3b2abed8faa750ca8b93d883727e111948d3537e6429b43c0990a734525a1aed1baf4c51aebc4f69e3f3fb9f
237+
languageName: node
238+
linkType: hard
239+
200240
"@types/stack-utils@npm:^1.0.1":
201241
version: 1.0.1
202242
resolution: "@types/stack-utils@npm:1.0.1"
203243
checksum: 10c0/4c4a8c48ba556bbe5fad2232cd9598b7f5f3e110451a3ad5cdf7e42204abf3d1abd30a9e6679d576e8e901e1f6b38e744af1f75f384e697c89bee53e5443b8c9
204244
languageName: node
205245
linkType: hard
206246

247+
"@types/uglify-js@npm:*":
248+
version: 3.17.5
249+
resolution: "@types/uglify-js@npm:3.17.5"
250+
dependencies:
251+
source-map: "npm:^0.6.1"
252+
checksum: 10c0/e225d7da26a7a8b71e71f584ab2b4e14f9bd61e2ae4c72fa14d3d862ebfb8f3c1c24414048f23ea485e93618d3370e6c9d5e5af51b6a836d48ec453a26e419f4
253+
languageName: node
254+
linkType: hard
255+
207256
"@types/yargs-parser@npm:*":
208257
version: 21.0.3
209258
resolution: "@types/yargs-parser@npm:21.0.3"
@@ -4844,6 +4893,26 @@ __metadata:
48444893
languageName: node
48454894
linkType: hard
48464895

4896+
"typescript@npm:^5.9.3":
4897+
version: 5.9.3
4898+
resolution: "typescript@npm:5.9.3"
4899+
bin:
4900+
tsc: bin/tsc
4901+
tsserver: bin/tsserver
4902+
checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5
4903+
languageName: node
4904+
linkType: hard
4905+
4906+
"typescript@patch:typescript@npm%3A^5.9.3#optional!builtin<compat/typescript>":
4907+
version: 5.9.3
4908+
resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin<compat/typescript>::version=5.9.3&hash=5786d5"
4909+
bin:
4910+
tsc: bin/tsc
4911+
tsserver: bin/tsserver
4912+
checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430
4913+
languageName: node
4914+
linkType: hard
4915+
48474916
"ua-parser-js@npm:^1.0.33":
48484917
version: 1.0.41
48494918
resolution: "ua-parser-js@npm:1.0.41"

0 commit comments

Comments
 (0)