Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@phiresky/ts-unused-class-members

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@phiresky/ts-unused-class-members

Find unused class variables and methods in a typescript project

  • 2.0.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

semantic-release: angular

ts-unused-class-members

A CLI tool for finding unused class variables and methods in a TypeScript project.

Screen Shot 2021-07-01 at 2 13 47 PM

Table of Contents
  1. Getting Started
  2. Configuration File
  3. Ignoring a Specific Declaration
  4. Acknowledgements

Getting Started

Prerequisites

@faire/ts-unused-class-members is hosted on :octocat:GitHub Packages. To configure npm to download @faire packages from GitHub Packages registry you need to

  1. Create a personal access token with the read:packages scope
  2. Use the command below to add the personal access token to ~/.npmrc
    echo "//npm.pkg.github.com/:_authToken=YOUR_TOKEN" >> ~/.npmrc
    
  3. Use the command below to configure npm to download @faire packages from GitHub Packages registry
    npm config set @faire:registry https://npm.pkg.github.com
    

Usage

In the same directory as your tsconfig.json, run

npx @faire/ts-unused-class-members

CLI Options

Run ts-unused-class-members with --help to see all available CLI options.

Options:
  --project          Path to the project's tsconfig.json                [string]
  --path             Path to a single directory/file to scan            [string]
  --ignoreFileRegex  Regex pattern for excluding files                  [string]

These options are optional, and you can also set them in a config file.

Configuration File

By default, ts-unused-class-members flags every class member that has no references in the project. Depends on the framework/library you use, you may want to tell the checker to ignore certain class members. You can do that by including a configuration file.

Example config file for a React + MobX project:

ts-unused-class-members.config.js in the project root

module.exports = {
  ignoreFileRegex: "(?:(\\.d)|(\\.stories)|(\\.test))\\.tsx?$",
  ignoreMemberNames: [
    "render",
    "state",
    "componentDidMount",
    "componentWillUnmount",
    "componentDidCatch",
    "componentDidUpdate",
    "shouldComponentUpdate",
    "UNSAFE_componentWillReceiveProps",
    "UNSAFE_componentWillUpdate",
    "UNSAFE_componentWillMount",
  ],
  /**
   * Ignore members decorated by MobX's @disposeOnUnmount
   */
  ignoreDecoratorNames: ["disposeOnUnmount"],
  /**
   * Ignore members initialized with MobX's reaction()
   * e.g. public myReaction = reaction(...);
   */
  ignoreInitializerNames: ["reaction"],
};

ts-unused-class-members consumes configuration using cosmiconfig, which supports some other config formats too.

  • a ts-unused-class-members property in package.json
  • a ts-unused-class-members.config.js or ts-unused-class-members.config.cjs CommonJS module exporting an object
  • a .ts-unused-class-membersrc file in JSON or YAML format

Ignoring a Specific Declaration

You can also tell ts-unused-class-members to ignore a specific class or class member by prefixing its declaration with // unused-class-members-ignore-next.

// unused-class-members-ignore-next
class Unused {
  ...
}

class A {
  // unused-class-members-ignore-next
  unused = undefined;
  ...
}

Contributing

Issues and PRs are welcome!

This project uses semantic-release to automate version management and package publishing, so make sure to follow the commit message conventions when contributing.

Acknowledgements

FAQs

Package last updated on 20 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc