@elaraai/east-diagnostics 1.0.28 → 1.0.30
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 +13 -0
- package/dist/src/block-scope.d.ts +4 -1
- package/dist/src/block-scope.d.ts.map +1 -1
- package/dist/src/block-scope.js +19 -0
- package/dist/src/block-scope.js.map +1 -1
- package/dist/src/east-source.d.ts +17 -0
- package/dist/src/east-source.d.ts.map +1 -1
- package/dist/src/east-source.js +77 -0
- package/dist/src/east-source.js.map +1 -1
- package/dist/src/east-type.d.ts +2 -0
- package/dist/src/east-type.d.ts.map +1 -1
- package/dist/src/east-type.js +46 -0
- package/dist/src/east-type.js.map +1 -1
- package/dist/src/rules/index.d.ts +10 -0
- package/dist/src/rules/index.d.ts.map +1 -1
- package/dist/src/rules/index.js +31 -0
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/no-build-time-clock.d.ts +3 -0
- package/dist/src/rules/no-build-time-clock.d.ts.map +1 -0
- package/dist/src/rules/no-build-time-clock.js +67 -0
- package/dist/src/rules/no-build-time-clock.js.map +1 -0
- package/dist/src/rules/no-compile-time-data-injection.d.ts.map +1 -1
- package/dist/src/rules/no-compile-time-data-injection.js +8 -3
- package/dist/src/rules/no-compile-time-data-injection.js.map +1 -1
- package/dist/src/rules/no-compile-time-seed-data.d.ts.map +1 -1
- package/dist/src/rules/no-compile-time-seed-data.js +4 -30
- package/dist/src/rules/no-compile-time-seed-data.js.map +1 -1
- package/dist/src/rules/no-cross-block-builder.d.ts +3 -0
- package/dist/src/rules/no-cross-block-builder.d.ts.map +1 -0
- package/dist/src/rules/no-cross-block-builder.js +112 -0
- package/dist/src/rules/no-cross-block-builder.js.map +1 -0
- package/dist/src/rules/no-duplicate-definition-name.d.ts +3 -0
- package/dist/src/rules/no-duplicate-definition-name.d.ts.map +1 -0
- package/dist/src/rules/no-duplicate-definition-name.js +73 -0
- package/dist/src/rules/no-duplicate-definition-name.js.map +1 -0
- package/dist/src/rules/no-dynamic-bind-path.d.ts +7 -0
- package/dist/src/rules/no-dynamic-bind-path.d.ts.map +1 -0
- package/dist/src/rules/no-dynamic-bind-path.js +53 -0
- package/dist/src/rules/no-dynamic-bind-path.js.map +1 -0
- package/dist/src/rules/no-handrolled-value-type-mirror.d.ts +3 -0
- package/dist/src/rules/no-handrolled-value-type-mirror.d.ts.map +1 -0
- package/dist/src/rules/no-handrolled-value-type-mirror.js +72 -0
- package/dist/src/rules/no-handrolled-value-type-mirror.js.map +1 -0
- package/dist/src/rules/no-host-comparison-on-east-values.d.ts +3 -0
- package/dist/src/rules/no-host-comparison-on-east-values.d.ts.map +1 -0
- package/dist/src/rules/no-host-comparison-on-east-values.js +70 -0
- package/dist/src/rules/no-host-comparison-on-east-values.js.map +1 -0
- package/dist/src/rules/no-host-in-east-block.d.ts.map +1 -1
- package/dist/src/rules/no-host-in-east-block.js +149 -31
- package/dist/src/rules/no-host-in-east-block.js.map +1 -1
- package/dist/src/rules/no-module-scope-east-macro.d.ts.map +1 -1
- package/dist/src/rules/no-module-scope-east-macro.js +8 -1
- package/dist/src/rules/no-module-scope-east-macro.js.map +1 -1
- package/dist/src/rules/no-state-outside-reactive.d.ts +3 -0
- package/dist/src/rules/no-state-outside-reactive.d.ts.map +1 -0
- package/dist/src/rules/no-state-outside-reactive.js +63 -0
- package/dist/src/rules/no-state-outside-reactive.js.map +1 -0
- package/dist/src/rules/prefer-const-ui-callbacks.d.ts +7 -0
- package/dist/src/rules/prefer-const-ui-callbacks.d.ts.map +1 -0
- package/dist/src/rules/prefer-const-ui-callbacks.js +50 -0
- package/dist/src/rules/prefer-const-ui-callbacks.js.map +1 -0
- package/dist/src/rules/prefer-some-none.d.ts.map +1 -1
- package/dist/src/rules/prefer-some-none.js +5 -0
- package/dist/src/rules/prefer-some-none.js.map +1 -1
- package/dist/src/rules/require-example-returns.d.ts +3 -0
- package/dist/src/rules/require-example-returns.d.ts.map +1 -0
- package/dist/src/rules/require-example-returns.js +58 -0
- package/dist/src/rules/require-example-returns.js.map +1 -0
- package/dist/src/rules/require-runner-platforms.d.ts +3 -0
- package/dist/src/rules/require-runner-platforms.d.ts.map +1 -0
- package/dist/src/rules/require-runner-platforms.js +99 -0
- package/dist/src/rules/require-runner-platforms.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,35 +1,10 @@
|
|
|
1
|
-
import { isEastExprType, isBlockBuilderType } from "../east-type.js";
|
|
1
|
+
import { isEastExprType, isBlockBuilderType, isEastPlatformDefinitionType } from "../east-type.js";
|
|
2
2
|
import { insideBlockScope } from "../block-scope.js";
|
|
3
3
|
import { chainRootReceiver, bodyBuildsEastIr } from "../east-ir.js";
|
|
4
|
+
import { resolvesToEastImport } from "../east-source.js";
|
|
4
5
|
const NAME = "no-host-in-east-block";
|
|
5
6
|
const CODE = 990020;
|
|
6
7
|
// ── East-vs-host classification ─────────────────────────────────────────────
|
|
7
|
-
/** Does `id` resolve to a binding imported from an `@elaraai/*` package? (The
|
|
8
|
-
* whole East ecosystem API — `East`, `Expr`, `variant`/`some`, `ArrayType`/
|
|
9
|
-
* `StructType`/`DictType`, `GoogleOr`, `Data`, … — is recognised by SYMBOL, not a
|
|
10
|
-
* brittle name list.) */
|
|
11
|
-
function resolvesToEastImport(id, ctx) {
|
|
12
|
-
const t = ctx.ts;
|
|
13
|
-
// Use the LOCAL import symbol (its declaration is the ImportSpecifier/clause) —
|
|
14
|
-
// do NOT resolve the alias, which would jump to the declaration inside
|
|
15
|
-
// @elaraai/east and lose the import-specifier we key on.
|
|
16
|
-
const sym = ctx.checker.getSymbolAtLocation(id);
|
|
17
|
-
for (const d of sym?.declarations ?? []) {
|
|
18
|
-
let n = d;
|
|
19
|
-
if (t.isImportSpecifier(n))
|
|
20
|
-
n = n.parent.parent.parent;
|
|
21
|
-
else if (t.isNamespaceImport(n))
|
|
22
|
-
n = n.parent.parent;
|
|
23
|
-
else if (t.isImportClause(n))
|
|
24
|
-
n = n.parent;
|
|
25
|
-
else
|
|
26
|
-
continue;
|
|
27
|
-
if (t.isImportDeclaration(n) && t.isStringLiteral(n.moduleSpecifier) && n.moduleSpecifier.text.startsWith("@elaraai/")) {
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
8
|
/**
|
|
34
9
|
* Does `id` resolve to a binding LOCAL to an East block whose runtime value is an
|
|
35
10
|
* East `Expr` typed loosely as `any` — an in-block TS macro (`g`/`sdiv`/`roundI`/…,
|
|
@@ -85,7 +60,7 @@ function isEastCall(call, ctx) {
|
|
|
85
60
|
return true;
|
|
86
61
|
// A5 — rooted on an `@elaraai/*` import (`East.*`, `Expr.*`, `variant`/`some`,
|
|
87
62
|
// `ArrayType`/`StructType`/`DictType`, `GoogleOr.*`, …).
|
|
88
|
-
if (t.isIdentifier(root) && resolvesToEastImport(root, ctx))
|
|
63
|
+
if (t.isIdentifier(root) && resolvesToEastImport(root, ctx.checker, t))
|
|
89
64
|
return true;
|
|
90
65
|
// A6 — a method chained off an in-block TS macro or its loosely-typed (`any`)
|
|
91
66
|
// operand, whose type-info is lost as `any`. The macro is reported elsewhere
|
|
@@ -93,18 +68,161 @@ function isEastCall(call, ctx) {
|
|
|
93
68
|
// East, not additional host calls.
|
|
94
69
|
if (t.isPropertyAccessExpression(f) && t.isIdentifier(root) && resolvesToInBlockEastBinding(root, ctx))
|
|
95
70
|
return true;
|
|
71
|
+
// A7 — the callee is an East platform-function DEFINITION (`East.platform(…)` /
|
|
72
|
+
// `East.asyncPlatform(…)` / the generic pair), project-local stubs included.
|
|
73
|
+
// Calling one emits a single `Platform` IR node — a real East call, exactly
|
|
74
|
+
// like calling a bound `East.function` (A0), not an authoring-time macro.
|
|
75
|
+
if (isEastPlatformDefinitionType(ctx.checker.getTypeAtLocation(f)))
|
|
76
|
+
return true;
|
|
77
|
+
// A8 — UI composition: the callee is a JSX-returning helper (the call-site
|
|
78
|
+
// mirror of clause E's declaration exemption), or an argument is a callback
|
|
79
|
+
// returning JSX (`days.map((d) => <Chip …/>)` over TS-side config).
|
|
80
|
+
if (isJsxCompositionCall(call, ctx))
|
|
81
|
+
return true;
|
|
82
|
+
// A9 — a LIBRARY-declared East-producing member call: the method/property is
|
|
83
|
+
// declared in a `.d.ts` (a compiled package — e.g. east-ui's Navigation
|
|
84
|
+
// `routes.Page.overview()` constructors on a project-local `Navigation.config`
|
|
85
|
+
// object) AND the call's result is an East `Expr`. A TS macro authored in
|
|
86
|
+
// project SOURCE (.ts/.tsx) never matches — its declaration is not a
|
|
87
|
+
// declaration file — so the rule still flags it.
|
|
88
|
+
if (t.isPropertyAccessExpression(f) && isLibDeclaredEastCall(call, f, ctx))
|
|
89
|
+
return true;
|
|
90
|
+
// A10 — literal STRING assembly (`["…", "…"].join("\n")`): every leaf of the
|
|
91
|
+
// call is a literal and the result is a string — authoring a multi-line/joined
|
|
92
|
+
// string CONSTANT at declaration time, which the host is for. Non-string folds
|
|
93
|
+
// (`[1n, 2n].indexOf(2n)`) stay flagged: computing over collections is East's
|
|
94
|
+
// job even when the operands happen to be literals.
|
|
95
|
+
if (isConstantFoldCall(call, ctx))
|
|
96
|
+
return true;
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
/** A call whose whole subtree is literals — no identifier reference, no template
|
|
100
|
+
* substitution, no East `Expr` — producing a plain STRING constant. (The member
|
|
101
|
+
* name of a property-access callee, `.join`, is not a reference.) */
|
|
102
|
+
function isConstantFoldCall(call, ctx) {
|
|
103
|
+
const t = ctx.ts;
|
|
104
|
+
if ((ctx.checker.getTypeAtLocation(call).flags & t.TypeFlags.StringLike) === 0)
|
|
105
|
+
return false;
|
|
106
|
+
let constant = true;
|
|
107
|
+
const visit = (n) => {
|
|
108
|
+
if (!constant)
|
|
109
|
+
return;
|
|
110
|
+
if (t.isIdentifier(n)) {
|
|
111
|
+
const p = n.parent;
|
|
112
|
+
if (p !== undefined && t.isPropertyAccessExpression(p) && p.name === n)
|
|
113
|
+
return;
|
|
114
|
+
constant = false;
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (t.isTemplateExpression(n)) {
|
|
118
|
+
constant = false;
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
t.forEachChild(n, visit);
|
|
122
|
+
};
|
|
123
|
+
visit(call);
|
|
124
|
+
return constant;
|
|
125
|
+
}
|
|
126
|
+
/** Is the accessed member LIBRARY API, with the call result an East `Expr`?
|
|
127
|
+
* (See clause A9.) Library API is established two ways: the member (or the
|
|
128
|
+
* receiver's named type — the property symbol of a mapped type is synthesized)
|
|
129
|
+
* is declared in a PACKAGE declaration file, or the receiver object's VALUE was
|
|
130
|
+
* built by an `@elaraai/*` factory call (`const routes = Navigation.config({…})`
|
|
131
|
+
* — the boundary test the .d.ts check can't make when the library's own source
|
|
132
|
+
* is in-program, e.g. the monorepo's self-dogfooding examples). TypeScript's
|
|
133
|
+
* own default libs never count — a JS `Map<string, Expr>` read with `.get(k)`
|
|
134
|
+
* is host-keyed East data (the abuse), not a library East API. */
|
|
135
|
+
function isLibDeclaredEastCall(call, f, ctx) {
|
|
136
|
+
if (!isEastExprType(ctx.checker.getTypeAtLocation(call)))
|
|
137
|
+
return false;
|
|
138
|
+
const inPackageDts = (sym) => (sym?.declarations ?? []).some((d) => {
|
|
139
|
+
const sf = d.getSourceFile();
|
|
140
|
+
if (!sf.isDeclarationFile)
|
|
141
|
+
return false;
|
|
142
|
+
if (ctx.program !== undefined)
|
|
143
|
+
return !ctx.program.isSourceFileDefaultLibrary(sf);
|
|
144
|
+
return !/\/lib\.[^/]*\.d\.ts$/.test(sf.fileName);
|
|
145
|
+
});
|
|
146
|
+
if (inPackageDts(ctx.checker.getSymbolAtLocation(f)))
|
|
147
|
+
return true;
|
|
148
|
+
const receiverType = ctx.checker.getTypeAtLocation(f.expression);
|
|
149
|
+
if (inPackageDts(receiverType.aliasSymbol ?? receiverType.symbol))
|
|
150
|
+
return true;
|
|
151
|
+
return rootBuiltByEastFactory(chainRootReceiver(f, ctx), ctx);
|
|
152
|
+
}
|
|
153
|
+
/** Does `root` resolve (through import aliases) to a `const` whose initializer
|
|
154
|
+
* is a call chain rooted in an `@elaraai/*` import — an object BUILT BY an East
|
|
155
|
+
* library factory, whose members are therefore library API? */
|
|
156
|
+
function rootBuiltByEastFactory(root, ctx) {
|
|
157
|
+
const t = ctx.ts;
|
|
158
|
+
if (!t.isIdentifier(root))
|
|
159
|
+
return false;
|
|
160
|
+
let sym = ctx.checker.getSymbolAtLocation(root);
|
|
161
|
+
if (sym !== undefined && (sym.flags & t.SymbolFlags.Alias) !== 0) {
|
|
162
|
+
sym = ctx.checker.getAliasedSymbol(sym);
|
|
163
|
+
}
|
|
164
|
+
const decl = sym?.valueDeclaration;
|
|
165
|
+
if (decl === undefined || !t.isVariableDeclaration(decl) || decl.initializer === undefined)
|
|
166
|
+
return false;
|
|
167
|
+
let init = decl.initializer;
|
|
168
|
+
while (t.isParenthesizedExpression(init))
|
|
169
|
+
init = init.expression;
|
|
170
|
+
if (!t.isCallExpression(init))
|
|
171
|
+
return false;
|
|
172
|
+
const initRoot = chainRootReceiver(init.expression, ctx);
|
|
173
|
+
return t.isIdentifier(initRoot) && resolvesToEastImport(initRoot, ctx.checker, t);
|
|
174
|
+
}
|
|
175
|
+
/** A call that composes JSX: it is passed JSX directly (`rows.push(<Chip/>)`),
|
|
176
|
+
* an argument is a function literal returning JSX (`days.map((d) => <Chip/>)`),
|
|
177
|
+
* or its callee resolves to a function/arrow whose returns include JSX. The
|
|
178
|
+
* declaration side of these helpers is exempted by clause E — the call side
|
|
179
|
+
* must be too, or binding composed JSX to a `const` before use would flag. */
|
|
180
|
+
function isJsxCompositionCall(call, ctx) {
|
|
181
|
+
const t = ctx.ts;
|
|
182
|
+
if (call.arguments.some((a) => isJsx(a, t) || ((t.isArrowFunction(a) || t.isFunctionExpression(a)) && returnExpressions(a, t).some((r) => isJsx(r, t))))) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
const f = call.expression;
|
|
186
|
+
if (!t.isIdentifier(f))
|
|
187
|
+
return false;
|
|
188
|
+
const sym = ctx.checker.getSymbolAtLocation(f);
|
|
189
|
+
for (const d of sym?.declarations ?? []) {
|
|
190
|
+
let fn;
|
|
191
|
+
if (t.isFunctionDeclaration(d) && d.body !== undefined)
|
|
192
|
+
fn = d;
|
|
193
|
+
else if (t.isVariableDeclaration(d) &&
|
|
194
|
+
d.initializer !== undefined &&
|
|
195
|
+
(t.isArrowFunction(d.initializer) || t.isFunctionExpression(d.initializer))) {
|
|
196
|
+
fn = d.initializer;
|
|
197
|
+
}
|
|
198
|
+
if (fn !== undefined && returnExpressions(fn, t).some((r) => isJsx(r, t)))
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
96
201
|
return false;
|
|
97
202
|
}
|
|
98
203
|
function isEast(expr, ctx) {
|
|
99
204
|
return isEastExprType(ctx.checker.getTypeAtLocation(expr));
|
|
100
205
|
}
|
|
101
|
-
/** Is `node` inside JSX
|
|
102
|
-
function
|
|
206
|
+
/** Is `node` inside JSX *within its own function scope* — a JSX construct met
|
|
207
|
+
* walking up BEFORE any function boundary? Direct JSX composition (element
|
|
208
|
+
* children, attribute value expressions) is markup, out of scope for
|
|
209
|
+
* host-vs-East checks. But EVERY callback nested inside JSX is code again —
|
|
210
|
+
* a `<Reactive>{$ => …}` block, a `data.map(($, x) => …)` projection, and
|
|
211
|
+
* equally a host callback computing data in an attribute
|
|
212
|
+
* (`items={Array.from(…, (_, i) => …)}`): inside an East function the data
|
|
213
|
+
* must be East all the way down, so the JSX ancestor beyond a callback
|
|
214
|
+
* boundary exempts nothing. Authoring-time constants belong at module scope
|
|
215
|
+
* (or as East generation — `East.Array.range(…).map(($, i) => …)`). */
|
|
216
|
+
function insideJsx(node, ctx) {
|
|
217
|
+
const t = ctx.ts;
|
|
103
218
|
let cur = node.parent;
|
|
104
219
|
while (cur !== undefined) {
|
|
105
220
|
if (t.isJsxElement(cur) || t.isJsxSelfClosingElement(cur) || t.isJsxFragment(cur) || t.isJsxExpression(cur) || t.isJsxAttribute(cur)) {
|
|
106
221
|
return true;
|
|
107
222
|
}
|
|
223
|
+
if (t.isArrowFunction(cur) || t.isFunctionExpression(cur) || t.isFunctionDeclaration(cur) || t.isMethodDeclaration(cur)) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
108
226
|
cur = cur.parent;
|
|
109
227
|
}
|
|
110
228
|
return false;
|
|
@@ -158,7 +276,7 @@ export const noHostInEastBlock = {
|
|
|
158
276
|
const t = ctx.ts;
|
|
159
277
|
if (!insideBlockScope(node, ctx))
|
|
160
278
|
return;
|
|
161
|
-
if (insideJsx(node,
|
|
279
|
+
if (insideJsx(node, ctx))
|
|
162
280
|
return;
|
|
163
281
|
// Clause E — a TS closure/function DECLARED inside an East block (a `const`
|
|
164
282
|
// arrow, a function-expression, or a `function` declaration). It is an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-host-in-east-block.js","sourceRoot":"","sources":["../../../src/rules/no-host-in-east-block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"no-host-in-east-block.js","sourceRoot":"","sources":["../../../src/rules/no-host-in-east-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-module-scope-east-macro.d.ts","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"no-module-scope-east-macro.d.ts","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAqGnE,eAAO,MAAM,sBAAsB,EAAE,QAwDpC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isEastExprType, isBlockBuilderType } from "../east-type.js";
|
|
1
|
+
import { isEastExprType, isBlockBuilderType, isEastDefinitionType } from "../east-type.js";
|
|
2
2
|
import { insideBlockScope } from "../block-scope.js";
|
|
3
3
|
import { chainRootReceiver } from "../east-ir.js";
|
|
4
4
|
import { importsEastPackage } from "../east-source.js";
|
|
@@ -57,6 +57,13 @@ function returnBuildsEast(r, ctx) {
|
|
|
57
57
|
const t = ctx.ts;
|
|
58
58
|
if (isJsx(r, t))
|
|
59
59
|
return false;
|
|
60
|
+
// A DECLARATION factory — a helper returning an e3 definition (`e3.task(…)` →
|
|
61
|
+
// `TaskDef`, `e3.input(…)` → `DatasetDef`, …) or a platform definition
|
|
62
|
+
// (`East.platform(…)`) — composes the program's structure, which is exactly
|
|
63
|
+
// what the host language is FOR. It is not a value macro, even though the
|
|
64
|
+
// definition it returns has East builders (an `East.function` body) inside.
|
|
65
|
+
if (isEastDefinitionType(ctx.checker.getTypeAtLocation(r)))
|
|
66
|
+
return false;
|
|
60
67
|
if (isEastValueConstructor(r, t))
|
|
61
68
|
return true;
|
|
62
69
|
if (isEastExprType(ctx.checker.getTypeAtLocation(r)))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-module-scope-east-macro.js","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-module-scope-east-macro.js","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-state-outside-reactive.d.ts","sourceRoot":"","sources":["../../../src/rules/no-state-outside-reactive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AA+BzD,eAAO,MAAM,sBAAsB,EAAE,QA4BpC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { enclosingBlockScope, insideReactive } from "../block-scope.js";
|
|
2
|
+
import { resolvesToEastImport } from "../east-source.js";
|
|
3
|
+
const NAME = "no-state-outside-reactive";
|
|
4
|
+
const CODE = 990024;
|
|
5
|
+
/** Is the outermost East block scope of `node` the fn argument of a `ui(…)`
|
|
6
|
+
* call (the SURFACE ROOT)? A cross-file composition helper (an `East.function`
|
|
7
|
+
* whose subtree the caller mounts inside its own `<Reactive>`) cannot be judged
|
|
8
|
+
* lexically — only at the provable root is a missing Reactive definitely wrong. */
|
|
9
|
+
function atUiSurfaceRoot(node, ctx) {
|
|
10
|
+
const t = ctx.ts;
|
|
11
|
+
const outermost = enclosingBlockScope(node, ctx);
|
|
12
|
+
// Only the `ui(…, East.function(…))` form is judgeable — the outermost scope
|
|
13
|
+
// is then the `East.function(...)` CALL sitting in `ui`'s argument list.
|
|
14
|
+
if (outermost === undefined || !t.isCallExpression(outermost))
|
|
15
|
+
return false;
|
|
16
|
+
const parent = outermost.parent;
|
|
17
|
+
if (parent === undefined || !t.isCallExpression(parent))
|
|
18
|
+
return false;
|
|
19
|
+
if (!parent.arguments.some((a) => a === outermost))
|
|
20
|
+
return false;
|
|
21
|
+
const callee = parent.expression;
|
|
22
|
+
return t.isIdentifier(callee) && callee.text === "ui" && resolvesToEastImport(callee, ctx.checker, t);
|
|
23
|
+
}
|
|
24
|
+
// east-ui `State.*` platform calls (State.bind and friends) must run inside a
|
|
25
|
+
// `<Reactive>` inner builder: outside one, the platform call makes the whole UI
|
|
26
|
+
// function async at analysis time and the deploy analyzer REJECTS it — or the
|
|
27
|
+
// surface silently never re-renders. Type-checks fine either way, so catch it
|
|
28
|
+
// at authoring time. Scoped to the provable SURFACE ROOT (the fn passed to
|
|
29
|
+
// `ui(…)`): a composition helper in another function may be mounted inside the
|
|
30
|
+
// caller's <Reactive>, which a lexical check cannot see.
|
|
31
|
+
export const noStateOutsideReactive = {
|
|
32
|
+
name: NAME,
|
|
33
|
+
code: CODE,
|
|
34
|
+
description: "east-ui State.* must live inside a <Reactive> builder — outside one the UI function becomes async and is rejected at deploy time.",
|
|
35
|
+
check(node, ctx) {
|
|
36
|
+
const t = ctx.ts;
|
|
37
|
+
if (!t.isCallExpression(node))
|
|
38
|
+
return;
|
|
39
|
+
const callee = node.expression;
|
|
40
|
+
if (!t.isPropertyAccessExpression(callee))
|
|
41
|
+
return;
|
|
42
|
+
if (!t.isIdentifier(callee.expression) || callee.expression.text !== "State")
|
|
43
|
+
return;
|
|
44
|
+
// Only the east-ui State namespace — resolved by symbol, not name alone.
|
|
45
|
+
if (!resolvesToEastImport(callee.expression, ctx.checker, t))
|
|
46
|
+
return;
|
|
47
|
+
if (!atUiSurfaceRoot(node, ctx))
|
|
48
|
+
return;
|
|
49
|
+
if (insideReactive(node, t))
|
|
50
|
+
return;
|
|
51
|
+
const sf = ctx.sourceFile;
|
|
52
|
+
const start = node.getStart(sf);
|
|
53
|
+
ctx.report({
|
|
54
|
+
ruleName: NAME,
|
|
55
|
+
code: CODE,
|
|
56
|
+
start,
|
|
57
|
+
length: node.getEnd() - start,
|
|
58
|
+
messageText: `\`State.${callee.name.text}\` outside a \`<Reactive>\` builder makes this UI function async at analysis time — the deploy analyzer rejects it (or the surface never re-renders). Move all \`State.*\` into the \`<Reactive>{$ => …}\` inner builder.`,
|
|
59
|
+
category: "warning",
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=no-state-outside-reactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-state-outside-reactive.js","sourceRoot":"","sources":["../../../src/rules/no-state-outside-reactive.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB;;;mFAGmF;AACnF,SAAS,eAAe,CAAC,IAAa,EAAE,GAAgB;IACtD,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;IACjB,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IACjC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EACT,mIAAmI;IACrI,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO;QACrF,yEAAyE;QACzE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO;QACrE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO;QACxC,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAAE,OAAO;QAEpC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;YAC7B,WAAW,EACT,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,2NAA2N;YACxP,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { EastRule } from "../types.js";
|
|
6
|
+
export declare const preferConstUiCallbacks: EastRule;
|
|
7
|
+
//# sourceMappingURL=prefer-const-ui-callbacks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-const-ui-callbacks.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-const-ui-callbacks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAa5C,eAAO,MAAM,sBAAsB,EAAE,QAkCpC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { insideBlockScope, insideReactive } from "../block-scope.js";
|
|
2
|
+
const NAME = "prefer-const-ui-callbacks";
|
|
3
|
+
const CODE = 990025;
|
|
4
|
+
// An event-handler `East.function` authored INLINE in a JSX prop inside a
|
|
5
|
+
// `<Reactive>` scope is a fresh function value on every reactive re-render —
|
|
6
|
+
// and East's `equalFor` treats all functions as equal, so a memoized renderer
|
|
7
|
+
// cannot see the swap (stale handler / forced remount). Bind it once with
|
|
8
|
+
// `$.const` and pass the handle: one identity, evaluated once, serialized
|
|
9
|
+
// once. (A static, non-Reactive tree builds the handler once at IR build — the
|
|
10
|
+
// hazard doesn't exist there, so it is not flagged.)
|
|
11
|
+
export const preferConstUiCallbacks = {
|
|
12
|
+
name: NAME,
|
|
13
|
+
code: CODE,
|
|
14
|
+
description: "Inside <Reactive>, bind JSX event handlers with $.const and pass the handle — an inline East.function prop is rebuilt each re-render and memoized renderers can't see the swap.",
|
|
15
|
+
check(node, ctx) {
|
|
16
|
+
const t = ctx.ts;
|
|
17
|
+
if (!t.isCallExpression(node))
|
|
18
|
+
return;
|
|
19
|
+
const callee = node.expression;
|
|
20
|
+
if (!t.isPropertyAccessExpression(callee))
|
|
21
|
+
return;
|
|
22
|
+
if (!t.isIdentifier(callee.expression) || callee.expression.text !== "East")
|
|
23
|
+
return;
|
|
24
|
+
if (callee.name.text !== "function" && callee.name.text !== "asyncFunction")
|
|
25
|
+
return;
|
|
26
|
+
// Directly the value of a JSX attribute: `onX={East.function(…)}`.
|
|
27
|
+
const parent = node.parent;
|
|
28
|
+
if (parent === undefined || !t.isJsxExpression(parent) || parent.expression !== node)
|
|
29
|
+
return;
|
|
30
|
+
const attr = parent.parent;
|
|
31
|
+
if (attr === undefined || !t.isJsxAttribute(attr))
|
|
32
|
+
return;
|
|
33
|
+
if (!insideBlockScope(node, ctx))
|
|
34
|
+
return;
|
|
35
|
+
// The identity hazard is a RE-RENDER hazard — only Reactive scopes re-render.
|
|
36
|
+
if (!insideReactive(node, t))
|
|
37
|
+
return;
|
|
38
|
+
const sf = ctx.sourceFile;
|
|
39
|
+
const start = callee.getStart(sf);
|
|
40
|
+
ctx.report({
|
|
41
|
+
ruleName: NAME,
|
|
42
|
+
code: CODE,
|
|
43
|
+
start,
|
|
44
|
+
length: callee.getEnd() - start,
|
|
45
|
+
messageText: `Inline \`East.${callee.name.text}\` in the \`${attr.name.getText(sf)}\` prop is rebuilt on every render, and \`equalFor\` treats all functions as equal so memoized renderers can't see the swap. Bind it once — \`const handler = $.const(East.${callee.name.text}(…))\` — and pass the handle.`,
|
|
46
|
+
category: "suggestion",
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=prefer-const-ui-callbacks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-const-ui-callbacks.js","sourceRoot":"","sources":["../../../src/rules/prefer-const-ui-callbacks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EACT,iLAAiL;IACnL,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QACpF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO;QAEpF,mEAAmE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO;QAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO;QAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO;QACzC,8EAA8E;QAC9E,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAAE,OAAO;QAErC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK;YAC/B,WAAW,EACT,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,8KAA8K,MAAM,CAAC,IAAI,CAAC,IAAI,+BAA+B;YACpS,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-some-none.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-some-none.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ5C,eAAO,MAAM,cAAc,EAAE,QAgC5B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolvesToEastImport } from "../east-source.js";
|
|
1
2
|
const NAME = "prefer-some-none";
|
|
2
3
|
const CODE = 990003;
|
|
3
4
|
// `some(x)` / `none` are the canonical Option constructors; `variant("some", x)`
|
|
@@ -13,6 +14,10 @@ export const preferSomeNone = {
|
|
|
13
14
|
const callee = node.expression;
|
|
14
15
|
if (!t.isIdentifier(callee) || callee.text !== "variant")
|
|
15
16
|
return;
|
|
17
|
+
// Only the East `variant` — an unrelated local function that happens to be
|
|
18
|
+
// called `variant` (in a file that never touches East) is not our business.
|
|
19
|
+
if (!resolvesToEastImport(callee, ctx.checker, t))
|
|
20
|
+
return;
|
|
16
21
|
const first = node.arguments[0];
|
|
17
22
|
if (first === undefined || !t.isStringLiteralLike(first))
|
|
18
23
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-some-none.js","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prefer-some-none.js","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,mEAAmE;IAChF,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACjE,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,OAAO;QACjE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAE7C,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;YAC7B,WAAW,EACT,GAAG,KAAK,MAAM;gBACZ,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,gDAAgD;YACtD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-example-returns.d.ts","sourceRoot":"","sources":["../../../src/rules/require-example-returns.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AAwBtD,eAAO,MAAM,qBAAqB,EAAE,QAkCnC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { resolvesToEastImport } from "../east-source.js";
|
|
2
|
+
const NAME = "require-example-returns";
|
|
3
|
+
const CODE = 990030;
|
|
4
|
+
// Output types for which omitting `returns` is the DOCUMENTED convention: a
|
|
5
|
+
// side-effect example (Null) and a UI example (component trees aren't asserted
|
|
6
|
+
// by value).
|
|
7
|
+
const RETURNS_EXEMPT = new Set(["NullType", "UIComponentType"]);
|
|
8
|
+
function propNamed(obj, name, t) {
|
|
9
|
+
for (const p of obj.properties) {
|
|
10
|
+
if (t.isPropertyAssignment(p) && (t.isIdentifier(p.name) || t.isStringLiteralLike(p.name)) && p.name.text === name) {
|
|
11
|
+
return p;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
// `example({ …, fn, inputs })` WITHOUT `returns` makes the harness run `fn` as
|
|
17
|
+
// a bare statement — the "test" false-passes forever, and the example ships to
|
|
18
|
+
// the plugin search index unverified. Omission is only legitimate for NullType
|
|
19
|
+
// (side-effect) and UIComponentType outputs.
|
|
20
|
+
export const requireExampleReturns = {
|
|
21
|
+
name: NAME,
|
|
22
|
+
code: CODE,
|
|
23
|
+
description: "example() must declare `returns` unless the fn output is NullType/UIComponentType — omitting it false-passes the example's assertion.",
|
|
24
|
+
check(node, ctx) {
|
|
25
|
+
const t = ctx.ts;
|
|
26
|
+
if (!t.isCallExpression(node))
|
|
27
|
+
return;
|
|
28
|
+
const callee = node.expression;
|
|
29
|
+
if (!t.isIdentifier(callee) || callee.text !== "example")
|
|
30
|
+
return;
|
|
31
|
+
if (!resolvesToEastImport(callee, ctx.checker, t))
|
|
32
|
+
return;
|
|
33
|
+
const arg = node.arguments[0];
|
|
34
|
+
if (arg === undefined || !t.isObjectLiteralExpression(arg))
|
|
35
|
+
return;
|
|
36
|
+
if (propNamed(arg, "returns", t) !== undefined)
|
|
37
|
+
return;
|
|
38
|
+
// The fn's declared output type (2nd East.function argument). A complex
|
|
39
|
+
// output expression still needs `returns`; only the exempt identifiers pass.
|
|
40
|
+
const fnProp = propNamed(arg, "fn", t);
|
|
41
|
+
if (fnProp === undefined || !t.isCallExpression(fnProp.initializer))
|
|
42
|
+
return;
|
|
43
|
+
const outputArg = fnProp.initializer.arguments[1];
|
|
44
|
+
if (outputArg !== undefined && t.isIdentifier(outputArg) && RETURNS_EXEMPT.has(outputArg.text))
|
|
45
|
+
return;
|
|
46
|
+
const sf = ctx.sourceFile;
|
|
47
|
+
const start = callee.getStart(sf);
|
|
48
|
+
ctx.report({
|
|
49
|
+
ruleName: NAME,
|
|
50
|
+
code: CODE,
|
|
51
|
+
start,
|
|
52
|
+
length: callee.getEnd() - start,
|
|
53
|
+
messageText: "This `example()` has no `returns` — the harness runs `fn` as a bare statement and the assertion false-passes. Add the hand-verified `returns` value (omit it ONLY for NullType / UIComponentType outputs).",
|
|
54
|
+
category: "warning",
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=require-example-returns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-example-returns.js","sourceRoot":"","sources":["../../../src/rules/require-example-returns.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,4EAA4E;AAC5E,+EAA+E;AAC/E,aAAa;AACb,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAEhE,SAAS,SAAS,CAAC,GAA+B,EAAE,IAAY,EAAE,CAAW;IAC3E,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACnH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EACT,uIAAuI;IACzI,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACjE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAAE,OAAO;QACnE,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO;QAEvD,wEAAwE;QACxE,6EAA6E;QAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,OAAO;QAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAEvG,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK;YAC/B,WAAW,EACT,4MAA4M;YAC9M,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-runner-platforms.d.ts","sourceRoot":"","sources":["../../../src/rules/require-runner-platforms.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAmEnE,eAAO,MAAM,sBAAsB,EAAE,QA+BpC,CAAC"}
|