eslint-plugin-use-agnostic 1.4.1 → 1.5.1
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/comments.config.json +46 -6
- package/comments.config.mjs +2831 -0
- package/jscomments/_commons/constants/bases.js +2 -0
- package/jscomments/_commons/constants/data.js +6 -0
- package/jscomments/agnostic20/comments.js +12 -4
- package/jscomments/directive21/comments.js +19 -9
- package/jscomments/directive21/modules-comments.js +3 -3
- package/library/agnostic20/_commons/constants/bases.js +3 -2
- package/library/directive21/_commons/constants/bases.js +5 -4
- package/package.json +3 -2
|
@@ -18,13 +18,13 @@ export const agnostic20Comments = Object.freeze({
|
|
|
18
18
|
"use agnostic components": agnosticComponentsComments,
|
|
19
19
|
forAliasVariables: Object.freeze({
|
|
20
20
|
serverNeverClient:
|
|
21
|
-
"
|
|
21
|
+
"$COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#SHOULDNEVERCLIENT" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERNEVERCLIENT */,
|
|
22
22
|
clientNeverServer:
|
|
23
|
-
"
|
|
23
|
+
"$COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#SHOULDNEVERSERVER" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER */,
|
|
24
24
|
agnosticCanServerClient:
|
|
25
|
-
"
|
|
25
|
+
"$COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#RUNSERVERLIKECLIENT" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT */,
|
|
26
26
|
agnosticCanClientServer:
|
|
27
|
-
"
|
|
27
|
+
"$COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#RUNCLIENTLIKESERVER" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER */,
|
|
28
28
|
serverFunctionsNoComponents:
|
|
29
29
|
"Server Functions have no business working with React Components." /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS */,
|
|
30
30
|
serverLogicsCantBoth:
|
|
@@ -33,6 +33,14 @@ export const agnostic20Comments = Object.freeze({
|
|
|
33
33
|
"$COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH */,
|
|
34
34
|
}),
|
|
35
35
|
forComposedVariables: Object.freeze({
|
|
36
|
+
shouldNeverClient:
|
|
37
|
+
"should never leak to the client." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#SHOULDNEVERCLIENT */,
|
|
38
|
+
shouldNeverServer:
|
|
39
|
+
"should never leak to the server." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#SHOULDNEVERSERVER */,
|
|
40
|
+
runServerLikeClient:
|
|
41
|
+
"can run safely on the server just like they can on the client." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#RUNSERVERLIKECLIENT */,
|
|
42
|
+
runClientLikeServer:
|
|
43
|
+
"can run safely on the client just like they can on the server." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#RUNCLIENTLIKESERVER */,
|
|
36
44
|
canComposeOneAnother:
|
|
37
45
|
"can compose with one another." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER */,
|
|
38
46
|
cantTinkeredServer:
|
|
@@ -24,13 +24,13 @@ export const directive21Comments = Object.freeze({
|
|
|
24
24
|
"use agnostic strategies": agnosticStrategiesComments,
|
|
25
25
|
forAliasVariables: Object.freeze({
|
|
26
26
|
serverNeverClient:
|
|
27
|
-
"
|
|
27
|
+
"$COMMENT#DIRECTIVE21#USE_SERVER_LOGICS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#SHOULDNEVERCLIENT" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERNEVERCLIENT */,
|
|
28
28
|
clientNeverServer:
|
|
29
|
-
"
|
|
29
|
+
"$COMMENT#DIRECTIVE21#USE_CLIENT_LOGICS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#SHOULDNEVERSERVER" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#CLIENTNEVERSERVER */,
|
|
30
30
|
agnosticCanServerClient:
|
|
31
|
-
"
|
|
31
|
+
"$COMMENT#DIRECTIVE21#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RUNSERVERLIKECLIENT" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT */,
|
|
32
32
|
agnosticCanClientServer:
|
|
33
|
-
"
|
|
33
|
+
"$COMMENT#DIRECTIVE21#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RUNCLIENTLIKESERVER" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER */,
|
|
34
34
|
serverFunctionsNoComponents:
|
|
35
35
|
"(Special) Server Functions have no business working with React Components." /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS */,
|
|
36
36
|
serverLogicsCantBoth:
|
|
@@ -40,11 +40,19 @@ export const directive21Comments = Object.freeze({
|
|
|
40
40
|
agnosticComponentsCanAny:
|
|
41
41
|
"$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANANYPRIMELOGICS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCOMPONENTSCANANY */,
|
|
42
42
|
agnosticComponentsRenderAny:
|
|
43
|
-
"$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#
|
|
43
|
+
"$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RENDERCLIENTLIKESERVER" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCOMPONENTSRENDERANY */,
|
|
44
44
|
serverFunctionsClient:
|
|
45
45
|
"$COMMENT#DIRECTIVE21#USE_SERVER_FUNCTIONS#SPECIALS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCLIENTCOMPONENTS" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERFUNCTIONSCLIENT */,
|
|
46
46
|
}),
|
|
47
47
|
forComposedVariables: Object.freeze({
|
|
48
|
+
shouldNeverClient:
|
|
49
|
+
"AGNOSTIC20#FORCOMPOSEDVARIABLES#SHOULDNEVERCLIENT" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#SHOULDNEVERCLIENT */,
|
|
50
|
+
shouldNeverServer:
|
|
51
|
+
"AGNOSTIC20#FORCOMPOSEDVARIABLES#SHOULDNEVERSERVER" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#SHOULDNEVERSERVER */,
|
|
52
|
+
runServerLikeClient:
|
|
53
|
+
"AGNOSTIC20#FORCOMPOSEDVARIABLES#RUNSERVERLIKECLIENT" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RUNSERVERLIKECLIENT */,
|
|
54
|
+
runClientLikeServer:
|
|
55
|
+
"AGNOSTIC20#FORCOMPOSEDVARIABLES#RUNCLIENTLIKESERVER" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RUNCLIENTLIKESERVER */,
|
|
48
56
|
canComposeOneAnother:
|
|
49
57
|
"AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER */,
|
|
50
58
|
cantTinkeredServer:
|
|
@@ -97,9 +105,11 @@ export const directive21Comments = Object.freeze({
|
|
|
97
105
|
"when the root of the application is planted on the server." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#WHENROOTONSERVER */,
|
|
98
106
|
canClientComponents:
|
|
99
107
|
"can be specifically triggered by Client Components." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCLIENTCOMPONENTS */,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
// renderServerLikeClient
|
|
109
|
+
renderServerLikeClient:
|
|
110
|
+
"can render safely on the server just like they can on the client." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RENDERSERVERLIKECLIENT */,
|
|
111
|
+
// renderClientLikeServer
|
|
112
|
+
renderClientLikeServer:
|
|
113
|
+
"can render safely on the client just like they can on the server." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RENDERCLIENTLIKESERVER */,
|
|
104
114
|
}),
|
|
105
115
|
});
|
|
@@ -115,13 +115,13 @@ export const serverComponentsComments = Object.freeze({
|
|
|
115
115
|
"use client components":
|
|
116
116
|
/* valid */ "$COMMENT#DIRECTIVE21#USE_CLIENT_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#TOCREATEBOUNDARIES $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#WHENROOTONSERVER" /* $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#USE_CLIENT_COMPONENTS */,
|
|
117
117
|
"use agnostic components":
|
|
118
|
-
/* valid */ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#
|
|
118
|
+
/* valid */ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RENDERSERVERLIKECLIENT" /* $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#USE_AGNOSTIC_COMPONENTS */,
|
|
119
119
|
"use server functions":
|
|
120
120
|
/* valid */ "(Special) Server Functions can be passed to imported Client Components within Lineal Server Components Modules, even though indeed Lineal Server Components Modules and Lineal Server Components can make their own Server Functions through inline `'use server'` directives." /* $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#USE_SERVER_FUNCTIONS */,
|
|
121
121
|
"use client contexts":
|
|
122
122
|
/* valid */ "$COMMENT#DIRECTIVE21#USE_CLIENT_CONTEXTS#SPECIALS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#TOWRAPTREE $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#WHENROOTONSERVER" /* $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#USE_CLIENT_CONTEXTS */,
|
|
123
123
|
"use agnostic conditions":
|
|
124
|
-
/* valid */ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_CONDITIONS#SPECIALSCOMMA $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ASIFLINEALAGNOSTIC $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#
|
|
124
|
+
/* valid */ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_CONDITIONS#SPECIALSCOMMA $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ASIFLINEALAGNOSTIC $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RENDERSERVERLIKECLIENT" /* $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#USE_AGNOSTIC_CONDITIONS */,
|
|
125
125
|
kinds:
|
|
126
126
|
"Lineal Server Components" /* $COMMENT#DIRECTIVE21#USE_SERVER_COMPONENTS#KINDS */,
|
|
127
127
|
kindsComma:
|
|
@@ -156,7 +156,7 @@ export const clientComponentsComments = Object.freeze({
|
|
|
156
156
|
"use client contexts":
|
|
157
157
|
/* valid */ "(Special) Client Contexts Components can effectively become Lineal and only render their children on the client via this mechanism since, by a Client Contexts Component being the child of a Lineal Client Component, the Client Contexts Component's children become the grandchildren of an ancestor Lineal Client Component, enforcing them to render exclusively on the client." /* $COMMENT#DIRECTIVE21#USE_CLIENT_COMPONENTS#USE_CLIENT_CONTEXTS */,
|
|
158
158
|
"use agnostic conditions":
|
|
159
|
-
/* valid */ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_CONDITIONS#SPECIALSCOMMA $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ASIFLINEALAGNOSTIC $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#
|
|
159
|
+
/* valid */ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_CONDITIONS#SPECIALSCOMMA $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ASIFLINEALAGNOSTIC $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#RENDERCLIENTLIKESERVER" /* $COMMENT#DIRECTIVE21#USE_CLIENT_COMPONENTS#USE_AGNOSTIC_CONDITIONS */,
|
|
160
160
|
module:
|
|
161
161
|
"Lineal Client Components Module" /* $COMMENT#DIRECTIVE21#USE_CLIENT_COMPONENTS#MODULE */,
|
|
162
162
|
modulePeriod:
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
|
|
12
12
|
import { makeIntroForSpecificViolationMessage } from "../../../_commons/utilities/helpers.js";
|
|
13
13
|
|
|
14
|
-
import { resolvedConfigData } from "../../../../jscomments/_commons/constants/bases.js";
|
|
14
|
+
// import { resolvedConfigData } from "../../../../jscomments/_commons/constants/bases.js";
|
|
15
|
+
import { commentVariablesData } from "../../../../jscomments/_commons/constants/data.js";
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* @typedef {import('../../../../types/agnostic20/_commons/typedefs.js').Directive} Directive
|
|
@@ -106,7 +107,7 @@ export const makeBlockedImport = (
|
|
|
106
107
|
currentFileEffectiveDirective,
|
|
107
108
|
importedFileEffectiveDirective
|
|
108
109
|
)} ${
|
|
109
|
-
|
|
110
|
+
commentVariablesData[agnostic20ConfigName][currentFileEffectiveDirective][
|
|
110
111
|
importedFileEffectiveDirective
|
|
111
112
|
].value
|
|
112
113
|
}`,
|
|
@@ -14,7 +14,8 @@ import {
|
|
|
14
14
|
|
|
15
15
|
import { makeIntroForSpecificViolationMessage } from "../../../_commons/utilities/helpers.js";
|
|
16
16
|
|
|
17
|
-
import { resolvedConfigData } from "../../../../jscomments/_commons/constants/bases.js";
|
|
17
|
+
// import { resolvedConfigData } from "../../../../jscomments/_commons/constants/bases.js";
|
|
18
|
+
import { commentVariablesData } from "../../../../jscomments/_commons/constants/data.js";
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* @typedef {import('../../../../types/directive21/_commons/typedefs.js').CommentedDirective} CommentedDirective
|
|
@@ -162,9 +163,9 @@ export const makeBlockedImport = (
|
|
|
162
163
|
currentFileCommentedDirective,
|
|
163
164
|
importedFileCommentedDirective
|
|
164
165
|
)} ${
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
].value
|
|
166
|
+
commentVariablesData[directive21ConfigName][
|
|
167
|
+
currentFileCommentedDirective
|
|
168
|
+
][importedFileCommentedDirective].value
|
|
168
169
|
}`,
|
|
169
170
|
});
|
|
170
171
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-use-agnostic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Highlights problematic server-client imports in projects made with the Fullstack React Architecture.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"types/index.d.ts",
|
|
25
25
|
"jscomments",
|
|
26
26
|
"comments.config.js",
|
|
27
|
-
"comments.config.json"
|
|
27
|
+
"comments.config.json",
|
|
28
|
+
"comments.config.mjs"
|
|
28
29
|
],
|
|
29
30
|
"exports": {
|
|
30
31
|
".": {
|