@hippy/debug-server-next
Version:
Debug server for hippy.
113 lines (112 loc) • 3.79 kB
JavaScript
;
/*
* Tencent is pleased to support the open source community by making
* Hippy available.
*
* Copyright (C) 2017-2019 THL A29 Limited, a Tencent company.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCDPPerformance = exports.report = void 0;
const tslib_1 = require("tslib");
const os_1 = tslib_1.__importDefault(require("os"));
const aegis_1 = tslib_1.__importDefault(require("@debug-server-next/patch/aegis"));
const beacon_1 = tslib_1.__importDefault(require("@debug-server-next/patch/beacon"));
const config_1 = require("@debug-server-next/config");
const bundle_version_1 = require("@debug-server-next/utils/bundle-version");
const enum_1 = require("@debug-server-next/@types/enum");
const package_json_1 = require("../../package.json");
class Report {
constructor() {
this.event = (event) => {
aegis.reportEvent(event);
getBeacon().onDirectUserAction(event.name, event);
};
this.error = (e) => {
aegis.report(e);
};
this.log = (msg) => {
aegis.infoAll(msg);
};
this.time = (duration, event) => {
aegis.reportTime({
duration,
...event,
});
};
this.timeStart = (name) => {
const start = Date.now();
return (event = {}) => {
const end = Date.now();
const duration = end - start;
aegis.reportTime({
duration,
...event,
name,
});
};
};
this.addCommonParams = (params) => {
getBeacon().addAdditionalParams({
...params,
userApp: global.debugAppArgv.env,
devtoolsPlatform: devtoolsPlatform(),
devtoolsEnv: config_1.config.isCluster ? 'remote' : 'local',
hostname: os_1.default.hostname(),
});
};
}
}
exports.report = new Report();
const aegis = new aegis_1.default({
id: config_1.config.aegisId,
selector: {
type: 'host',
},
uin: (0, bundle_version_1.getBundleVersionId)(),
version: package_json_1.version,
ext3: config_1.config.isCluster ? 'remote' : 'local',
// protocol: 'http',
});
let beacon;
const getBeacon = () => {
if (!beacon) {
beacon = new beacon_1.default({
appkey: '0WEB0A25405J1LFO',
versionCode: package_json_1.version,
openid: (0, bundle_version_1.getBundleVersionId)(),
unionid: (0, bundle_version_1.getBundleVersionId)(),
});
}
return beacon;
};
const devtoolsPlatform = () => {
const osType = os_1.default.type();
if (osType === enum_1.OSType.Darwin) {
if (process.arch === 'arm64') {
return `${osType}_arm64`;
}
return `${osType}_x86`;
}
return osType;
};
const createCDPPerformance = (perf) => ({
devtoolsToDebugServer: 0,
debugServerReceiveFromDevtools: 0,
debugServerToDevtools: 0,
devtoolsReceive: 0,
...(perf || {}),
});
exports.createCDPPerformance = createCDPPerformance;