metal-soy-critic v2.4.0
metal-soy-critic
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-criticThen pass it a directory containing soy files that you would like to check:
$ mcritic srcYou 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:
regexThis property is used to provide matches for
replace. This should be a standard javascript regex that contains capture groups to be referenced inreplace.replaceThis property uses match groups defined in
regexto 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}, wherenis 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 bychange-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!
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago