@gaoding/gd-tracker
Version:
Gaoding tracker for sensorsdata(sa), baidu(_hmt), Growing.IO(gio)
296 lines (295 loc) • 10.1 kB
JavaScript
;
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);
};
}();