-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathinternal-func.js
More file actions
49 lines (45 loc) · 1.15 KB
/
internal-func.js
File metadata and controls
49 lines (45 loc) · 1.15 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// @flow strict
// @noflow
'use strict';
const path = require('path');
const listOfExports = require(path.join(
process.cwd(),
'/resources/babel-plugins/',
'map.json',
));
module.exports = {
create(context) {
function isExportedLocallyOnly(name) {
if (!listOfExports[context.getFilename()]) {
return true;
}
return !listOfExports[context.getFilename()].find(
value => value === name || value === '*',
);
}
const source = context.getSourceCode();
/**
*
*/
return {
'ExportNamedDeclaration > :matches(FunctionDeclaration,ClassDeclaration)'(
node,
) {
if (isExportedLocallyOnly(node.id.name)) {
if (!source.getJSDocComment(node)) {
return context.report({
node,
message: 'Please enter JSDoC internal functions using @internal',
});
}
if (!source.getJSDocComment(node).value.includes('@internal')) {
context.report({
node,
message: 'Please annotate internal functions using @internal',
});
}
}
},
};
},
};