@honor-minigame/cli
Version:
honor minigame pack cli
60 lines (55 loc) • 2.03 kB
JavaScript
import path from 'path'
// import { error, fs, info, projectPath } from '../cli-shared-utils/index.js'
import fs from 'fs-extra'
import { projectPath } from '../utils/index.js'
import { error } from '../utils/logger.js'
import { recordClient, getRecordClient, LINK_MODE,
CLIENT_PORT, getClientFromRequest, clientRecordPath } from './record-client.js'
/**
* 记录最新的用户进入的请求
*/
export async function logger (context, next) {
try {
const { sn, clientIp, linkMode, serverIp } = getClientFromRequest(context.request)
const addrClient = clientIp
const addrServer = serverIp
let client = {
sn: sn,
ip: addrClient,
port: CLIENT_PORT
}
switch (linkMode) {
case LINK_MODE.WIFI:
console.info(`### App Server ### 记录从${addrClient}进入的HTTP请求`)
recordClient(clientRecordPath, client)
break
case LINK_MODE.ADB:
// ADB模式下需要先读取连接时记录的信息
client = getRecordClient(clientRecordPath, sn, addrClient)
if (!sn) {
break
}
if (!client) {
const realSN = context.adbDebugger.emulators.get(sn)
client = getRecordClient(clientRecordPath, realSN, clientIp)
}
if (client) {
console.info(`### App Server ### 记录从设备(${sn})进入的HTTP请求`)
recordClient(clientRecordPath, client)
} else {
console.info(`### App Server ### :记录设备(${sn})失败`)
}
break
}
if (addrClient !== addrServer && (addrClient !== '127.0.0.1' || linkMode === LINK_MODE.ADB)) {
// info(`### App Server ### 写入到client.json,${addrClient}的HTTP请求`)
fs.outputJsonSync(path.resolve(projectPath, 'client.json'), {
client: addrClient,
timestamp: new Date()
})
}
} catch (err) {
error(`### App Server ### 记录log出错: ${err.message}`)
}
await next()
}