bemhint-deps-schema

2.1.0 • Public • Published

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)
        }
    }
};

Readme

Keywords

Package Sidebar

Install

npm i bemhint-deps-schema

Weekly Downloads

0

Version

2.1.0

License

MIT

Last publish

Collaborators

  • dima117
  • egavr
  • sipayrt
  • vittly