npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

eslint-plugin-paths

v1.1.0

Published

A plugin for ESLint, to force use paths aliases from tsconfig

Downloads

19,172

Readme

A plugin for ESLint, to force use paths aliases according to paths option config in tsconfig.json or jsconfig.json, instead of relative imports.

Zero config, plug and play design.

About

Current rule supports auto fix with eslint --fix, so you may automate paths correction.

Unlike other plugins like eslint-plugin-import-alias and eslint-plugin-import-alias whose introduce their own aliases, current plugin is just use aliases config from tsconfig/jsconfig.

With eslint-plugin-paths you have one source of truth - your tsconfig.json file (or jsconfig.json in case you use vanilla javascript).

TODO: We have a ticket, to implement an option to deprecate specific paths for case you want to convert aliases back to relative paths. So you will just add alias to deprecation list, then run eslint --fix and unnecessary aliases will be inverted back to paths. Simple and powerful for aliases management.

Setup

Install package with npm install -D eslint-plugin-paths, then update eslint config

{
	"plugins": [
		"eslint-plugin-paths",
	],
	"rules": {
		"paths/alias": "error"
	}
}

Examples

If you have tsconfig.json with config below

{
	"compilerOptions": {
		"baseUrl": ".",
		"paths": {
			"@foo/*": ["src/foo/*"],
			"@bar/*": ["src/bar/*"]
		}
	}
}

then code below will be valid

// src/index.ts

import foo from '@foo';
import barZ from '@bar/x/y/z';
import bazZ from './baz/x/y/z';

and this code will be invalid

// src/index.ts

import foo from './foo';
import barZ from './bar/x/y/z';

Options

configFilePath

Provide path to json file with a compiler config.

When not set, used tsconfig.json from root directory if exists or jsconfig.json if not.

Donations

You can support the project to help it maintain independence and high quality:

  • tell others about this package
  • suggest new ideas, features and elegant ways to make package better
  • help us by trying to reproduce unconfirmed bug reports
  • help us address bugs. Just ping us in issues and start work on PRs

Also, you can donate to us to vote with money for goal prioritization, to add some feature or fix some bug as soon as possible. Just donate with any method below, then leave transaction details in issue comments, or send email to [email protected] with issue number or feature request description. For significant donations, we will start work on your request as soon as possible.

  • Monero (XMR): 861w7WuFGecR7SMpuf7GX9BBUgGJb1Xdx8z5pCpMrKY2ZeZAzS3mwZeQeJGV5RPpu35fr5dURSm587ewpHYGzNuGKGroQnD
  • Bitcoin (BTC): bc1q2krassq0sa2aphkx37zn374lfjnthr5frm6s7y
  • Ethereum (ETH), Tether USDT (ERC-20): 0x2463d84F46c131886CaE457412e8B6eaBc0b91a7
  • Tron (TRC), Tether USDT (TRC-20): TQezzyzkfMCPJRdnYxNXrUfPj3s7kDeMBL