UNPKG

kkt

Version:

Create React apps with no build configuration, Cli tool for creating react apps.

73 lines (71 loc) 3.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDocsData = getDocsData; exports.staticDocSetupMiddlewares = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _express = _interopRequireDefault(require("express")); var _path = _interopRequireDefault(require("path")); var _resolvePackagePath = _interopRequireDefault(require("resolve-package-path")); function getDocsData() { var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var route = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '/_doc'; var result = { raw: str, route: route }; var dirPath = str; if (dirPath !== null && dirPath !== void 0 && dirPath.includes(':')) { var arr = dirPath.split(':'); result.dirPath = arr[0]; result.route = arr[1] || route; } if (!route.startsWith('/')) { route = '/' + route; } // relative directory if (_fsExtra["default"].existsSync(_path["default"].resolve(dirPath))) { result.docRoot = _path["default"].resolve(dirPath); result.pkgPath = (0, _resolvePackagePath["default"])(process.cwd(), process.cwd()); var pkg = _fsExtra["default"].readJSONSync(result.pkgPath); result.name = pkg.name; result.route = '/'; return result; } var _dirPath$match = dirPath.match(/^([a-zA-Z\-]+|@[a-zA-Z\-]+\/[a-zA-Z\-]+)\/?/i), _dirPath$match2 = (0, _slicedToArray2["default"])(_dirPath$match, 2), _ = _dirPath$match2[0], name = _dirPath$match2[1]; result.name = name; result.pkgPath = (0, _resolvePackagePath["default"])(name, process.cwd()); result.root = _path["default"].dirname(result.pkgPath).replace(new RegExp("".concat(name.replace('/', _path["default"].sep), "$"), 'ig'), ''); var _str$replace$split = str.replace(name, '').split(':'), _str$replace$split2 = (0, _slicedToArray2["default"])(_str$replace$split, 1), repath = _str$replace$split2[0]; result.docRoot = _path["default"].resolve(_path["default"].dirname(result.pkgPath) + repath); return (0, _objectSpread2["default"])({}, result); } /** * Specify a static service, which can be used for document preview * @param conf */ var staticDocSetupMiddlewares = function staticDocSetupMiddlewares(middlewares, devServer, options) { if (options.docs) { var _options$config, _options$config$outpu; var _getDocsData = getDocsData(options.docs), route = _getDocsData.route, docRoot = _getDocsData.docRoot; var routePath = route; if ((_options$config = options.config) !== null && _options$config !== void 0 && (_options$config$outpu = _options$config.output) !== null && _options$config$outpu !== void 0 && _options$config$outpu.publicPath && typeof options.config.output.publicPath === 'string') { routePath = options.config.output.publicPath.replace(/\/+$/, '') + route; } devServer.app.use(routePath, _express["default"]["static"](docRoot)); } return middlewares; }; exports.staticDocSetupMiddlewares = staticDocSetupMiddlewares; //# sourceMappingURL=staticDoc.js.map