JavaScript APIs v0.7.1
CLI
New features
-
GritQL queries that match functions or methods will now match async functions or methods as well.
If this is not what you want, you can capture the
async
keyword (or its absence) in a metavariable and assert its emptiness:$async function foo() {} where $async <: .
Contributed by @arendjr
Bug fixes
-
Fix #4077: Grit queries no longer need to match the statement's trailing semicolon. Contributed by @arendjr
-
Fix #4102. Now the CLI command
lint
doesn't exit with an error code when using--write
/--fix
. Contributed by @ematipico
Configuration
Bug fixes
- Fix #4125, where
noLabelWithoutControl
options where incorrectly marked as mandatory. Contributed by @ematipico
Editors
- Fix a case where CSS files weren't correctly linted using the default configuration. Contributed by @ematipico
Formatter
Bug fixes
-
Fix #3924 where GraphQL formatter panics in block comments with empty line. Contributed by @vohoanglong0107
-
Fix a case where raw values inside
url()
functions weren't properly trimmed..value { - background: url( - whitespace-around-string - ); + background: url(whitespace-around-string); }
Contributed by @ematipico
-
Fixed #4076, where a media query wasn't correctly formatted:
.class { - @media (1024px <= width <=1280px) { + @media (1024px <= width <= 1280px) { color: red; } }
Contributed by @blaze-d83
JavaScript API
Bug fixes
- Fix #3881, by updating the APIs to use the latest WASM changes. Contributed by @ematipico
Linter
New features
-
Add noDescendingSpecificity. Contributed by @tunamaguro
-
Add noNestedTernary. Contributed by @kaykdm
-
Add noTemplateCurlyInString. Contributed by @fireairforce
-
Add noOctalEscape. Contributed by @fireairforce
Bug fixes
-
noControlCharactersInRegex no longer panics on regexes with incomplete escape sequences. Contributed by @Conaclos
-
noMisleadingCharacterClass no longer reports issues outside of character classes.
The following code is no longer reported:
/[a-z]👍/;
Contributed by @Conaclos
-
noUndeclaredDependencies no longer reports Node.js builtin modules as undeclared dependencies.
The rule no longer reports the following code:
import * as fs from "fs";
Contributed by @Conaclos
-
noUnusedVariables no longer panics when suggesting the renaming of a variable at the start of a file (#4114). Contributed by @Conaclos
-
noUselessEscapeInRegex no longer panics on regexes that start with an empty character class. Contributed by @Conaclos
-
noUselessStringConcat no longer panics when it encounters malformed code. Contributed by @Conaclos
-
noUnusedFunctionParameters no longer reports unused parameters inside an object pattern with a rest parameter.
In the following code, the rule no longer reports
a
as unused.function f({ a, ...rest }) { return rest; }
This matches the behavior of noUnusedVariables.
Contributed by @Conaclos
-
useButtonType no longer reports dynamically created button with a valid type (#4072).
The following code is no longer reported:
React.createElement("button", { type: "button" }, "foo")
Contributed by @Conaclos
-
useSemanticElements now ignores elements with the
img
role (#3994).MDN recommends using
role="img"
for grouping images or creating an image from other elements.
The following code is no longer reported:<div role="img" aria-label="That cat is so cute"> <p>🐈 😂</p> </div>
Contributed by @Conaclos
-
useSemanticElements now ignores
alert
andalertdialog
roles (#3858). Contributed by @Conaclos -
noUselessFragments don't create invaild JSX code when Fragments children contains JSX Expression and in a LogicalExpression. Contributed by @fireairforce
Parser
Bug fixes
- Forbid undefined as type name for typescript parser. Contributed by @fireairforce
What's Changed
Other changes
- ci: fix js API release workflow by @ematipico in #4151
- fix(js-api): pass correct information by @ematipico in #4152
Full Changelog: cli/v1.9.3...js-api/v0.7.1