eslint-plugin-use-agnostic 1.6.7 → 1.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/library/_commons/constants/bases.js +6 -4
- package/library/_commons/utilities/helpers.js +21 -21
- package/library/_commons/utilities/walk-ast.js +46 -0
- package/library/agnostic20/_commons/constants/bases.js +57 -57
- package/library/agnostic20/_commons/utilities/flows.js +17 -17
- package/library/agnostic20/_commons/utilities/helpers.js +43 -43
- package/library/agnostic20/config.js +3 -3
- package/library/directive21/_commons/constants/bases.js +106 -85
- package/library/directive21/_commons/rules/import-rules.js +12 -8
- package/library/directive21/_commons/utilities/analyze-exports-re.js +100 -0
- package/library/directive21/_commons/utilities/flows.js +166 -30
- package/library/directive21/_commons/utilities/helpers.js +88 -88
- package/library/directive21/config.js +3 -3
- package/package.json +2 -2
- package/types/index.d.ts +100 -100
package/README.md
CHANGED
|
@@ -104,4 +104,4 @@ But not having a directive to distinguish between 1. non-special Server Modules
|
|
|
104
104
|
|
|
105
105
|
This is what the `'use agnostic'` directive solves. It clearly marks a module to be an Agnostic Module. And if a module that used to lack a directive can now be marked as an Agnostic Module, this allows modules without a directive to finally, truly be Server Modules by default. And `eslint-plugin-use-agnostic` can work from there.
|
|
106
106
|
|
|
107
|
-
A lot more needs to be done, and I suspect a lot of it unfortunately can only be optimized
|
|
107
|
+
A lot more needs to be done, and I suspect a lot of it unfortunately can only be optimized more deeply into React's innerworkings. But if the introduction of `'use agnostic'` can already create such powerful static analysis, imagine what it could produce if only it were incorporated into React as an official directive of the Fullstack React Architecture.
|
|
@@ -43,13 +43,15 @@ export const useServerJSXMessageId = "use-server-has-jsx-extension";
|
|
|
43
43
|
// directive21
|
|
44
44
|
export const importBreaksCommentedImportRulesMessageId =
|
|
45
45
|
"import-breaks-commented-directive-import-rule";
|
|
46
|
-
export const
|
|
47
|
-
export const
|
|
46
|
+
export const noCommentedDirectiveMessageId = "no-commented-directive-detected";
|
|
47
|
+
export const commentedDirectiveVerificationFailedMessageId =
|
|
48
48
|
"commented-directive-verification-failed";
|
|
49
|
-
export const
|
|
49
|
+
export const importNotStrategizedMessageId =
|
|
50
50
|
"import-from-use-agnostic-strategies-not-strategized";
|
|
51
|
-
export const
|
|
51
|
+
export const exportNotStrategizedMessageId =
|
|
52
52
|
"export-from-use-agnostic-strategies-not-strategized";
|
|
53
|
+
export const cantChainImportAcrossEnvironmentsMessageId =
|
|
54
|
+
"cant-chain-import-across-environments";
|
|
53
55
|
|
|
54
56
|
// all "resolved" directives (from AIA/agnostic20 & DFA/directive21)
|
|
55
57
|
// - AIA: Agnostic-Included Architecture (agnostic20)
|
|
@@ -17,9 +17,9 @@ import {
|
|
|
17
17
|
/* highlightFirstLineOfCode */
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @param {Context} context
|
|
22
|
-
* @returns
|
|
20
|
+
* $COMMENT#JSDOC#DEFINITIONS#HIGHLIGHTFIRSTLINEOFCODE
|
|
21
|
+
* @param {Context} context $COMMENT#JSDOC#PARAMS#CONTEXTA
|
|
22
|
+
* @returns $COMMENT#JSDOC#RETURNS#HIGHLIGHTFIRSTLINEOFCODE
|
|
23
23
|
*/
|
|
24
24
|
export const highlightFirstLineOfCode = (context) => ({
|
|
25
25
|
start: { line: 1, column: 0 },
|
|
@@ -29,13 +29,13 @@ export const highlightFirstLineOfCode = (context) => ({
|
|
|
29
29
|
/* isImportBlocked */
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* $COMMENT#JSDOC#DEFINITIONS#ISIMPORTBLOCKED
|
|
33
33
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} T
|
|
34
34
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} U
|
|
35
|
-
* @param {ResolvedDirectives_BlockedImports<T, U>} resolvedDirectives_blockedImports
|
|
36
|
-
* @param {T} currentFileResolvedDirective
|
|
37
|
-
* @param {U} importedFileResolvedDirective
|
|
38
|
-
* @returns
|
|
35
|
+
* @param {ResolvedDirectives_BlockedImports<T, U>} resolvedDirectives_blockedImports $COMMENT#JSDOC#PARAMS#RESOLVEDDIRECTIVES_BLOCKEDIMPORTS
|
|
36
|
+
* @param {T} currentFileResolvedDirective $COMMENT#JSDOC#PARAMS#CURRENTFILERESOLVEDDIRECTIVEA
|
|
37
|
+
* @param {U} importedFileResolvedDirective $COMMENT#JSDOC#PARAMS#IMPORTEDFILERESOLVEDDIRECTIVE
|
|
38
|
+
* @returns $COMMENT#JSDOC#RETURNS#ISIMPORTBLOCKED
|
|
39
39
|
*/
|
|
40
40
|
export const isImportBlocked = (
|
|
41
41
|
// Note: "Blocked" here is preferred over "not allowed" because a specific message will be shared for each of the blocked situations, explaining their reasons and the solutions needed.
|
|
@@ -50,12 +50,12 @@ export const isImportBlocked = (
|
|
|
50
50
|
/* makeIntroForSpecificViolationMessage */
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* $COMMENT#JSDOC#DEFINITIONS#MAKEINTROFORSPECIFICVIOLATIONMESSAGE
|
|
54
54
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} T
|
|
55
55
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} U
|
|
56
|
-
* @param {T} currentFileResolvedDirective
|
|
57
|
-
* @param {U} importedFileResolvedDirective
|
|
58
|
-
* @returns
|
|
56
|
+
* @param {T} currentFileResolvedDirective $COMMENT#JSDOC#PARAMS#CURRENTFILERESOLVEDDIRECTIVEA
|
|
57
|
+
* @param {U} importedFileResolvedDirective $COMMENT#JSDOC#PARAMS#IMPORTEDFILERESOLVEDDIRECTIVE
|
|
58
|
+
* @returns $COMMENT#JSDOC#RETURNS#MAKEINTROFORSPECIFICVIOLATIONMESSAGE
|
|
59
59
|
*/
|
|
60
60
|
export const makeIntroForSpecificViolationMessage = (
|
|
61
61
|
currentFileResolvedDirective,
|
|
@@ -70,12 +70,12 @@ export const makeIntroForSpecificViolationMessage = (
|
|
|
70
70
|
/* makeMessageFromCurrentFileResolvedDirective */
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
|
-
*
|
|
73
|
+
* $COMMENT#JSDOC#DEFINITIONS#MAKEMESSAGEFROMCURRENTFILERESOLVEDDIRECTIVE
|
|
74
74
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} T
|
|
75
75
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} U
|
|
76
|
-
* @param {ResolvedDirectives_BlockedImports<T, U>} resolvedDirectives_blockedImports
|
|
77
|
-
* @param {T} currentFileResolvedDirective
|
|
78
|
-
* @returns
|
|
76
|
+
* @param {ResolvedDirectives_BlockedImports<T, U>} resolvedDirectives_blockedImports $COMMENT#JSDOC#PARAMS#RESOLVEDDIRECTIVES_BLOCKEDIMPORTS
|
|
77
|
+
* @param {T} currentFileResolvedDirective $COMMENT#JSDOC#PARAMS#CURRENTFILERESOLVEDDIRECTIVEB
|
|
78
|
+
* @returns $COMMENT#JSDOC#RETURNS#MAKEMESSAGEFROMCURRENTFILERESOLVEDDIRECTIVE
|
|
79
79
|
*/
|
|
80
80
|
export const makeMessageFromCurrentFileResolvedDirective = (
|
|
81
81
|
resolvedDirectives_blockedImports,
|
|
@@ -111,13 +111,13 @@ export const makeMessageFromCurrentFileResolvedDirective = (
|
|
|
111
111
|
/* findSpecificViolationMessage */
|
|
112
112
|
|
|
113
113
|
/**
|
|
114
|
-
*
|
|
114
|
+
* $COMMENT#JSDOC#DEFINITIONS#FINDSPECIFICVIOLATIONMESSAGE
|
|
115
115
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} T
|
|
116
116
|
* @template {ResolvedDirectiveWithoutUseAgnosticStrategies} U
|
|
117
|
-
* @param {ResolvedDirectives_BlockedImports<T, U>} resolvedDirectives_blockedImports
|
|
118
|
-
* @param {T} currentFileResolvedDirective
|
|
119
|
-
* @param {U} importedFileResolvedDirective
|
|
120
|
-
* @returns
|
|
117
|
+
* @param {ResolvedDirectives_BlockedImports<T, U>} resolvedDirectives_blockedImports $COMMENT#JSDOC#PARAMS#RESOLVEDDIRECTIVES_BLOCKEDIMPORTS
|
|
118
|
+
* @param {T} currentFileResolvedDirective $COMMENT#JSDOC#PARAMS#CURRENTFILERESOLVEDDIRECTIVEA
|
|
119
|
+
* @param {U} importedFileResolvedDirective $COMMENT#JSDOC#PARAMS#IMPORTEDFILERESOLVEDDIRECTIVE
|
|
120
|
+
* @returns $COMMENT#JSDOC#RETURNS#FINDSPECIFICVIOLATIONMESSAGE
|
|
121
121
|
*/
|
|
122
122
|
export const findSpecificViolationMessage = (
|
|
123
123
|
resolvedDirectives_blockedImports,
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../../../types/_commons/typedefs.js").SourceCode} SourceCode
|
|
3
|
+
* @typedef {import("../../../types/_commons/typedefs.js").VisitorKeys} VisitorKeys
|
|
4
|
+
* @typedef {import("../../../types/_commons/typedefs.js").Node} Node
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Walks an AST with a given callback.
|
|
9
|
+
* @param {SourceCode} sourceCode
|
|
10
|
+
* @param {(node: Node, parent: Node | null) => void} callback
|
|
11
|
+
*/
|
|
12
|
+
export const walkAST = (sourceCode, callback) => {
|
|
13
|
+
const ast = sourceCode.ast;
|
|
14
|
+
const visitorKeys = sourceCode.visitorKeys;
|
|
15
|
+
|
|
16
|
+
visitNode(ast, null, visitorKeys, callback);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Recursively visits an AST node with a given callback.
|
|
21
|
+
* @param {Node} node
|
|
22
|
+
* @param {Node | null} parent
|
|
23
|
+
* @param {VisitorKeys} visitorKeys
|
|
24
|
+
* @param {(node: Node, parent: Node | null) => void} callback
|
|
25
|
+
*/
|
|
26
|
+
const visitNode = (node, parent, visitorKeys, callback) => {
|
|
27
|
+
callback(node, parent);
|
|
28
|
+
|
|
29
|
+
const keys = visitorKeys[node.type];
|
|
30
|
+
if (!keys) return;
|
|
31
|
+
|
|
32
|
+
for (const key of keys) {
|
|
33
|
+
const val = node[key];
|
|
34
|
+
if (!val) continue;
|
|
35
|
+
|
|
36
|
+
if (Array.isArray(val)) {
|
|
37
|
+
for (const child of val) {
|
|
38
|
+
if (child && typeof child.type === "string") {
|
|
39
|
+
visitNode(child, node, visitorKeys, callback);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} else if (val && typeof val.type === "string") {
|
|
43
|
+
visitNode(val, node, visitorKeys, callback);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
@@ -89,12 +89,12 @@ const SUGGEST_USE_AGNOSTIC =
|
|
|
89
89
|
"If the module you're trying to import does not possess any server-side code however, please mark it with this plugin's own and eponymous 'use agnostic' directive to signal its compatibility across all environments.";
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
|
-
*
|
|
92
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#MAKEBLOCKEDIMPORT
|
|
93
93
|
* @template {EffectiveDirective} T
|
|
94
94
|
* @template {EffectiveDirective} U
|
|
95
|
-
* @param {T} currentFileEffectiveDirective
|
|
96
|
-
* @param {U} importedFileEffectiveDirective
|
|
97
|
-
* @returns
|
|
95
|
+
* @param {T} currentFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#CURRENTFILEEFFECTIVEDIRECTIVE
|
|
96
|
+
* @param {U} importedFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#IMPORTEDFILEEFFECTIVEDIRECTIVE
|
|
97
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#MAKEBLOCKEDIMPORT
|
|
98
98
|
*/
|
|
99
99
|
export const makeBlockedImport = (
|
|
100
100
|
currentFileEffectiveDirective,
|
|
@@ -114,12 +114,12 @@ export const makeBlockedImport = (
|
|
|
114
114
|
};
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
*
|
|
117
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#MAKEBLOCKEDIMPORTSUGGESTINGUSEAGNOSTIC
|
|
118
118
|
* @template {EffectiveDirective} T
|
|
119
119
|
* @template {EffectiveDirective} U
|
|
120
|
-
* @param {T} currentFileEffectiveDirective
|
|
121
|
-
* @param {U} importedFileEffectiveDirective
|
|
122
|
-
* @returns
|
|
120
|
+
* @param {T} currentFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#CURRENTFILEEFFECTIVEDIRECTIVE
|
|
121
|
+
* @param {U} importedFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#IMPORTEDFILEEFFECTIVEDIRECTIVE
|
|
122
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#MAKEBLOCKEDIMPORTSUGGESTINGUSEAGNOSTIC
|
|
123
123
|
*/
|
|
124
124
|
const makeBlockedImportSuggestingUseAgnostic = (
|
|
125
125
|
currentFileEffectiveDirective,
|
|
@@ -140,123 +140,123 @@ const makeBlockedImportSuggestingUseAgnostic = (
|
|
|
140
140
|
|
|
141
141
|
export const effectiveDirectives_blockedImports = Object.freeze({
|
|
142
142
|
[USE_SERVER_LOGICS]: Object.freeze([
|
|
143
|
-
// USE_SERVER_LOGICS
|
|
144
|
-
// USE_SERVER_COMPONENTS
|
|
145
|
-
// USE_SERVER_FUNCTIONS
|
|
143
|
+
// USE_SERVER_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_SERVER_LOGICS
|
|
144
|
+
// USE_SERVER_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_SERVER_COMPONENTS
|
|
145
|
+
// USE_SERVER_FUNCTIONS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_SERVER_FUNCTIONS
|
|
146
146
|
makeBlockedImport(
|
|
147
147
|
USE_SERVER_LOGICS,
|
|
148
148
|
USE_CLIENT_LOGICS
|
|
149
|
-
) /*
|
|
149
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER */,
|
|
150
150
|
makeBlockedImport(
|
|
151
151
|
USE_SERVER_LOGICS,
|
|
152
152
|
USE_CLIENT_COMPONENTS
|
|
153
|
-
) /*
|
|
154
|
-
// USE_AGNOSTIC_LOGICS
|
|
155
|
-
// USE_AGNOSTIC_COMPONENTS
|
|
153
|
+
) /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_CLIENT_COMPONENTS */,
|
|
154
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT
|
|
155
|
+
// USE_AGNOSTIC_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_AGNOSTIC_COMPONENTS
|
|
156
156
|
]),
|
|
157
157
|
[USE_SERVER_COMPONENTS]: Object.freeze([
|
|
158
|
-
// USE_SERVER_LOGICS
|
|
159
|
-
// USE_SERVER_COMPONENTS
|
|
160
|
-
// USE_SERVER_FUNCTIONS
|
|
158
|
+
// USE_SERVER_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_SERVER_LOGICS
|
|
159
|
+
// USE_SERVER_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_SERVER_COMPONENTS
|
|
160
|
+
// USE_SERVER_FUNCTIONS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_SERVER_FUNCTIONS
|
|
161
161
|
makeBlockedImport(
|
|
162
162
|
USE_SERVER_COMPONENTS,
|
|
163
163
|
USE_CLIENT_LOGICS
|
|
164
|
-
) /*
|
|
165
|
-
// USE_CLIENT_COMPONENTS
|
|
166
|
-
// USE_AGNOSTIC_LOGICS
|
|
167
|
-
// USE_AGNOSTIC_COMPONENTS
|
|
164
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER */,
|
|
165
|
+
// USE_CLIENT_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_CLIENT_COMPONENTS
|
|
166
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT
|
|
167
|
+
// USE_AGNOSTIC_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_AGNOSTIC_COMPONENTS
|
|
168
168
|
]),
|
|
169
169
|
[USE_SERVER_FUNCTIONS]: Object.freeze([
|
|
170
|
-
// USE_SERVER_LOGICS
|
|
170
|
+
// USE_SERVER_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_SERVER_LOGICS
|
|
171
171
|
makeBlockedImport(
|
|
172
172
|
USE_SERVER_FUNCTIONS,
|
|
173
173
|
USE_SERVER_COMPONENTS
|
|
174
|
-
) /*
|
|
175
|
-
// USE_SERVER_FUNCTIONS
|
|
174
|
+
) /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_SERVER_COMPONENTS */,
|
|
175
|
+
// USE_SERVER_FUNCTIONS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_SERVER_FUNCTIONS
|
|
176
176
|
makeBlockedImport(
|
|
177
177
|
USE_SERVER_FUNCTIONS,
|
|
178
178
|
USE_CLIENT_LOGICS
|
|
179
|
-
) /*
|
|
179
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER */,
|
|
180
180
|
makeBlockedImport(
|
|
181
181
|
USE_SERVER_FUNCTIONS,
|
|
182
182
|
USE_CLIENT_COMPONENTS
|
|
183
|
-
) /*
|
|
184
|
-
// USE_AGNOSTIC_LOGICS
|
|
183
|
+
) /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_CLIENT_COMPONENTS */,
|
|
184
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT
|
|
185
185
|
makeBlockedImport(
|
|
186
186
|
USE_SERVER_FUNCTIONS,
|
|
187
187
|
USE_AGNOSTIC_COMPONENTS
|
|
188
|
-
) /*
|
|
188
|
+
) /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_AGNOSTIC_COMPONENTS */,
|
|
189
189
|
]),
|
|
190
190
|
[USE_CLIENT_LOGICS]: Object.freeze([
|
|
191
191
|
makeBlockedImportSuggestingUseAgnostic(
|
|
192
192
|
USE_CLIENT_LOGICS,
|
|
193
193
|
USE_SERVER_LOGICS
|
|
194
|
-
) /*
|
|
194
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERNEVERCLIENT */,
|
|
195
195
|
makeBlockedImportSuggestingUseAgnostic(
|
|
196
196
|
USE_CLIENT_LOGICS,
|
|
197
197
|
USE_SERVER_COMPONENTS
|
|
198
|
-
) /*
|
|
199
|
-
// USE_SERVER_FUNCTIONS
|
|
200
|
-
// USE_CLIENT_LOGICS
|
|
201
|
-
// USE_CLIENT_COMPONENTS
|
|
202
|
-
// USE_AGNOSTIC_LOGICS
|
|
203
|
-
// USE_AGNOSTIC_COMPONENTS
|
|
198
|
+
) /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_SERVER_COMPONENTS */,
|
|
199
|
+
// USE_SERVER_FUNCTIONS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_SERVER_FUNCTIONS
|
|
200
|
+
// USE_CLIENT_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_CLIENT_LOGICS
|
|
201
|
+
// USE_CLIENT_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_CLIENT_COMPONENTS
|
|
202
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER
|
|
203
|
+
// USE_AGNOSTIC_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_AGNOSTIC_COMPONENTS
|
|
204
204
|
]),
|
|
205
205
|
[USE_CLIENT_COMPONENTS]: Object.freeze([
|
|
206
206
|
makeBlockedImportSuggestingUseAgnostic(
|
|
207
207
|
USE_CLIENT_LOGICS,
|
|
208
208
|
USE_SERVER_LOGICS
|
|
209
|
-
) /*
|
|
209
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERNEVERCLIENT */,
|
|
210
210
|
makeBlockedImportSuggestingUseAgnostic(
|
|
211
211
|
USE_CLIENT_LOGICS,
|
|
212
212
|
USE_SERVER_COMPONENTS
|
|
213
|
-
) /*
|
|
214
|
-
// USE_SERVER_FUNCTIONS
|
|
215
|
-
// USE_CLIENT_LOGICS
|
|
216
|
-
// USE_CLIENT_COMPONENTS
|
|
217
|
-
// USE_AGNOSTIC_LOGICS
|
|
218
|
-
// USE_AGNOSTIC_COMPONENTS
|
|
213
|
+
) /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_SERVER_COMPONENTS */,
|
|
214
|
+
// USE_SERVER_FUNCTIONS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_SERVER_FUNCTIONS
|
|
215
|
+
// USE_CLIENT_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_CLIENT_LOGICS
|
|
216
|
+
// USE_CLIENT_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_CLIENT_COMPONENTS
|
|
217
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER
|
|
218
|
+
// USE_AGNOSTIC_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_AGNOSTIC_COMPONENTS
|
|
219
219
|
]),
|
|
220
220
|
[USE_AGNOSTIC_LOGICS]: Object.freeze([
|
|
221
221
|
makeBlockedImportSuggestingUseAgnostic(
|
|
222
222
|
USE_AGNOSTIC_LOGICS,
|
|
223
223
|
USE_SERVER_LOGICS
|
|
224
|
-
) /*
|
|
224
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERLOGICSCANTBOTH */,
|
|
225
225
|
makeBlockedImportSuggestingUseAgnostic(
|
|
226
226
|
USE_AGNOSTIC_LOGICS,
|
|
227
227
|
USE_SERVER_COMPONENTS
|
|
228
|
-
) /*
|
|
228
|
+
) /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_SERVER_COMPONENTS */,
|
|
229
229
|
makeBlockedImport(
|
|
230
230
|
USE_AGNOSTIC_LOGICS,
|
|
231
231
|
USE_SERVER_FUNCTIONS
|
|
232
|
-
) /*
|
|
232
|
+
) /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_SERVER_FUNCTIONS */,
|
|
233
233
|
makeBlockedImport(
|
|
234
234
|
USE_AGNOSTIC_LOGICS,
|
|
235
235
|
USE_CLIENT_LOGICS
|
|
236
|
-
) /*
|
|
236
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH */,
|
|
237
237
|
makeBlockedImport(
|
|
238
238
|
USE_AGNOSTIC_LOGICS,
|
|
239
239
|
USE_CLIENT_COMPONENTS
|
|
240
|
-
) /*
|
|
241
|
-
// USE_AGNOSTIC_LOGICS
|
|
242
|
-
// USE_AGNOSTIC_COMPONENTS
|
|
240
|
+
) /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_CLIENT_COMPONENTS */,
|
|
241
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_AGNOSTIC_LOGICS
|
|
242
|
+
// USE_AGNOSTIC_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_AGNOSTIC_COMPONENTS
|
|
243
243
|
]),
|
|
244
244
|
[USE_AGNOSTIC_COMPONENTS]: Object.freeze([
|
|
245
245
|
makeBlockedImportSuggestingUseAgnostic(
|
|
246
246
|
USE_AGNOSTIC_COMPONENTS,
|
|
247
247
|
USE_SERVER_LOGICS
|
|
248
|
-
) /*
|
|
248
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERLOGICSCANTBOTH */,
|
|
249
249
|
makeBlockedImportSuggestingUseAgnostic(
|
|
250
250
|
USE_AGNOSTIC_COMPONENTS,
|
|
251
251
|
USE_SERVER_COMPONENTS
|
|
252
|
-
) /*
|
|
253
|
-
// USE_SERVER_FUNCTIONS
|
|
252
|
+
) /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_SERVER_COMPONENTS */,
|
|
253
|
+
// USE_SERVER_FUNCTIONS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_SERVER_FUNCTIONS
|
|
254
254
|
makeBlockedImport(
|
|
255
255
|
USE_AGNOSTIC_COMPONENTS,
|
|
256
256
|
USE_CLIENT_LOGICS
|
|
257
|
-
) /*
|
|
258
|
-
// USE_CLIENT_COMPONENTS
|
|
259
|
-
// USE_AGNOSTIC_LOGICS
|
|
260
|
-
// USE_AGNOSTIC_COMPONENTS
|
|
257
|
+
) /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH */,
|
|
258
|
+
// USE_CLIENT_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_CLIENT_COMPONENTS
|
|
259
|
+
// USE_AGNOSTIC_LOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_AGNOSTIC_LOGICS
|
|
260
|
+
// USE_AGNOSTIC_COMPONENTS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_AGNOSTIC_COMPONENTS
|
|
261
261
|
]),
|
|
262
262
|
});
|
|
@@ -40,9 +40,9 @@ import {
|
|
|
40
40
|
/* currentFileFlow */
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
* @param {Context} context
|
|
45
|
-
* @returns
|
|
43
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#CURRENTFILEFLOW
|
|
44
|
+
* @param {Context} context $COMMENT#JSDOC#PARAMS#CONTEXTB
|
|
45
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#CURRENTFILEFLOW
|
|
46
46
|
*/
|
|
47
47
|
export const currentFileFlow = (context) => {
|
|
48
48
|
const skipTrue = { ...skip, currentFileEffectiveDirective: undefined };
|
|
@@ -95,10 +95,10 @@ export const currentFileFlow = (context) => {
|
|
|
95
95
|
/* importedFileFlow */
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
|
-
*
|
|
99
|
-
* @param {Context} context
|
|
100
|
-
* @param {ImportDeclaration} node
|
|
101
|
-
* @returns
|
|
98
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#IMPORTEDFILEFLOW
|
|
99
|
+
* @param {Context} context $COMMENT#JSDOC#PARAMS#CONTEXTB
|
|
100
|
+
* @param {ImportDeclaration} node $COMMENT#JSDOC#PARAMS#NODE
|
|
101
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#IMPORTEDFILEFLOW
|
|
102
102
|
*/
|
|
103
103
|
const importedFileFlow = (context, node) => {
|
|
104
104
|
const skipTrue = { ...skip, importedFileEffectiveDirective: undefined };
|
|
@@ -146,11 +146,11 @@ const importedFileFlow = (context, node) => {
|
|
|
146
146
|
|
|
147
147
|
/* importsFlow */
|
|
148
148
|
|
|
149
|
-
/**
|
|
150
|
-
* @param {Context} context
|
|
151
|
-
* @param {ImportDeclaration} node
|
|
152
|
-
* @param {EffectiveDirective} currentFileEffectiveDirective
|
|
153
|
-
* @returns
|
|
149
|
+
/** $COMMENT#JSDOC#FORALIASVARIABLES#IMPORTSFLOW
|
|
150
|
+
* @param {Context} context $COMMENT#JSDOC#PARAMS#CONTEXTB
|
|
151
|
+
* @param {ImportDeclaration} node $COMMENT#JSDOC#PARAMS#NODE
|
|
152
|
+
* @param {EffectiveDirective} currentFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#CURRENTFILEEFFECTIVEDIRECTIVE
|
|
153
|
+
* @returns $COMMENT#JSDOC#FORALIASVARIABLES#FLOWRETURNSEARLY
|
|
154
154
|
*/
|
|
155
155
|
export const importsFlow = (context, node, currentFileEffectiveDirective) => {
|
|
156
156
|
// does not operate on `import type`
|
|
@@ -186,11 +186,11 @@ export const importsFlow = (context, node, currentFileEffectiveDirective) => {
|
|
|
186
186
|
|
|
187
187
|
/* reExportsFlow */
|
|
188
188
|
|
|
189
|
-
/**
|
|
190
|
-
* @param {Context} context
|
|
191
|
-
* @param {ExportNamedDeclaration | ExportAllDeclaration} node
|
|
192
|
-
* @param {EffectiveDirective} currentFileEffectiveDirective
|
|
193
|
-
* @returns
|
|
189
|
+
/** $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#REEXPORTSFLOW
|
|
190
|
+
* @param {Context} context $COMMENT#JSDOC#PARAMS#CONTEXTB
|
|
191
|
+
* @param {ExportNamedDeclaration | ExportAllDeclaration} node $COMMENT#JSDOC#PARAMS#NODE
|
|
192
|
+
* @param {EffectiveDirective} currentFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#CURRENTFILEEFFECTIVEDIRECTIVE
|
|
193
|
+
* @returns $COMMENT#JSDOC#FORALIASVARIABLES#FLOWRETURNSEARLY
|
|
194
194
|
*/
|
|
195
195
|
export const reExportsFlow = (context, node, currentFileEffectiveDirective) => {
|
|
196
196
|
// does not operate on `export type`
|
|
@@ -28,13 +28,13 @@ import {
|
|
|
28
28
|
/* getDirectiveFromModule */
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
32
|
-
* -
|
|
33
|
-
* -
|
|
34
|
-
* -
|
|
35
|
-
* -
|
|
36
|
-
* @param {AST} ast
|
|
37
|
-
* @returns
|
|
31
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#GETDIRECTIVEFROMMODULE
|
|
32
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#NULLDIRECTIVE
|
|
33
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USESERVER
|
|
34
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USECLIENT
|
|
35
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USEAGNOSTIC
|
|
36
|
+
* @param {AST} ast $COMMENT#JSDOC#PARAMS#AGNOSTIC20#AST
|
|
37
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#GETDIRECTIVEFROMMODULE
|
|
38
38
|
*/
|
|
39
39
|
export const getDirectiveFromModule = (ast) => {
|
|
40
40
|
// the AST body to check for the top-of-the-file directive
|
|
@@ -63,13 +63,13 @@ export const getDirectiveFromModule = (ast) => {
|
|
|
63
63
|
/* getDirectiveFromCurrentModule */
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
* -
|
|
68
|
-
* -
|
|
69
|
-
* -
|
|
70
|
-
* -
|
|
71
|
-
* @param {Context} context
|
|
72
|
-
* @returns
|
|
66
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#GETDIRECTIVEFROMCURRENTMODULE
|
|
67
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#NULLDIRECTIVE
|
|
68
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USESERVER
|
|
69
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USECLIENT
|
|
70
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USEAGNOSTIC
|
|
71
|
+
* @param {Context} context $COMMENT#JSDOC#PARAMS#CONTEXTB
|
|
72
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#GETDIRECTIVEFROMMODULE
|
|
73
73
|
*/
|
|
74
74
|
export const getDirectiveFromCurrentModule = (context) => {
|
|
75
75
|
// the AST of the current module
|
|
@@ -81,13 +81,13 @@ export const getDirectiveFromCurrentModule = (context) => {
|
|
|
81
81
|
/* getDirectiveFromImportedModule */
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
|
-
*
|
|
85
|
-
* -
|
|
86
|
-
* -
|
|
87
|
-
* -
|
|
88
|
-
* -
|
|
89
|
-
* @param {string} resolvedPath
|
|
90
|
-
* @returns
|
|
84
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#GETDIRECTIVEFROMIMPORTEDMODULE
|
|
85
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#NULLDIRECTIVE
|
|
86
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USESERVER
|
|
87
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USECLIENT
|
|
88
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USEAGNOSTIC
|
|
89
|
+
* @param {string} resolvedPath $COMMENT#JSDOC#PARAMS#RESOLVEDPATH
|
|
90
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#GETDIRECTIVEFROMMODULE
|
|
91
91
|
*/
|
|
92
92
|
export const getDirectiveFromImportedModule = (resolvedPath) => {
|
|
93
93
|
// the AST of the imported module
|
|
@@ -99,17 +99,17 @@ export const getDirectiveFromImportedModule = (resolvedPath) => {
|
|
|
99
99
|
/* getEffectiveDirective */
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
|
-
*
|
|
103
|
-
* -
|
|
104
|
-
* -
|
|
105
|
-
* -
|
|
106
|
-
* -
|
|
107
|
-
* -
|
|
108
|
-
* -
|
|
109
|
-
* -
|
|
110
|
-
* @param {Directive | NoDirective} directive
|
|
111
|
-
* @param {Extension} extension
|
|
112
|
-
* @returns
|
|
102
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#GETEFFECTIVEDIRECTIVE
|
|
103
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USESERVERLOGICS
|
|
104
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USESERVERCOMPONENTS
|
|
105
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USESERVERFUNCTIONS
|
|
106
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USECLIENTLOGICS
|
|
107
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USECLIENTCOMPONENTS
|
|
108
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USEAGNOSTICLOGICS
|
|
109
|
+
* - $COMMENT#JSDOC#DETAILS#AGNOSTIC20#USEAGNOSTICCOMPONENTS
|
|
110
|
+
* @param {Directive | NoDirective} directive $COMMENT#JSDOC#PARAMS#AGNOSTIC20#DIRECTIVE
|
|
111
|
+
* @param {Extension} extension $COMMENT#JSDOC#PARAMS#EXTENSION
|
|
112
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#GETEFFECTIVEDIRECTIVE
|
|
113
113
|
*/
|
|
114
114
|
export const getEffectiveDirective = (directive, extension) => {
|
|
115
115
|
const moduleKind = extension.endsWith("x")
|
|
@@ -124,10 +124,10 @@ export const getEffectiveDirective = (directive, extension) => {
|
|
|
124
124
|
/* isImportBlocked */
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
|
-
*
|
|
128
|
-
* @param {EffectiveDirective} currentFileEffectiveDirective
|
|
129
|
-
* @param {EffectiveDirective} importedFileEffectiveDirective
|
|
130
|
-
* @returns
|
|
127
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#ISIMPORTBLOCKED
|
|
128
|
+
* @param {EffectiveDirective} currentFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#CURRENTFILEEFFECTIVEDIRECTIVE
|
|
129
|
+
* @param {EffectiveDirective} importedFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#IMPORTEDFILEEFFECTIVEDIRECTIVE
|
|
130
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#ISIMPORTBLOCKED
|
|
131
131
|
*/
|
|
132
132
|
export const isImportBlocked = (
|
|
133
133
|
currentFileEffectiveDirective,
|
|
@@ -142,9 +142,9 @@ export const isImportBlocked = (
|
|
|
142
142
|
/* makeMessageFromCurrentFileEffectiveDirective */
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
|
-
*
|
|
146
|
-
* @param {EffectiveDirective} effectiveDirective
|
|
147
|
-
* @returns
|
|
145
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#MAKEMESSAGEFROMCURRENTFILEEFFECTIVEDIRECTIVE
|
|
146
|
+
* @param {EffectiveDirective} effectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#EFFECTIVEDIRECTIVE
|
|
147
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#MAKEMESSAGEFROMCURRENTFILEEFFECTIVEDIRECTIVE
|
|
148
148
|
*/
|
|
149
149
|
export const makeMessageFromCurrentFileEffectiveDirective = (
|
|
150
150
|
effectiveDirective
|
|
@@ -157,10 +157,10 @@ export const makeMessageFromCurrentFileEffectiveDirective = (
|
|
|
157
157
|
/* findSpecificViolationMessage */
|
|
158
158
|
|
|
159
159
|
/**
|
|
160
|
-
*
|
|
161
|
-
* @param {EffectiveDirective} currentFileEffectiveDirective
|
|
162
|
-
* @param {EffectiveDirective} importedFileEffectiveDirective
|
|
163
|
-
* @returns
|
|
160
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#FINDSPECIFICVIOLATIONMESSAGE
|
|
161
|
+
* @param {EffectiveDirective} currentFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#CURRENTFILEEFFECTIVEDIRECTIVE
|
|
162
|
+
* @param {EffectiveDirective} importedFileEffectiveDirective $COMMENT#JSDOC#PARAMS#AGNOSTIC20#IMPORTEDFILEEFFECTIVEDIRECTIVE
|
|
163
|
+
* @returns $COMMENT#JSDOC#RETURNS#FINDSPECIFICVIOLATIONMESSAGE
|
|
164
164
|
*/
|
|
165
165
|
export const findSpecificViolationMessage = (
|
|
166
166
|
currentFileEffectiveDirective,
|
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param {Plugin} plugin
|
|
17
|
-
* @returns
|
|
15
|
+
* $COMMENT#JSDOC#DEFINITIONS#AGNOSTIC20#MAKEAGNOSTIC20CONFIG
|
|
16
|
+
* @param {Plugin} plugin $COMMENT#JSDOC#PARAMS#PLUGIN
|
|
17
|
+
* @returns $COMMENT#JSDOC#RETURNS#AGNOSTIC20#MAKEAGNOSTIC20CONFIG
|
|
18
18
|
*/
|
|
19
19
|
export const makeAgnostic20Config = (plugin) => ({
|
|
20
20
|
[agnostic20ConfigName]: defineConfig([
|