Skip to content

Commit 6dda5b1

Browse files
committed
Updated standalone and its tests to flat config.
1 parent 7b81ba5 commit 6dda5b1

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

standalone/index.js

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,28 @@ import memoizeOne from "memoize-one";
77
// Create linter instance
88
const linter = new Linter();
99

10-
// Define all rules from `eslint-plugin-solid`
11-
Object.keys(plugin.rules).forEach((key) => {
12-
linter.defineRule(`solid/${key}`, plugin.rules[key]);
13-
});
14-
15-
// Define TS parser
16-
linter.defineParser("@typescript-eslint/parser", parser);
17-
1810
const getConfig = memoizeOne((ruleSeverityOverrides) => {
19-
const config = {
20-
parser: "@typescript-eslint/parser",
21-
parserOptions: {
22-
ecmaFeatures: {
23-
jsx: true,
11+
const config = [
12+
{
13+
languageOptions: {
14+
parser,
15+
parserOptions: {
16+
ecmaFeatures: {
17+
jsx: true,
18+
},
19+
},
2420
},
21+
...plugin.configs["flat/typescript"],
2522
},
26-
env: {
27-
browser: true,
28-
es6: true,
29-
},
30-
rules: plugin.configs.typescript.rules,
31-
};
23+
];
3224
if (ruleSeverityOverrides) {
3325
// change severity levels of rules based on rules: Record<string, 0 | 1 | 2> arg
3426
Object.keys(ruleSeverityOverrides).forEach((key) => {
35-
if (Object.prototype.hasOwnProperty.call(config.rules, key)) {
36-
if (Array.isArray(config.rules[key])) {
37-
config.rules[key] = [ruleSeverityOverrides[key], ...config.rules[key].slice(1)];
27+
if (Object.prototype.hasOwnProperty.call(config[0].rules, key)) {
28+
if (Array.isArray(config[0].rules[key])) {
29+
config[0].rules[key] = [ruleSeverityOverrides[key], ...config[0].rules[key].slice(1)];
3830
} else {
39-
config.rules[key] = ruleSeverityOverrides[key];
31+
config[0].rules[key] = ruleSeverityOverrides[key];
4032
}
4133
}
4234
});

standalone/test.mjs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import typescript from "typescript";
1212

1313
// inject assert and a hidden _TYPESCRIPT_GLOBAL into global scope
1414
const context = vm.createContext({
15-
assert: assert,
15+
assert,
16+
structuredClone,
1617
_TYPESCRIPT_GLOBAL: typescript,
1718
});
1819

@@ -32,7 +33,7 @@ const test = new vm.SourceTextModule(
3233
import { plugin, pluginVersion, eslintVersion, verify, verifyAndFix } from "dist.js";
3334
3435
// check no Node APIs are present, except injected 'assert' and '_TYPESCRIPT_GLOBAL'
35-
assert.equal(Object.keys(globalThis).length, 2);
36+
assert.equal(Object.keys(globalThis).length, 3);
3637
assert.equal(typeof assert, 'function');
3738
assert.equal(typeof process, 'undefined');
3839
assert.equal(typeof __dirname, 'undefined');
@@ -45,10 +46,11 @@ assert.equal(typeof verify, "function");
4546
assert.equal(typeof verifyAndFix, "function");
4647
4748
// ensure that the standalone runs without crashing and returns results
48-
assert.deepStrictEqual(verify('let el = <div className="red" />'), [
49-
{
49+
assert.deepStrictEqual(
50+
verify('let el = <div className="red" />', { 'solid/no-react-specific-props': 2 }),
51+
[{
5052
ruleId: "solid/no-react-specific-props",
51-
severity: 1,
53+
severity: 2,
5254
message: "Prefer the \`class\` prop over the deprecated \`className\` prop.",
5355
line: 1,
5456
column: 15,
@@ -57,8 +59,8 @@ assert.deepStrictEqual(verify('let el = <div className="red" />'), [
5759
endLine: 1,
5860
endColumn: 30,
5961
fix: { range: [14, 23], text: "class" },
60-
},
61-
]);
62+
}],
63+
);
6264
assert.deepStrictEqual(verifyAndFix('let el = <div className="red" />'), {
6365
fixed: true,
6466
messages: [],

0 commit comments

Comments
 (0)