-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtry.cjs
More file actions
27 lines (25 loc) · 781 Bytes
/
try.cjs
File metadata and controls
27 lines (25 loc) · 781 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'use strict';
const types = require('./type.json');
const pjson = require('./package.json');
const deps = Object.keys(pjson.dependencies);
const disallowlist = [ '@types/html-minifier-terser', 'node-releases', 'jest-watch-typeahead', '@semantic-release/npm' ];
const esm = deps.filter(i => types[i] === 'esm' && !disallowlist.includes(i));
const failures = [];
const passed = [];
for (let i = 0; i < esm.length; ++i) {
const p = esm[i];
try {
require(p);
passed.push(p)
} catch(e) {
failures.push({p, e});
}
}
const groups = {};
for (const {p, e} of failures) {
groups[e.code] ||= [];
groups[e.code].push(p);
}
console.log(`Tried ${esm.length} esm packages, failed ${failures.length}`);
console.log(groups);
console.log(passed.length, 'can be required');