Files
xahau.js/packages/xrpl/.eslintrc.js
Mayukha Vadari 91e7369f1b feat: add support for current sidechain design (#2039)
* Update definitions.json

* add new st types

* add tests

* add XChainClaim tx

* add XChainCommit tx

* add XChainCreateBridge tx

* add XChainCreateClaimID tx

* update definitions.json

* rename Bridge -> XChainBridge in binary codec, fix tests

* rename Bridge -> XChainBridge in models

* add codec support for XChainAddAttestation

* add XChainAddAttestation model

* undo debugging change

* fix linting issues

* update definitions.json for new rippled code, add new tests/update old tests

* add/update models

* update history

* update binary-codec

* add XChainModifyBridge model

* update RPCs

* update to latest rippled

* more fixes

* fix definitions.json

* fix spacing

* update definitions.json to avoid conflict with amm

* update definitions.json to resolve amm conflicts

* audit code

* more updates

* update rpcs

* switch to beta version

* add destination tag to XChainClaim

* rename IssuedCurrency -> Issue to match rippled

* update Issue form

* fix account object filters

* fix issue from typing

* fix LedgerEntry types

* fix attestation destination type

* Update definitions.json

* rename XChainAddAttestation -> XChainAddAttestationBatch

* add XChainAddClaimAttestation

* add XChainAddAccountCreateAttestation

* remove XChainAddAttestationBatch

* update definitions

* fix attestation txns

* fix attestation object

* add validate for new txs

* add Bridge ledger object

* add XChainOwnedClaimID ledger object

* add XChainOwnedCreateAccountClaimID ledger object

* update account_objects

* update models to latest rippled

* fix minor issues

* fix bridge ledger_entry

* add XChainModifyBridge flag

* Update definitions.json

* add rbc tests for the new txs

* update validateXChainModifyBridge

* add validate methods to other xchain txs

* fix isXChainBridge

* fix isIssue typing

* fix model types

* update changelog

* switch prepare to prepublishOnly

* add docs

* fix AccountObjectsType filter

* export common types

* fix account_objects filter

* update LedgerEntry

* add sidechain faucet info

* add snippet

* improve snippet

* fix spacing issues

* update ledger_entry

* remove AMMDelete tests for now

* Update definitions.json

* fix unit tests

* convert createValidate script to JS
* remove unneeded linter ignores

* respond to comments

* more snippet fixes

* make validate functions more readable

* add getXChainClaimID method to parse metadata

* re-add linter rules

* clean up common

* fix getXChainClaimID test

* return undefined for failed tx

* test: add model tests for new sidechain transactions (#2059)

* add XChainAddAttestation tests, fix model

* add XChainClaim model tests

* add XChainCommit model tests, fix typo

* add XChainCreateBridge model tests

* add XChainCreateClaimID model tests

* add XChainModifyBridge tests

* update to most recent version of code

* remove XChainAddAttestationBatch tests

* add more validation tests

* switch createValidateTests to JS
2023-09-26 10:01:21 -04:00

163 lines
4.8 KiB
JavaScript

module.exports = {
root: true,
// Make ESLint compatible with TypeScript
parser: '@typescript-eslint/parser',
parserOptions: {
// Enable linting rules with type information from our tsconfig
tsconfigRootDir: __dirname,
project: [
'./tsconfig.eslint.json',
'../ripple-binary-codec/tsconfig.eslint.json',
'../ripple-address-codec/tsconfig.eslint.json',
'../ripple-keypairs/tsconfig.eslint.json',
],
// Allow the use of imports / ES modules
sourceType: 'module',
ecmaFeatures: {
// Enable global strict mode
impliedStrict: true,
},
},
// Specify global variables that are predefined
env: {
// Enable node global variables & Node.js scoping
node: true,
// Add all ECMAScript 2020 globals and automatically set the ecmaVersion parser option to ES2020
es2020: true,
jest: true,
},
plugins: [],
extends: ['@xrplf/eslint-config/base'],
rules: {
'multiline-comment-style': 'off',
// Disabled until https://github.com/import-js/eslint-plugin-import/pull/2305 is resolved to
// accomodate this change https://github.com/XRPLF/xrpl.js/pull/2133
'import/no-unused-modules': 'off',
'eslint-comments/no-unused-disable': 'off',
// Certain rippled APIs require snake_case naming
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'interface',
format: ['PascalCase', 'snake_case'],
},
],
'max-lines-per-function': [
'warn',
{ max: 40, skipBlankLines: true, skipComments: true },
],
'max-statements': ['warn', 25],
// exception for lodash
'id-length': ['error', { exceptions: ['_'] }],
// no-shadow has false-positives for enum, @typescript-eslint version fixes that
'no-shadow': 'off',
'@typescript-eslint/no-shadow': ['error'],
'jsdoc/check-examples': 'off',
// We want to use certain fields like "@interface" to make join types treated as interfaces.
'jsdoc/check-tag-names': 'off',
'jsdoc/require-hyphen-before-param-description': 'off',
'tsdoc/syntax': 'off',
'jsdoc/require-description-complete-sentence': 'off',
'import/prefer-default-export': 'off',
},
overrides: [
{
files: ['.eslintrc.js'],
rules: {
'import/no-unused-modules': 'off',
'@typescript-eslint/no-magic-numbers': 'off',
},
},
{
files: ['snippets/src/*.ts'],
rules: {
'import/no-unused-modules': 'off',
// Each file has a particular flow.
'max-lines-per-function': 'off',
'max-statements': 'off',
// Snippets have logs on console to better understand the working.
'no-console': 'off',
},
},
{
files: ['test/**/*.ts'],
rules: {
/*
* Because this project is managed by lerna, dev dependencies are
* hoisted and do not appear in the package.json.
*/
'import/no-extraneous-dependencies': 'off',
'node/no-extraneous-import': 'off',
// We have lots of magic numbers in tests
'@typescript-eslint/no-magic-numbers': 'off',
// We have files with a lot of tests
'max-lines-per-function': 'off',
'max-lines': 'off',
// We need to test things without type guards sometimes
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/consistent-type-assertions': 'off',
// We need to mess with internal things to generate certain testing situations
'@typescript-eslint/no-unsafe-member-access': 'off',
// Tests are already in 2 callbacks, so max 3 is pretty restrictive
'max-nested-callbacks': 'off',
// messes with fixtures
'consistent-default-export-name/default-import-match-filename': 'off',
},
},
{
files: ['test/client/*.ts'],
},
{
files: ['test/models/*.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
{
files: ['src/models/**/*.ts'],
rules: {
complexity: ['off'],
},
},
{
files: ['.eslintrc.js', 'jest.config.js'],
rules: {
// Removed no-commonjs requirement as eslint must be in common js format
'import/no-commonjs': 'off',
// Removed this as eslint prevents us from doing this differently
'import/unambiguous': 'off',
// Javascript files have CommonJS exports
'import/no-unused-modules': 'off',
},
},
{
files: ['tools/*.ts', 'tools/*.js'],
rules: {
'no-console': ['off'],
'node/no-process-exit': ['off'],
'@typescript-eslint/no-magic-numbers': ['off'],
'max-lines-per-function': ['off'],
'max-statements': ['off'],
complexity: ['off'],
'max-depth': ['warn', 3],
},
},
],
}