metal-soy-critic
A metal-soy code validation utility.
Last updated 2 years ago by mthadley .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install metal-soy-critic 
SYNC missed versions from official npm registry.

metal-soy-critic

Build Status

A utility for validating your metal-soy components. This tool is not meant to do the same work that your javascript or soy compiler already does. Instead it checks for anti-patterns in your components.

Usage

First install mcritic from npm:

$ npm install -g metal-soy-critic

Then pass it a directory containing soy files that you would like to check:

$ mcritic src

You can also ignore files matching a particular glob:

$ mcritic . --ignore "**/{node_modules,classes,build}/**"

Configuration

By default, mcritic will recursively search the current and parent folders for a .soycriticrc.json file from the current working directory. Here is an example:

{
  "callToImport": [
    {
      "regex": "(\\S+)",
      "replace": "{$1|param}"
    }
  ]
}

Here are the currently supported settings:

callToImport

This property is used to provide a list of replacement configurations. Each list item must contain two properties:

  • regex

    This property is used to provide matches for replace. This should be a standard javascript regex that contains capture groups to be referenced in replace.

  • replace

    This property uses match groups defined in regex to translate a component name in a soy template to its corresponding import name when validating their import.

    When referencing match groups from regex, interpolation should be in the form of {$n}, where n is the match group number. An example would be "{$1}.js".

    Interpolations can also contain named string transformations delimited by a |. This transformation corresponds to the functions provided by change-case.

    Examples:

    • "{$1|lower|snake}.js"
    • "{$2}-{$1}"
    • "{$1|dot}.js"
Type Default
array "[{"regex": "(.*)", "replace": "{$1}"}]"

implicitParams

This property is used to provide implicit params when checking if a Soy param is present in a component's STATE configuration. Here is an example:

{
  "implicitParams": {
    ".*Clay": ["visible", "elementClasses"],
    "DropDown": "open"
  }
}

Each key shoud be a valid RegExp string, which will be used to match a class name in your project. When a match is found, the value (which should be a string or Array<string>) will be added to the available params for that class when compared against it's Soy file.

Type Default
object {}

Contributing

Feature requests, issues, and pull requests are welcome!

Current Tags

  • 2.4.0                                ...           latest (2 years ago)

34 Versions

  • 2.4.0                                ...           2 years ago
  • 2.3.0                                ...           2 years ago
  • 2.2.1                                ...           2 years ago
  • 2.2.0                                ...           2 years ago
  • 2.1.1                                ...           2 years ago
  • 2.1.0                                ...           3 years ago
  • 2.0.0                                ...           3 years ago
  • 1.14.1                                ...           3 years ago
  • 1.14.0                                ...           3 years ago
  • 1.13.1                                ...           3 years ago
  • 1.13.0                                ...           3 years ago
  • 1.12.0                                ...           3 years ago
  • 1.11.0                                ...           3 years ago
  • 1.10.1                                ...           3 years ago
  • 1.10.0                                ...           3 years ago
  • 1.9.0                                ...           3 years ago
  • 1.8.0                                ...           3 years ago
  • 1.7.1                                ...           3 years ago
  • 1.7.0                                ...           3 years ago
  • 1.6.0                                ...           3 years ago
  • 1.5.0                                ...           3 years ago
  • 1.4.3                                ...           3 years ago
  • 1.4.2                                ...           3 years ago
  • 1.4.1                                ...           3 years ago
  • 1.4.0                                ...           3 years ago
  • 1.3.3                                ...           3 years ago
  • 1.3.2                                ...           3 years ago
  • 1.3.1                                ...           3 years ago
  • 1.3.0                                ...           3 years ago
  • 1.2.1                                ...           3 years ago
  • 1.2.0                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 69
Dependencies (9)
Dev Dependencies (12)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |