UNPKG

vue-styleguidist

Version:
77 lines (75 loc) 2.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = getParser; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _vueDocgenApi = require("vue-docgen-api"); var _mergeWebpackConfig = _interopRequireDefault(require("../../scripts/utils/mergeWebpackConfig")); function getParser(config) { var validExtends = config.validExtends, propsParser = config.propsParser; // resolve webpack config as functions or objects var webpackConfig = (0, _mergeWebpackConfig["default"])({}, config.webpackConfig, process.env.NODE_ENV || 'production'); var alias; var modules; if (webpackConfig.resolve) { alias = webpackConfig.resolve.alias; modules = webpackConfig.resolve.modules; } var pugOptions; if (webpackConfig.module && webpackConfig.module.rules) { var rules = webpackConfig.module.rules; var pugLoader = rules.find(function (r) { return r.loader === 'pug-loader' || r.use === 'pug-loader'; }) || rules.reduce(function (acc, r) { if (Array.isArray(r.use)) { return acc.concat(r.use); } return acc; }, []).find(function (r) { return (0, _typeof2["default"])(r) === 'object' && r.loader === 'pug-loader'; }); if (pugLoader) { pugOptions = pugLoader.options; } else { var pugLoaderUse = rules.find(function (r) { return (0, _typeof2["default"])(r.use) === 'object' && r.use.loader === 'pug-loader'; }); if (pugLoaderUse && pugLoaderUse.use && (0, _typeof2["default"])(pugLoaderUse.use) === 'object' && !Array.isArray(pugLoaderUse.use)) { pugOptions = pugLoaderUse.use.options; } } } var defaultParser = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file) { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0, _vueDocgenApi.parse)(file, { alias: alias, modules: modules, jsx: config.jsxInComponents, validExtends: validExtends, pugOptions: pugOptions }); case 2: return _context.abrupt("return", _context.sent); case 3: case "end": return _context.stop(); } } }, _callee); })); return function defaultParser(_x) { return _ref.apply(this, arguments); }; }(); return propsParser || defaultParser; }