UNPKG

@hyext/builder-neorn

Version:

neo react-native builder for hyext

116 lines (115 loc) 4.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPublicIP = exports.logger = exports.getSDKName = exports.getUserTypeFromExtType = exports.getSDKRoleFromExtType = exports.updatePkgVersion = exports.isGE = exports.isLE = exports.getHostId = exports.isExactlyVersions = exports.isExactlyVersion = void 0; const chalk_1 = __importDefault(require("chalk")); const os_1 = __importDefault(require("os")); const ramda_1 = __importDefault(require("ramda")); const compare_versions_1 = __importDefault(require("compare-versions")); exports.isExactlyVersion = (version) => /^[0-9]+/.test(version); exports.isExactlyVersions = (SDKVersion) => Object.values(SDKVersion).every(exports.isExactlyVersion); exports.getHostId = (config) => config.hostId; /* * left 的所有版本都小于等于 right 的所有版本 * 如果right指定的依赖, left中不存在=>false */ exports.isLE = (left, right) => { return Object.entries(right) .every(([name, version]) => { if (!left[name]) { return false; } return compare_versions_1.default(left[name], version) <= 0; }); }; /* * left 的所有版本都大于等于 right 的所有版本 * 如果right指定的依赖, left中不存在=>false */ exports.isGE = (left, right) => { return Object.entries(right) .every(([name, version]) => { if (!left[name]) { return false; } return compare_versions_1.default(left[name], version) >= 0; }); }; exports.updatePkgVersion = (newer, origin) => { // 有可能是pkgVersion 为空 // const filtedNewVer = R.pick(Object.keys(pkgVersion), newVer) return ramda_1.default.mergeLeft(newer, origin); }; exports.getSDKRoleFromExtType = (extType) => { if (extType.startsWith('app_')) { return 'audience'; } if (extType.startsWith('zs_')) { return 'streamer'; } throw new Error(`unknown extType: ${extType}, can't extract userRole from it`); }; exports.getUserTypeFromExtType = (extType) => { if (extType.startsWith('app_')) { return 'audience'; } if (extType.startsWith('zs_')) { return 'streamer'; } // FIXME 不关心其他类型 return 'common'; }; exports.getSDKName = (SDKRole) => { const dict = { audience: '@hyext/hyext-rn-sdk', streamer: '@hyext/hyliveext-rn-sdk', }; return dict[SDKRole]; }; exports.logger = { error(text) { console.log(chalk_1.default.red(text)); }, warn(text) { console.log(chalk_1.default.yellow(text)); }, info(text) { console.log(chalk_1.default.cyan(text)); }, success(text) { console.log(chalk_1.default.green(text)); } }; /* * export const splitBuildConfigByExtType = (buildConfig: NeoBuildConfig) => { * const groupFn = (config: NeoBuildConfigItem) => { * return getSDKRoleFromExtType(config.extType) * } * * return R.groupBy(groupFn, buildConfig) * } * */ exports.getPublicIP = (config) => { var _a; if (config.host && config.host !== 'localhost') { return config.host; } const ifaces = os_1.default.networkInterfaces(); const addresses = ramda_1.default.flatten(ramda_1.default.values(ifaces)); const address = ramda_1.default.filter((iface) => (iface.family === 'IPv4' && !/^127\./.test(iface.address)), addresses); /* * 有多个 ip 地址又没有在 config.host 中指定的话, 直接退出 */ if (address && address.length > 1) { exports.logger.error(`检测到本机有多个 ip 地址:\n- ${address.map((x) => x.address).join('\n- ')}`); exports.logger.error('请在 project.config.json 的 host 中指定正确的 ip'); process.exit(1); } if (address && address.length <= 0) { exports.logger.error('未能找到本机 ip 地址, 本地开发 app 侧将无法加载小程序'); } return (_a = address[0]) === null || _a === void 0 ? void 0 : _a.address; };