{
	"root": true,
	"env": {
		"node": true,
		"es6": true
	},
	"plugins": [
		"@typescript-eslint",
		"import"
	],
	"parser": "@typescript-eslint/parser",
	"parserOptions": {
		"sourceType": "module",
		"ecmaVersion": 2020
	},
	"extends": [
		"eslint:recommended",
		"plugin:@typescript-eslint/recommended",
		"plugin:prettier/recommended",
		"plugin:import/typescript",
		"plugin:import/warnings",
		"plugin:import/errors"
	],
	"rules": {
		// TODO: Use cadence here.
		"prettier/prettier": [
			"error",
			{
				"printWidth": 100,
				"tabWidth": 4,
				"semi": true,
				"singleQuote": false,
				"trailingComma": "es5",
				"bracketSpacing": true,
				"endOfLine": "auto",
				"useTabs": true
			}
		],
		"@typescript-eslint/explicit-module-boundary-types": "off",
		"@typescript-eslint/no-non-null-assertion": "off",
		"@typescript-eslint/no-var-requires": "off",
		"@typescript-eslint/no-unused-vars": [
			"warn",
			{
				"argsIgnorePattern": "logger"
			}
		],
		"require-await": "warn",
		"no-await-in-loop": "warn",
		"no-unused-labels": "error",
		"prefer-const": "error",
		"eqeqeq": "error",
		"no-eval": "error",
		"no-var": "error",
		"no-new-object": "error",
		"quote-props": [
			"error",
			"as-needed"
		],
		"no-array-constructor": "error",
		"prefer-template": "error",
		"prefer-promise-reject-errors": "error",
		"no-useless-escape": "error",
		"no-loop-func": "error",
		"prefer-rest-params": "error",
		"default-param-last": "error",
		"no-new-func": "error",
		"arrow-body-style": "error",
		"no-useless-constructor": "error",
		"no-duplicate-imports": "error",
		"dot-notation": "error",
		"space-before-blocks": "error",
		"no-prototype-builtins": "off",
		"prefer-arrow-callback": "error",
		"curly": "error",
		"no-template-curly-in-string": "error",
		"no-implied-eval": "error",
		"yoda": "error",
		"no-labels": "error",
		"no-useless-concat": "error",
		"radix": "error",
		"no-octal-escape": "error",
		"no-param-reassign": "error",
		"no-proto": "error",
		"no-return-await": "error",
		"no-throw-literal": "error",
		"no-unmodified-loop-condition": "error",
		"no-unused-expressions": "error",
		"no-useless-call": "error",
		"no-useless-return": "error",
		"require-unicode-regexp": "error",
		// breaks our wacky tachi-common imports
		"import/no-unresolved": "off"
	}
}