2024-04-25 15:29:44 +00:00
|
|
|
import js from "@eslint/js";
|
|
|
|
import globals from "globals";
|
|
|
|
|
|
|
|
export default [
|
|
|
|
js.configs.recommended,
|
|
|
|
|
|
|
|
{
|
|
|
|
// Global ignores
|
|
|
|
ignores: [
|
|
|
|
"**/*.min.js",
|
|
|
|
"**/src/lib/**",
|
|
|
|
"**/dist/",
|
2024-07-07 19:44:48 +00:00
|
|
|
"src/backend/src/public/assets/**",
|
2024-07-07 20:58:29 +00:00
|
|
|
"incubator/**"
|
2024-04-25 15:29:44 +00:00
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// Top-level and tools use Node
|
|
|
|
files: [
|
|
|
|
"tools/**/*.js",
|
|
|
|
],
|
|
|
|
languageOptions: {
|
|
|
|
globals: {
|
|
|
|
...globals.node,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// Back end
|
|
|
|
files: [
|
2024-07-07 19:44:48 +00:00
|
|
|
"src/backend/**/*.js",
|
2024-06-24 10:44:15 +00:00
|
|
|
"mods/**/*.js",
|
2024-04-25 15:29:44 +00:00
|
|
|
"dev-server.js",
|
|
|
|
"utils.js",
|
|
|
|
],
|
|
|
|
languageOptions: {
|
|
|
|
globals: {
|
|
|
|
...globals.node,
|
|
|
|
"kv": true,
|
2024-06-09 00:53:39 +00:00
|
|
|
"def": true,
|
|
|
|
"use": true,
|
2024-06-15 20:14:55 +00:00
|
|
|
"ll":true,
|
2024-04-25 15:29:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// Front end
|
|
|
|
files: [
|
|
|
|
"src/**/*.js",
|
|
|
|
],
|
|
|
|
ignores: [
|
2024-07-07 19:44:48 +00:00
|
|
|
"src/backend/**/*.js",
|
2024-04-25 15:29:44 +00:00
|
|
|
],
|
|
|
|
languageOptions: {
|
|
|
|
globals: {
|
|
|
|
...globals.browser,
|
|
|
|
...globals.commonjs,
|
|
|
|
"puter": true,
|
|
|
|
"i18n": true,
|
|
|
|
"html_encode": true,
|
|
|
|
"html_decode": true,
|
|
|
|
"isMobile": true,
|
2024-05-28 22:50:00 +00:00
|
|
|
// Class Registry
|
|
|
|
"logger": true,
|
|
|
|
"def": true,
|
|
|
|
"use": true,
|
2024-04-25 15:29:44 +00:00
|
|
|
// Libraries
|
|
|
|
"saveAs": true, // FileSaver
|
|
|
|
"iro": true, // iro.js color picker
|
|
|
|
"$": true, // jQuery
|
|
|
|
"jQuery": true, // jQuery
|
|
|
|
"JSZip": true, // JSZip
|
|
|
|
"_": true, // lodash
|
|
|
|
"QRCode": true, // qrcode
|
|
|
|
"io": true, // socket.io
|
|
|
|
"timeago": true, // timeago
|
|
|
|
"SelectionArea": true, // viselect
|
2024-06-15 02:01:06 +00:00
|
|
|
// Puter GUI Globals
|
|
|
|
"set_menu_item_prop": true,
|
|
|
|
"determine_active_container_parent": true,
|
2024-06-15 03:22:12 +00:00
|
|
|
"privacy_aware_path": true,
|
2024-06-16 20:19:07 +00:00
|
|
|
"api_origin": true,
|
|
|
|
"auth_token": true,
|
|
|
|
"logout": true,
|
|
|
|
"is_email": true,
|
|
|
|
"select_ctxmenu_item": true,
|
2024-04-25 15:29:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2024-06-24 10:44:15 +00:00
|
|
|
{
|
|
|
|
// Mods
|
|
|
|
// NOTE: Mods have backend and frontend parts, so this just includes the globals for both.
|
|
|
|
files: [
|
|
|
|
"mods/**/*.js",
|
|
|
|
],
|
|
|
|
languageOptions: {
|
|
|
|
globals: {
|
|
|
|
...globals.node,
|
|
|
|
"use": true,
|
|
|
|
"window": true,
|
|
|
|
"puter": true,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2024-04-25 15:29:44 +00:00
|
|
|
{
|
|
|
|
// Tests
|
|
|
|
files: [
|
|
|
|
"**/test/**/*.js",
|
|
|
|
],
|
|
|
|
languageOptions: {
|
|
|
|
globals: {
|
|
|
|
...globals.mocha,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// Phoenix
|
|
|
|
files: [
|
2024-07-07 19:44:48 +00:00
|
|
|
"src/phoenix/**/*.js",
|
2024-04-25 15:29:44 +00:00
|
|
|
],
|
|
|
|
languageOptions: {
|
|
|
|
globals: {
|
|
|
|
...globals.node,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// Global rule settings
|
|
|
|
rules: {
|
|
|
|
"no-prototype-builtins": "off", // Complains about any use of hasOwnProperty()
|
|
|
|
"no-unused-vars": "off", // Temporary, we just have a lot of these
|
|
|
|
"no-debugger": "warn",
|
|
|
|
"no-async-promise-executor": "off", // We do this quite often and it's fine
|
|
|
|
}
|
|
|
|
},
|
|
|
|
];
|