'use strict'; const stylelint = require('stylelint'); const path = require('path'); const CONFIG = require('../config'); module.exports = function() { return stylelint .lint({ files: path.join(CONFIG.repositoryRootPath, 'static/**/*.less'), configBasedir: __dirname, configFile: path.resolve(__dirname, '..', '..', 'stylelint.config.js') }) .then(({ results }) => { const errors = []; for (const result of results) { for (const deprecation of result.deprecations) { console.log('stylelint encountered deprecation:', deprecation.text); if (deprecation.reference != null) { console.log('more information at', deprecation.reference); } } for (const invalidOptionWarning of result.invalidOptionWarnings) { console.warn( 'stylelint encountered invalid option:', invalidOptionWarning.text ); } if (result.errored) { for (const warning of result.warnings) { if (warning.severity === 'error') { errors.push({ path: result.source, lineNumber: warning.line, message: warning.text, rule: warning.rule }); } else { console.warn( 'stylelint encountered non-critical warning in file', result.source, 'at line', warning.line, 'for rule', warning.rule + ':', warning.text ); } } } } return errors; }) .catch(err => { console.error('There was a problem linting LESS:'); throw err; }); };