lesslint
Version:
lint your less code
69 lines (54 loc) • 4.75 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.loadConfig = loadConfig;
exports.clearStorage = clearStorage;
var _manis = require('manis');
var _manis2 = _interopRequireDefault(_manis);
var _path = require('path');
var _jsYaml = require('js-yaml');
var _jsYaml2 = _interopRequireDefault(_jsYaml);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
; /**
* @file 对配置文件的读取合并等等
* @author ielgnaw(wuji0223@gmail.com)
*/
var STORAGE = null;
/**
* 获取 merge 后的配置文件
* 用户自定义的配置文件优先级 .lesslintrc > config.yml > config.json
*
* @param {string} filePath 待检查的文件路径,根据这个路径去寻找用户自定义的配置文件,然后和默认的配置文件 merge
* @param {boolean} refresh 是否强制刷新内存中已经存在的配置
*
* @return {Object} merge 后的配置对象
*/
function loadConfig(filePath, refresh) {
if (refresh && STORAGE) {
return STORAGE;
}
var manis = new _manis2.default({
files: ['.lesslintrc'],
loader: function loader(content) {
if (!content) {
return '';
}
var ret = void 0;
try {
ret = _jsYaml2.default.load(content);
} catch (e) {}
return ret;
}
});
manis.setDefault((0, _path.join)(__dirname, './config.yml'));
STORAGE = manis.from(filePath);
return STORAGE;
}
/**
* 清空 STORAGE
*/
function clearStorage() {
STORAGE = null;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcuanMiXSwibmFtZXMiOlsibG9hZENvbmZpZyIsImNsZWFyU3RvcmFnZSIsIlNUT1JBR0UiLCJmaWxlUGF0aCIsInJlZnJlc2giLCJtYW5pcyIsIk1hbmlzIiwiZmlsZXMiLCJsb2FkZXIiLCJjb250ZW50IiwicmV0IiwieWFtbCIsImxvYWQiLCJlIiwic2V0RGVmYXVsdCIsIl9fZGlybmFtZSIsImZyb20iXSwibWFwcGluZ3MiOiI7Ozs7O1FBc0JnQkEsVSxHQUFBQSxVO1FBZ0NBQyxZLEdBQUFBLFk7O0FBakRoQjs7OztBQUNBOztBQUNBOzs7Ozs7QUFFQSxhLENBVEE7Ozs7O0FBV0EsSUFBSUMsVUFBVSxJQUFkOztBQUVBOzs7Ozs7Ozs7QUFTTyxTQUFTRixVQUFULENBQW9CRyxRQUFwQixFQUE4QkMsT0FBOUIsRUFBdUM7QUFDMUMsUUFBSUEsV0FBV0YsT0FBZixFQUF3QjtBQUNwQixlQUFPQSxPQUFQO0FBQ0g7O0FBRUQsUUFBSUcsUUFBUSxJQUFJQyxlQUFKLENBQVU7QUFDbEJDLGVBQU8sQ0FDSCxhQURHLENBRFc7QUFJbEJDLGNBSmtCLGtCQUlYQyxPQUpXLEVBSUY7QUFDWixnQkFBSSxDQUFDQSxPQUFMLEVBQWM7QUFDVix1QkFBTyxFQUFQO0FBQ0g7QUFDRCxnQkFBSUMsWUFBSjtBQUNBLGdCQUFJO0FBQ0FBLHNCQUFNQyxpQkFBS0MsSUFBTCxDQUFVSCxPQUFWLENBQU47QUFDSCxhQUZELENBR0EsT0FBT0ksQ0FBUCxFQUFVLENBQUU7QUFDWixtQkFBT0gsR0FBUDtBQUNIO0FBZGlCLEtBQVYsQ0FBWjs7QUFpQkFMLFVBQU1TLFVBQU4sQ0FBaUIsZ0JBQUtDLFNBQUwsRUFBZ0IsY0FBaEIsQ0FBakI7O0FBRUFiLGNBQVVHLE1BQU1XLElBQU4sQ0FBV2IsUUFBWCxDQUFWOztBQUVBLFdBQU9ELE9BQVA7QUFDSDs7QUFFRDs7O0FBR08sU0FBU0QsWUFBVCxHQUF3QjtBQUMzQkMsY0FBVSxJQUFWO0FBQ0giLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSDlr7nphY3nva7mlofku7bnmoTor7vlj5blkIjlubbnrYnnrYlcbiAqIEBhdXRob3IgaWVsZ25hdyh3dWppMDIyM0BnbWFpbC5jb20pXG4gKi9cblxuaW1wb3J0IE1hbmlzIGZyb20gJ21hbmlzJztcbmltcG9ydCB7am9pbn0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeWFtbCBmcm9tICdqcy15YW1sJztcblxuJ3VzZSBzdHJpY3QnO1xuXG5sZXQgU1RPUkFHRSA9IG51bGw7XG5cbi8qKlxuICog6I635Y+WIG1lcmdlIOWQjueahOmFjee9ruaWh+S7tlxuICog55So5oi36Ieq5a6a5LmJ55qE6YWN572u5paH5Lu25LyY5YWI57qnIC5sZXNzbGludHJjID4gY29uZmlnLnltbCA+IGNvbmZpZy5qc29uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIOW+heajgOafpeeahOaWh+S7tui3r+W+hO+8jOagueaNrui/meS4qui3r+W+hOWOu+Wvu+aJvueUqOaIt+iHquWumuS5ieeahOmFjee9ruaWh+S7tu+8jOeEtuWQjuWSjOm7mOiupOeahOmFjee9ruaWh+S7tiBtZXJnZVxuICogQHBhcmFtIHtib29sZWFufSByZWZyZXNoIOaYr+WQpuW8uuWItuWIt+aWsOWGheWtmOS4reW3sue7j+WtmOWcqOeahOmFjee9rlxuICpcbiAqIEByZXR1cm4ge09iamVjdH0gbWVyZ2Ug5ZCO55qE6YWN572u5a+56LGhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ29uZmlnKGZpbGVQYXRoLCByZWZyZXNoKSB7XG4gICAgaWYgKHJlZnJlc2ggJiYgU1RPUkFHRSkge1xuICAgICAgICByZXR1cm4gU1RPUkFHRTtcbiAgICB9XG5cbiAgICBsZXQgbWFuaXMgPSBuZXcgTWFuaXMoe1xuICAgICAgICBmaWxlczogW1xuICAgICAgICAgICAgJy5sZXNzbGludHJjJ1xuICAgICAgICBdLFxuICAgICAgICBsb2FkZXIoY29udGVudCkge1xuICAgICAgICAgICAgaWYgKCFjb250ZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJldDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0ID0geWFtbC5sb2FkKGNvbnRlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBtYW5pcy5zZXREZWZhdWx0KGpvaW4oX19kaXJuYW1lLCAnLi9jb25maWcueW1sJykpO1xuXG4gICAgU1RPUkFHRSA9IG1hbmlzLmZyb20oZmlsZVBhdGgpO1xuXG4gICAgcmV0dXJuIFNUT1JBR0U7XG59XG5cbi8qKlxuICog5riF56m6IFNUT1JBR0VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyU3RvcmFnZSgpIHtcbiAgICBTVE9SQUdFID0gbnVsbDtcbn1cbiJdfQ==
;