structlint
Lint your project structure against architecture rules
Last updated a month ago by desfero .
MIT · Repository · Original npm · Tarball · package.json
$ cnpm install structlint 
SYNC missed versions from official npm registry.

npm

structlint

Getting Started

Install the package:

npm install --save-dev structlint

in case you prefer yarn

yarn add -D structlint

then add the config into a .structlintrc file. For example:

.structlintrc

{
  "structure": [
    {
      "description": "Core application business logic",
      "path": "./modules",
      "disallowedImports": [
        {
          "glob": "./components/**/*",
          "message": "Business logic should never import UI components"
        }
      ]
    },
    {
      "description": "Reducers",
      "path": "./reducers",
      "disallowedImports": ["./components/**/*", "./sagas/**/*"],
      "allowedImports": ["./utils/**/*"]
    }
  ]
}

You can have a single config file at the root of your project or multiple configs, one for every major sub directory.

- src
  - reducers
    - .structlintrc
    - user.reducer.js
    - settings.reducer.js
    - profile.reducer.js
  - components
    - .structlintrc
    - Header
      - Header.js
      - Header.scss
    - Footer
      - Header.js
      - Header.scss
   - sagas
     - .structlintrc
     - auth.saga.js
     - profile.saga.js
   - utils
     - .structlintrc
     - color.js
     - url.js
- tests
  - .structlintrc
  - user-tests
  - settings-tests

Usage

Run from the root of your project:

<path-to-node-modules>/.bin/structlint

OR

npx structlint

Structlint will recursively go through the sub-directories and lint them. If you prefer to lint just one sub-directory, you must change the directory before running the command: cd tests && structlint.

Options

structure

Type: array

An array of objects containing the following:

Name Type Description
description String Name or label or description for the directory to be linted
path String Path to the directory to be linted relative to .structlintrc
disallowedImports Array<String> or Array<Object> An array of globs representing the imports to be disallowed or an array of objects containing the glob and a message
allowedImports Array<String> or Array<Object> An array of globs representing the imports to be allowed or an array of objects containing the glob and a message
recursive Boolean Defaults to true. If false, will not check sub directories.

Checkout the examples for more.

Current Tags

  • 1.0.0-beta.0                                ...           latest (a month ago)

6 Versions

  • 1.0.0-beta.0                                ...           a month ago
  • 0.3.1                                ...           3 months ago
  • 0.3.0                                ...           3 months ago
  • 0.2.0                                ...           4 months ago
  • 0.1.0                                ...           4 months ago
  • 0.0.1                                ...           5 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 10
Dependencies (13)
Dev Dependencies (16)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |