UNPKG

@gaoding/gd-tracker

Version:

Gaoding tracker for sensorsdata(sa), baidu(_hmt), Growing.IO(gio)

296 lines (295 loc) 10.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createValidateBuilder: function() { return createValidateBuilder; }, handlerValidate: function() { return handlerValidate; } }); var _fs = /*#__PURE__*/ _interopRequireDefault(require("fs")); var _path = require("path"); var _logger = require("../core/logger"); var _validator = require("../core/validator"); var _zipper = require("../core/zipper"); var _recursionFind = require("../utils/recursion-find"); var _index = require("../constants/index"); function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function() { var self = this, args = arguments; return new Promise(function(resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectSpread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _defineProperty(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpreadProps(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var __generator = (void 0) && (void 0).__generator || function(thisArg, body) { var f, y, t, g, _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }; return(g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g); function verb(n) { return function(v) { return step([ n, v ]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while(_)try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [ op[0] & 2, t.value ]; switch(op[0]){ case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [ 0 ]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [ 6, e ]; y = 0; } finally{ f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var createValidateBuilder = function(yargs) { return yargs.version(false).option("port", { alias: "p", describe: "启动本地验证服务的端口号", type: "number", default: _index.DEFAULT_VALIDATOR_SERVER_PORT }).option("dir", { alias: "d", describe: "缓存所在的目录路径 (相对路径)", type: "string", demandOption: true }).example("$0 validate -p 7335", "指定端口号启动本地验证服务").option("help", { alias: "h", describe: "显示帮助信息" }); }; var runServer = function(port, zipname, timeCachePath) { // const schema = require(`${timeCachePath}/`); var CLI_PROJECT_API_PATH = "".concat(timeCachePath, "/api"); if (!_fs.default.existsSync(CLI_PROJECT_API_PATH) && !_fs.default.statSync(CLI_PROJECT_API_PATH).isDirectory()) { return _logger.logger.error("无效的压缩文件,".concat(zipname, " 丢失 api 文件夹,无法启动本地验证服务")); } var list = _fs.default.readdirSync(CLI_PROJECT_API_PATH).filter(function(item) { return _fs.default.existsSync((0, _path.resolve)(CLI_PROJECT_API_PATH, item)); }).filter(function(item) { return _fs.default.statSync((0, _path.resolve)(CLI_PROJECT_API_PATH, item)).isDirectory(); }).map(function(item) { return { name: item, path: (0, _path.resolve)(CLI_PROJECT_API_PATH, item) }; }); if (list.length <= 0) { return _logger.logger.error("无效的压缩文件,".concat(zipname, " 丢失 api 目录下的子文件夹,无法启动本地验证服务")); } var schemas = list.map(function(item) { try { var data = require((0, _path.resolve)(item.path, "./schemas.json")); var result = (Array.isArray(data) ? data : data).map(function(son) { return _objectSpreadProps(_objectSpread({}, son), { project: item.name }); }); return result; } catch (error) { console.log("error:", error); return null; } }).filter(Boolean); if (schemas.length <= 0) { return _logger.logger.error("无效的压缩文件,".concat(zipname, " 丢失 api api 目录下的子文件夹下的 schemas.json 文件,无法启动本地验证服务")); } (0, _validator.server)({ schemas: schemas, port: port }); }; var handlerValidate = function() { var _ref = _asyncToGenerator(function(argv) { var port, USER_DIR, zipname, filename, time; return __generator(this, function(_state) { port = argv.port; USER_DIR = (0, _path.resolve)(process.cwd(), "./".concat(argv.dir)); zipname = (0, _recursionFind.recursionFind)(USER_DIR, _index.CACHE_ZIP_REG_EXP, [ /node_modules/, /.git/ ]); if (!zipname) return [ 2, _logger.logger.error("缓存文件丢失,请重新执行 gen 命令!").exit() ]; filename = zipname.replace("".concat(USER_DIR, "/"), ""); time = "".concat(filename === null || filename === void 0 ? void 0 : filename.replace(".cache.", "").replace(".zip", "")); (0, _zipper.unzip)({ dirname: "".concat(_index.CLI_CACHE_PATH), filename: zipname, onSuccess: function() { return runServer(port, zipname, "".concat(_index.CLI_CACHE_PATH, "/").concat(time)); } }); return [ 2 ]; }); }); return function handlerValidate(argv) { return _ref.apply(this, arguments); }; }();