--- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -12,7 +12,8 @@ } }, "extensions": [ - "matklad.rust-analyzer" + "matklad.rust-analyzer", + "dbaeumer.vscode-eslint" ], "remoteUser": "vscode" } --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1,2 @@ +hard_tabs = true +reorder_imports = false \ No newline at end of file --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint" + ] +} \ No newline at end of file --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "eslint.format.enable": true, + "[javascript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[typescript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + } +} \ No newline at end of file --- /dev/null +++ b/tests/.eslintrc.json @@ -0,0 +1,68 @@ +{ + "env": { + "browser": true, + "es2020": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 11, + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "indent": [ + "error", + 2, + { + "SwitchCase": 1 + } + ], + "function-call-argument-newline": [ + "error", + "consistent" + ], + "function-paren-newline": [ + "error", + "multiline" + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single", + { + "avoidEscape": true + } + ], + "semi": [ + "error", + "always" + ], + "@typescript-eslint/explicit-module-boundary-types": "off", + "comma-dangle": [ + "error", + "always-multiline" + ], + "no-unused-vars": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": "warn", + "no-async-promise-executor": "warn", + "@typescript-eslint/no-empty-interface": "off", + "prefer-const": [ + "error", + { + "destructuring": "all" + } + ] + } +} \ No newline at end of file --- a/tests/package.json +++ b/tests/package.json @@ -14,14 +14,20 @@ "mocha": "^8.3.2", "ts-node": "^9.1.1", "tslint": "^6.1.3", - "typescript": "^4.2.4" + "typescript": "^4.2.4", + "eslint": "^7.28.0", + "@types/node": "^14.14.12", + "@typescript-eslint/eslint-plugin": "^3.4.0", + "@typescript-eslint/parser": "^3.4.0" }, "scripts": { + "lint": "eslint --ext .ts,.js src/", + "fix": "eslint --ext .ts,.js src/ --fix", "test": "mocha --timeout 9999999 -r ts-node/register ./**/*.test.ts", "testEth": "mocha --timeout 9999999 -r ts-node/register ./**/eth/**/*.test.ts", "load": "mocha --timeout 9999999 -r ts-node/register ./**/*.load.ts", "loadTransfer": "ts-node src/transfer.nload.ts", - "testCollision": "mocha --timeout 9999999 -r ts-node/register ./src/collision-tests/*.test.ts", + "testCollision": "mocha --timeout 9999999 -r ts-node/register ./src/collision-tests/*.test.ts", "testAddCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/addCollectionAdmin.test.ts", "testSetSchemaVersion": "mocha --timeout 9999999 -r ts-node/register ./**/setSchemaVersion.test.ts", "testSetVariableMetaData": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetaData.test.ts",