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

tslint-divid

v1.3.0

Published

TSLint rules used in some projects at Divid.

Downloads

507

Readme

tslint-divid

npm version travis build MIT license

TSLint rules used in some projects at Divid.

Background

This package is a colletion of rules we found useful when doing Typescript projects at Divid.

Installing

npm install tslint-divid --save-dev

See the example tslint.json file for configuration.

Compability

  • tslint-divid is compatible with tslint 5.x.x.

Rules

import-containment

ECMAScript modules does not have a concept of a library that can span multiple files and share internal members. If you have a set of files that forms an library, and they need to be able to call each other internally without exposing members to other files outside the library set, this rule can be useful.

limit-relative-import

Limits how far up in the tree that a module can import other modules with relatives path. Encourages the use of paths to have more control which modules that can be imported.

The containtment path is resolved relative to process.cwd()

// tsconfig.json
{
  "shared-lib/*": ["shared-lib/src/*"]
}
// filePath: /root/my-lib/packages/client/src/bar.ts
// containment: ./packages/

// Not ok
import { foo } from "../../shared-lib/src/foo/";

// Ok
import { foo } from "shared-lib/foo/";

no-arguments

Disallows use of the arguments keyword.

no-label

Disallows the use of labels, and indirectly also goto.

no-semicolon-interface

Ensures that interfaces only use commas as separator instead semicolor.

// This is NOT ok.
inferface Foo {
  bar: string;
  zoo(): number;
}
// This is ok.
inferface Foo {
  bar: string,
  zoo(): number,
}

Sample Configuration File

Here's a sample TSLint configuration file (tslint.json) that activates all the rules:

{
  "extends": [
    "tslint-divid"
  ],
  "rules": {

    "no-arguments": true,
    "no-label": true,
    "no-semicolon-interface": true,
    "import-containment": [ true,
    {
      "containmentPath": "path/to/libs",
      "allowedExternalFileNames": ["index"],
      "disallowedInternalFileNames": ["index"]
    },
    "limit-relative-import": [true, "./path/relative/to/cwd"]]

  }
}