diff --git a/libraries/codemirror/eslint.js b/libraries/codemirror/eslint.js
index 55f367884..403cb4e54 100644
--- a/libraries/codemirror/eslint.js
+++ b/libraries/codemirror/eslint.js
@@ -41,7 +41,7 @@
return [];
}
- const errors = await glob.linter(text);
+ const errors = await glob.linter(text, glob.getActiveContextNote().mime);
console.log(errors);
diff --git a/src/public/app/services/eslint.spec.ts b/src/public/app/services/eslint.spec.ts
index cc21746bd..74e6edabd 100644
--- a/src/public/app/services/eslint.spec.ts
+++ b/src/public/app/services/eslint.spec.ts
@@ -45,4 +45,9 @@ describe("Linter", () => {
}
]);
});
+
+ it("supports JQuery global", async () => {
+ expect(await lint(`$("
");`, "application/javascript;env=backend")).toMatchObject([{ "ruleId": "no-undef" }]);
+ expect(await lint(`console.log($("
"));`, "application/javascript;env=frontend")).toStrictEqual([]);
+ });
});
diff --git a/src/public/app/services/eslint.ts b/src/public/app/services/eslint.ts
index 33949b116..6ccb0c9bf 100644
--- a/src/public/app/services/eslint.ts
+++ b/src/public/app/services/eslint.ts
@@ -1,8 +1,19 @@
-export async function lint(code: string) {
+export async function lint(code: string, mimeType: string) {
const Linter = (await import("eslint-linter-browserify")).Linter;
const js = (await import("@eslint/js"));
- const globals = (await import("globals"));
+ const globalDefinitions = (await import("globals"));
+
+ let globals: Record = {
+ ...globalDefinitions.browser,
+ api: "readonly"
+ };
+
+ if (mimeType === "application/javascript;env=frontend") {
+ globals = { ...globals, ...globalDefinitions.jquery };
+ } else if (mimeType === "application/javascript;env=backend") {
+
+ }
return new Linter().verify(code, [
js.configs.recommended,
@@ -11,10 +22,7 @@ export async function lint(code: string) {
parserOptions: {
ecmaVersion: 2024
},
- globals: {
- ...globals.browser,
- api: "readonly"
- },
+ globals
},
rules: {
"no-unused-vars": [ "warn", { vars: "local", args: "after-used" }]