mirror of
https://github.com/appium/appium.git
synced 2026-10-23 09:09:16 +08:00
dfe02ca98c
This adds a new package which consumers having TS sources can use. This does not affect current users of `@appium/eslint-config-appium`. Due to the nature of TS, it can be a little more bold with fixes (e.g., changing let to const). I changed the following rules from the recommended settings: no-empty-function: Reduced to a warning. It's likely we want the functions, but perhaps they should not be empty. no-empty-interface: Disabled; we use these to merge mixin interfaces with driver classes. no-explicit-any: Disabled; while transitioning from an untyped codebase to a typed one, we still need to use any in places. Eventually these should all be replaced. no-non-null-assertion: Disabled; This allows us to continue use of the ! operator, which is handy when working with untyped or loosely-typed code (especially in tests). no-var-requires: Reduced to a warning. Occasionally we may need to use require() instead of import. Since the configuration extends our shared config, the following rules have been disabled: import/no-unresolved: The eslint-plugin-import module cannot resolve TS modules. no-unused-vars: This rule conflicts with typescript-eslint's rule, so it must be disabled per the documentation. promise/no-native: In our TS-based packages, I haven't needed Bluebird, so it doesn't make sense to require it. require-await: TS is much more aware of the return values of functions; this is not needed to avoid ambiguity (in TS code).
54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
{
|
|
"extends": ["@appium/eslint-config-appium", "@appium/eslint-config-appium-ts"],
|
|
"overrides": [
|
|
{
|
|
"files": "packages/fake-driver/**/*",
|
|
"rules": {"require-await": "off"}
|
|
},
|
|
{"files": "packages/support/**/*", "globals": {"BigInt": "readonly"}},
|
|
{
|
|
"files": "packages/*/test/**/*",
|
|
"rules": {"func-names": "off"}
|
|
},
|
|
{
|
|
"files": ["packages/*/index.js", "packages/*/scripts/**/*.js", "test/*.js"],
|
|
"parserOptions": {
|
|
"sourceType": "script"
|
|
}
|
|
},
|
|
{
|
|
"files": [
|
|
"packages/appium/support.js",
|
|
"packages/appium/driver.js",
|
|
"packages/appium/plugin.js"
|
|
],
|
|
"parserOptions": {
|
|
"sourceType": "script"
|
|
}
|
|
},
|
|
{
|
|
"files": "./packages/*/test/**/*.js",
|
|
"rules": {
|
|
"no-restricted-properties": [
|
|
"error",
|
|
{
|
|
"object": "sinon",
|
|
"property": "spy",
|
|
"message": "Use `sandbox = sinon.createSandbox()` and `sandbox.spy()` instead. Don't forget to call `sandbox.restore()` in `afterEach`"
|
|
},
|
|
{
|
|
"object": "sinon",
|
|
"property": "stub",
|
|
"message": "Use `sandbox = sinon.createSandbox()` and `sandbox.stub()` instead. Don't forget to call `sandbox.restore()` in `afterEach`"
|
|
},
|
|
{
|
|
"object": "sinon",
|
|
"property": "mock",
|
|
"message": "Use `sandbox = sinon.createSandbox()` and `sandbox.mock()` instead. Don't forget to call `sandbox.restore()` in `afterEach`"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|