Skip to content

Commit e064a44

Browse files
Use fetch
1 parent 5f19d3c commit e064a44

1 file changed

Lines changed: 7 additions & 34 deletions

File tree

lib/comment.js

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
const fs = require('fs');
22
const path = require('path');
3-
const https = require('https');
43
const yaml = require('js-yaml');
54
const { spawnSync } = require('child_process');
65
const ssri = require('ssri');
76
const { getVendors } = require('hexo-theme-next/scripts/events/lib/utils');
87
const yargs = require('yargs/yargs');
98
const { hideBin } = require('yargs/helpers');
109

11-
// Process won't quit if keepAlive
12-
const agent = new https.Agent({ keepAlive: false });
13-
1410
const argv = yargs(hideBin(process.argv))
1511
.option('diff', {
1612
describe: 'Enable diff mode',
@@ -26,41 +22,18 @@ const dependencies = yaml.load(vendorsFile);
2622

2723
const newPlugins = require('../package.json').dependencies;
2824

29-
async function request(url) {
30-
return new Promise((resolve, reject) => {
31-
const req = https.get(url, { agent }, response => {
32-
resolve(response.statusCode);
33-
});
34-
req.on('error', error => {
35-
reject(error.status);
36-
});
37-
});
38-
}
39-
40-
async function checkIntegrity(url) {
41-
return new Promise((resolve, reject) => {
42-
const req = https.get(url, response => {
43-
ssri.fromStream(response, { algorithms: ['sha256'] })
44-
.then(integrity => integrity.toString())
45-
.then(resolve);
46-
});
47-
req.on('error', error => {
48-
reject(error.status);
49-
});
50-
});
51-
}
52-
5325
async function formatTable(name, links, groundTruth) {
5426
let content = '';
5527
for (const [key, url] of Object.entries(links)) {
5628
if (!['jsdelivr', 'unpkg', 'cdnjs'].includes(key)) continue;
57-
const statusCode = await request(url);
58-
let integrityMatch;
29+
const response = await fetch(url);
30+
const statusCode = response.status;
31+
let integrityMatch = '❌';
5932
if (statusCode === 200) {
60-
const integrity = await checkIntegrity(url);
61-
integrityMatch = integrity === groundTruth ? '✅' : '❌';
62-
} else {
63-
integrityMatch = '❌';
33+
const text = await response.text();
34+
if (ssri.checkData(text, groundTruth, { algorithms: ['sha256'] })) {
35+
integrityMatch = '✅';
36+
}
6437
}
6538
content += `| [${key}](${url}) | ${statusCode === 200 ? '✅' : '❌'} ${statusCode} | ${integrityMatch} |\n`;
6639
}

0 commit comments

Comments
 (0)