Current File : //lib/node_modules/pm2/node_modules/@pm2/io/build/main/src/features/coverage.js |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const serviceManager_1 = require("../serviceManager");
const semver = require("semver");
const debug_1 = require("debug");
const debug = debug_1.default('axm:coveragefeature');
class CoverageFeature {
constructor() {
this.inspectorService = serviceManager_1.ServiceManager.get('inspector');
}
init() {
if (semver.satisfies(process.version, '< 8.0.0') ||
(semver.satisfies(process.version, '< 10.0.0') && !process.env.FORCE_INSPECTOR)) {
return new Promise(resolve => {
debug(`Coverage feature is not available for node < 8.0.0 (force inspector : ${process.env.FORCE_INSPECTOR}), current version ${process.version}`);
resolve(`Coverage feature is not available for node < 8.0.0 (force inspector : ${process.env.FORCE_INSPECTOR}), current version ${process.version}`);
});
}
this.inspectorService.createSession();
this.inspectorService.connect();
return this.inspectorService.post('Profiler.enable');
}
destroy() {
this.inspectorService.disconnect();
}
start(opts) {
this.method = !opts.method ? 'takePreciseCoverage' : opts.method;
return this.inspectorService.post('Profiler.startPreciseCoverage', { callCount: !!opts.callCount, detailed: !!opts.detailed });
}
stop() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const data = yield this.getInfo();
return JSON.stringify(data);
});
}
getInfo() {
// const self = this
return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
const data = yield this.inspectorService.post('Profiler.' + this.method);
yield this.inspectorService.post('Profiler.stopPreciseCoverage');
return resolve(data);
}
catch (err) {
debug('Coverage profiling stopped !', err);
return reject(err);
}
}));
}
}
exports.default = CoverageFeature;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292ZXJhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmVhdHVyZXMvY292ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsc0RBQWtEO0FBQ2xELGlDQUFnQztBQUVoQyxpQ0FBeUI7QUFDekIsTUFBTSxLQUFLLEdBQUcsZUFBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFFMUM7SUFLRTtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRywrQkFBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUM5QyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDakYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsS0FBSyxDQUFDLHlFQUF5RSxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsc0JBQXNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO2dCQUNsSixPQUFPLENBQUMseUVBQXlFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxzQkFBc0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDdEosQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDL0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBRSxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBRWhFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ2pJLENBQUM7SUFFSyxJQUFJOztZQUNSLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixDQUFDO0tBQUE7SUFFTyxPQUFPO1FBQ2Isb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBTyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSTtnQkFDRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDeEUsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUE7Z0JBRWhFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO2FBRXJCO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osS0FBSyxDQUFDLDhCQUE4QixFQUFFLEdBQUcsQ0FBQyxDQUFBO2dCQUMxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNuQjtRQUNILENBQUMsQ0FBQSxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUFyREQsa0NBcURDIn0=