diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..2303f41 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,84 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.linting.json', + tsconfigRootDir: __dirname, + sourceType: 'module', + }, + plugins: [ + '@typescript-eslint/eslint-plugin', + 'simple-import-sort', + // 'require-extensions', + ], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + // 'plugin:require-extensions/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/await-thenable': 'error', + '@typescript-eslint/dot-notation': 'off', + '@typescript-eslint/no-unused-vars': 'warn', + + '@typescript-eslint/no-unused-expressions': 'error', + '@typescript-eslint/no-var-requires': 'error', + '@typescript-eslint/prefer-namespace-keyword': 'error', + + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-floating-promises': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/promise-function-async': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + + 'no-dupe-class-members': 'off', + 'no-param-reassign': ['error'], + 'array-bracket-spacing': ['error', 'never'], + indent: ['off'], + 'linebreak-style': ['error', 'unix'], + 'lines-between-class-members': ['warn', 'always'], + semi: 'off', + '@typescript-eslint/semi': ['error'], + 'new-cap': 'off', + 'no-console': 'off', + 'no-debugger': 'off', + 'no-mixed-spaces-and-tabs': 2, + 'no-use-before-define': [2, 'nofunc'], + 'no-unreachable': ['warn'], + 'no-unused-vars': ['warn'], + 'no-extra-parens': ['off'], + 'no-mixed-operators': ['off'], + quotes: [2, 'single', 'avoid-escape'], + 'block-scoped-var': 2, + 'brace-style': [2, '1tbs', { allowSingleLine: true }], + 'computed-property-spacing': [2, 'never'], + 'keyword-spacing': 2, + 'space-unary-ops': 2, + 'sort-imports': [ + 'error', + { + ignoreCase: false, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'], + allowSeparatedGroups: false, + }, + ], + 'max-len': ['warn', { code: 140 }], + + // newer rules + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + }, +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 2147a38..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": ["eslint:recommended"], - "parser": "@typescript-eslint/parser", - "root": true, - "plugins": ["@typescript-eslint"], - "overrides": [ - { - "files": ["**/*.ts", "**/*.tsx"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "parserOptions": { - "projecasdft": true, - "project": [ - "./tsconfig.json", - "./tsconfig.build.json", - "./tsconfig.examples.json", - "./test/tsconfig.test.json" - ] - }, - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/dot-notation": "off", - "@typescript-eslint/no-unused-vars": "warn", - - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-var-requires": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-floating-promises": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/no-use-before-define": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/ban-ts-comment": "off", - - "no-dupe-class-members": "off", - "no-param-reassign": ["error"], - "array-bracket-spacing": ["error", "never"], - "indent": ["off"], - "linebreak-style": ["error", "unix"], - "lines-between-class-members": ["warn", "always"], - "semi": "off", - "@typescript-eslint/semi": ["error"], - "new-cap": "off", - "no-console": "off", - "no-debugger": "off", - "no-mixed-spaces-and-tabs": 2, - "no-use-before-define": [2, "nofunc"], - "no-unreachable": ["warn"], - "no-unused-vars": ["warn"], - "no-extra-parens": ["off"], - "no-mixed-operators": ["off"], - "quotes": [2, "single", "avoid-escape"], - "block-scoped-var": 2, - "brace-style": [2, "1tbs", { "allowSingleLine": true }], - "computed-property-spacing": [2, "never"], - "keyword-spacing": 2, - "space-unary-ops": 2, - "sort-imports": [ - "error", - { - "ignoreCase": false, - "ignoreDeclarationSort": true, - "ignoreMemberSort": false, - "memberSyntaxSortOrder": ["none", "all", "multiple", "single"], - "allowSeparatedGroups": false - } - ], - "max-len": ["warn", { "code": 140 }] - } - }, - { - "files": ["examples/*.js"], - "extends": ["eslint:recommended"] - } - ] -} diff --git a/package-lock.json b/package-lock.json index 8bc1d5b..abc10f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bybit-api", - "version": "3.10.23", + "version": "3.10.24", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "bybit-api", - "version": "3.10.23", + "version": "3.10.24", "license": "MIT", "dependencies": { "axios": "^1.6.6", diff --git a/test/response.util.ts b/test/response.util.ts index 9b24a7f..f107cf2 100644 --- a/test/response.util.ts +++ b/test/response.util.ts @@ -47,7 +47,7 @@ export function successEmptyResponseObjectV3() { export function errorResponseObject( result: null | any = null, ret_code: number, - ret_msg: string + ret_msg: string, ) { return { result, @@ -58,7 +58,7 @@ export function errorResponseObject( export function errorResponseObjectV3( result: null | any = null, - retCode: number + retCode: number, ) { return { result, diff --git a/test/v5/private.read.test.ts b/test/v5/private.read.test.ts index b4c60f9..5161550 100644 --- a/test/v5/private.read.test.ts +++ b/test/v5/private.read.test.ts @@ -1,6 +1,6 @@ import { API_ERROR_CODE, RestClientV5 } from '../../src'; -import { successResponseObjectV3 } from '../response.util'; import { getTestProxy } from '../proxy.util'; +import { successResponseObjectV3 } from '../response.util'; describe('Private READ V5 REST API Endpoints', () => { const API_KEY = process.env.API_KEY_COM; diff --git a/tsconfig.linting.json b/tsconfig.linting.json new file mode 100644 index 0000000..d61d7a6 --- /dev/null +++ b/tsconfig.linting.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + // "outDir": "dist/cjs", + "target": "esnext", + "rootDir": "../", + "allowJs": true + }, + "include": [ + "src/**/*.*", + "test/**/*.*", + "examples/**/*.*", + ".eslintrc.cjs", + "jest.config.ts" + ] +}