UNPKG

lesslint

Version:
69 lines (54 loc) 4.75 kB
'use strict'; 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 }; } 'use strict'; /** * @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==