Plugin for bemhint which checks *.deps.js to be written by specification
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
.npmignore
LICENSE
README.md
README.ru.md
package.json
testcases.json

README.md

bemhint-deps-schema

Plugin for bemhint checks *.deps.js to be written by specification. Requires bemhint 0.7.0 or above.

How to install

$ npm install bemhint-deps-schema

How to use

Add plugin to .bemhint.js:

module.exports = {
    plugins: {
        'bemhint-deps-schema': true
    }
};

Custom schema

To validate custom deps.js format (code style reasons or others) configure plugin with custom json-schema (path is relative to config location):

module.exports = {
    plugins: {
        'bemhint-deps-schema': {
            schema: './dir/deps.schema.json'
        }
    }
};

We suggest to base your custom schema on standard plugin's schema.

Error location

Validator reports error with JSON-style error location like shouldDeps[1].elem. To get line/column error location define the function:

module.exports = {
    plugins: {
        'bemhint-deps-schema': {
            /**
             * Returns location of dataPath in content
             *
             * @param {String} content
             * @param {String} dataPath
             *
             * @returns {Location}
             */
            locator: (content, dataPath) => {
                return { line: 153, column: 12 };
            }
        }
    }
};

/**
 * @typedef {Object} Location
 *
 * @property {Number} line - 1-based line number
 * @property {Number} column - 1-based column number
 */

You can use external module like Json-file-pointer:

const pointer = require('json-file-pointer');

module.exports = {
    plugins: {
        'bemhint-deps-schema': {
            locator: (content, dataPath) => pointer.getLocationOf(content, dataPath)
        }
    }
};