Skip to content

unicorn/name-replacements: not replacing usages in classes #3574

Description

@iksent

Usage of field from class constructor is not being replaced.

unicorn/name-replacements

Code before autofix:

import type { JsonRpcErrorLocal } from 'shared/api/json-rpc-transport';

type TFieldError = {
  code: number;
  message: string;
  desc: string;
};

const err = 123;
console.log(err);

export class ValidationException {
  constructor(private readonly err: JsonRpcErrorLocal) {}

  isSystemSpaceError(): boolean {
    const isSystemSpaceErrorCode = 3;
    const fields = this.err.rpcError?.data as Array<TFieldError>;
    const error = fields.find((field) => field.code === isSystemSpaceErrorCode);

    return !!error;
  }
}

Code after fix:

import type { JsonRpcErrorLocal } from 'shared/api/json-rpc-transport';

type TFieldError = {
  code: number;
  message: string;
  desc: string;
};

const error = 123;
// Usage replace is OK
console.log(error);

export class ValidationException {
  constructor(private readonly error: JsonRpcErrorLocal) {}

  isSystemSpaceError(): boolean {
    const isSystemSpaceErrorCode = 3;
    // TS2339: Property err does not exist on type ValidationException
    const fields = this.err.rpcError?.data as Array<TFieldError>;
    const error = fields.find((field) => field.code === isSystemSpaceErrorCode);

    return !!error;
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions