0.0.9 • Published 1 year ago

xulin v0.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Xulin

Architecture test automation

Continuous integration Coverage Status

Table of Contents

Getting Started

Install Xulin using npm:

npm install --save-dev xulin

Add the following section to your package.json:

{
  "scripts": {
    "test:arch": "xulin ."
  }
}

Before running you must create the configuration file xulin.config.json:

{
  "rules": []
}

Finally, run npm run test:arch and Xulin will print this message:

Check Suites: 0 failed, 0 skipped, 0 passed, 0 total.
Checks:       0 failed, 0 passed, 0 total.
Exec time:    00:00:00.001

Configuration

Rules

  1. Check if the files in a folder do not have dependencies on the specified directories:
{
  "name": "no-dependencies",
  "folder": "source/configs",
  "folders": ["source/pages"]
}
  1. Check that folder names in a directory follow the specified folder name:
{
  "name": "folder-name-in-folder",
  "names": ["services", "pages", "config"],
  "folder": "source"
}
  1. Check the maximum amount of files in a directory:
{
  "name": "max-files-in-folder",
  "quantity": 2,
  "folder": "source/services"
}
  1. Check the maximum amount of folders in a directory:
{
  "name": "max-folders-in-folder",
  "quantity": 2,
  "folder": "source/services"
}
  1. Check the length of filenames in a directory:
{
  "name": "filename-size-in-folder",
  "min": 3,
  "max": 10,
  "folder": "source"
}
  1. Check the length of folders names in a directory:
{
  "name": "folder-name-size-in-folder",
  "min": 3,
  "max": 10,
  "folder": "source"
}
  1. Check that files in a directory follow specified patterns:
{
  "name": "filename-pattern-in-folder",
  "patterns": ["*.ts"],
  "folder": "source/services"
}

To skip a rule use the skip field:

{
  "name": "filename-pattern-in-folder",
  "patterns": ["*.ts"],
  "folder": "source/services",
  "skip": true
}

License

Xulin is MIT licensed.