1 |
|
2 | const {nodejsIds} = require('dumber-module-loader/dist/id-utils');
|
3 |
|
4 | module.exports = class ModulesDone {
|
5 | constructor() {
|
6 | this.userIds = new Set();
|
7 | this.packageIds = new Set();
|
8 | }
|
9 |
|
10 | addUnit(unit) {
|
11 | this.add(unit.moduleId, !!unit.packageName);
|
12 | this.add(unit.defined, !!unit.packageName);
|
13 | }
|
14 |
|
15 | add(id, inPackageSpace) {
|
16 | if (typeof id === 'string') {
|
17 | if (inPackageSpace) {
|
18 | this.packageIds.add(id);
|
19 | } else {
|
20 | this.userIds.add(id);
|
21 | }
|
22 | } else if (Array.isArray(id)) {
|
23 | id.forEach(d => this.add(d, inPackageSpace));
|
24 | }
|
25 | }
|
26 |
|
27 |
|
28 | has(id, checkUserSpace, checkPackageSpace) {
|
29 | const possibleIds = nodejsIds(id);
|
30 |
|
31 | return possibleIds.some(id => {
|
32 | let inUserSpace = checkUserSpace && this.userIds.has(id);
|
33 | let inPackageSpace = checkPackageSpace && this.packageIds.has(id);
|
34 | return inUserSpace || inPackageSpace;
|
35 | });
|
36 | }
|
37 | };
|