Skip to content
Snippets Groups Projects
Forked from Frostberg / Degrees of Lewdity Plus
4525 commits behind the upstream repository.
  • Ybyx's avatar
    2e45dda3
    Fix ESLint errors · 2e45dda3
    Ybyx authored
    Bumps all ESLint packages to latest version
    
    Removes restriction on RegExp lookbehind assertions since Safari can do those now
    2e45dda3
    History
    Fix ESLint errors
    Ybyx authored
    Bumps all ESLint packages to latest version
    
    Removes restriction on RegExp lookbehind assertions since Safari can do those now
.eslintrc.cjs 5.30 KiB
module.exports = {
	root: true,

	// Keep variables sorted within groups (separated by "// ..." comment lines)
	globals: {
		// SugarCube APIs
		Browser: "readonly",
		Config: "readonly",
		DebugView: "readonly",
		Dialog: "readonly",
		Engine: "readonly",
		Fullscreen: "readonly",
		L10n: "readonly",
		l10nStrings: "readonly",
		LoadScreen: "readonly",
		Macro: "readonly",
		Save: "readonly",
		Scripting: "readonly",
		Setting: "readonly",
		setup: "readonly",
		State: "readonly",
		Story: "readonly",
		SugarCube: "readonly",
		Template: "readonly",
		UI: "readonly",
		UIBar: "readonly",
		// SugarCube functions
		clone: "readonly",
		either: "readonly",
		forget: "readonly",
		hasVisited: "readonly",
		importScripts: "readonly",
		importStyles: "readonly",
		lastVisited: "readonly",
		memorize: "readonly",
		passage: "readonly",
		previous: "readonly",
		random: "readonly",
		randomFloat: "readonly",
		recall: "readonly",
		setPageElement: "readonly",
		tags: "readonly",
		temporary: "readonly",
		time: "readonly",
		turns: "readonly",
		variables: "readonly",
		visited: "readonly",
		visitedTags: "readonly",
		throwError: "writeable",
		// Dol shortcuts
		C: "readonly",
		DeserializeGame: "readonly",
		globals: "readonly",
		T: "readonly",
		V: "readonly",
		// DoL main namespaces
		DOL: "readonly",
		defineGlobalNamespaces: "readonly",
		Errors: "readonly",
		Versions: "readonly",
		Perflog: "readonly",
		Stack: "readonly",
		Wikifier: "readonly",
		// DoL other namespaces/objects
		Constants: "readonly",
		ConstantsLoader: "readonly",
		currentlyLoadingMap: "readonly",
		DoLHouse: "readonly",
		DolSettingsExport: "readonly",
		Dynamic: "readonly",
		IronMan: "readonly",
		Links: "readonly",
		playerDoll: "readonly",
		Renderer: "readonly",
		SexTypes: "readonly",
		StartConfig: "readonly",
		Utils: "readonly",
		ZIndices: "readonly",
		Time: "readonly",
		EventSystem: "readonly",
		// DoL functions
		assignDefaults: "readonly",
		between: "readonly",
		clothesDataTrimmer: "readonly",
		clothesIndex: "readonly",
		clothingData: "readonly",
		combatListColor: "readonly",
		DefineMacro: "readonly",
		DefineMacroS: "readonly",
		DoLSave: "readonly",
		eCheckbox: "readonly",
		eInput: "readonly",
		elechild: "readonly",
		elechildren: "readonly",
		element: "readonly",
		ensure: "readonly",
		ensureIsArray: "readonly",
		eSelect: "readonly",
		generateBabyName: "readonly",
		getCustomClothesColourCanvasFilter: "readonly",
		getCustomColourRGB: "readonly",
		getCustomColourStyle: "readonly",
		getRandomIntInclusive: "readonly",
		getRobinLocation: "readonly",
		getSexesFromRandomGroup: "readonly",
		getTrueWarmth: "readonly",
		inDOM: "readonly",
		ironmanAutoSave: "readonly",
		loadCustomColourPreset: "readonly",
		npcEquipSet: "readonly",
		npcMakeNaked: "readonly",
		overlayShowHide: "readonly",
		parseCSSFilter: "readonly",
		pickRandomItemInArray: "readonly",
		playerHasStrapon: "readonly",
		registerGeneratedPattern: "readonly",
		registerImagePattern: "readonly",
		rgbToHsv: "readonly",
		selfOr: "readonly",
		settingsConvert: "readonly",
		settingsObjects: "readonly",
		shopClothCustomColorWheel: "readonly",
		sliderPerc: "readonly",
		stringFrom: "readonly",
		updateCustomColour: "readonly",
		updateExportDay: "readonly",
		updateMannequin: "readonly",
		updateSavesCount: "readonly",
		validateValue: "readonly",
		tanned: "readonly",
		// DoL classes
		ObservableValue: "readonly",
		CanvasModel: "readonly",
		DollHouse: "readonly",
		FDoll: "readonly",
		// Third-party
		define: "readonly",
		iro: "readonly",
		LZString: "readonly",
		md5: "readonly",
		tinycolor: "readonly",
		Mousetrap: "readonly",
		// Unknown (Can't find declaration either in SugarCube docs nor in codebase)
		config: "readonly",
		saveAs: "readonly",
		schemaVersion: "readonly",
		session: "readonly",
		Util: "readonly",
		version: "readonly",
		getClothingCost: "readonly",
		isLoveInterest: "readonly",
		skinColor: "readonly",
	},

	ignorePatterns: [
		"**/*.*",
		"!**/*.js",
		"!**/*.cjs",
		// Format config file
		"!.eslintrc.cjs",
		"node_modules",
		"devTools",
		"dist",
		"game/03-JavaScript/external",
	],

	parserOptions: {
		// Support back to ES2020 to cover old mobile devices with outdated WebView versions that fail on 2020 and up functions
		// ecmaVersion: "2020", (taken care of by env es2020)
		sourceType: "module",
	},

	env: {
		browser: true,
		es2020: true,
		jquery: true,
	},

	plugins: ["es-x"],

	extends: ["eslint:recommended", "plugin:jsdoc/recommended", "prettier-standard/prettier-file", "plugin:es-x/restrict-to-es2020"],

	settings: {
		jsdoc: {
			mode: "jsdoc",
		},
	},

	// Keep rules grouped by plugin and sorted alphabetically
	rules: {
		"object-shorthand": ["error", "always"],

		// SugarCube extends native objects and we follow it
		"no-extend-native": "off",

		/* eslint-plugin-jsdoc */

		// Descriptions should be sentence-like not comment-like
		"jsdoc/require-description-complete-sentence": "off",
		"jsdoc/require-hyphen-before-param-description": ["error", "never", { tags: { property: "never" } }],
		// Adding JSDoc is preferable but not required
		"jsdoc/require-jsdoc": "off",
		"jsdoc/require-param-description": "off",
		"jsdoc/require-property-description": "off",
		"jsdoc/require-returns-description": "off",
		"jsdoc/require-returns": "off",

		/* eslint-plugin-prettier */

		"prettier/prettier": "warn",
	},
};