feat: refactoring project
This commit is contained in:
44
node_modules/webpack/lib/debug/ProfilingPlugin.js
generated
vendored
44
node_modules/webpack/lib/debug/ProfilingPlugin.js
generated
vendored
@@ -36,12 +36,12 @@ const validate = createSchemaValidation(
|
||||
);
|
||||
|
||||
/** @type {Inspector | undefined} */
|
||||
let inspector = undefined;
|
||||
let inspector;
|
||||
|
||||
try {
|
||||
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
||||
inspector = require("inspector");
|
||||
} catch (e) {
|
||||
} catch (_err) {
|
||||
console.log("Unable to CPU profile in < node 8.0");
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ class Profiler {
|
||||
sendCommand(method, params) {
|
||||
if (this.hasSession()) {
|
||||
return new Promise((res, rej) => {
|
||||
return this.session.post(method, params, (err, params) => {
|
||||
this.session.post(method, params, (err, params) => {
|
||||
if (err !== null) {
|
||||
rej(err);
|
||||
} else {
|
||||
@@ -100,9 +100,8 @@ class Profiler {
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
destroy() {
|
||||
@@ -234,19 +233,20 @@ class ProfilingPlugin {
|
||||
tracer.profiler.startProfiling();
|
||||
|
||||
// Compiler Hooks
|
||||
Object.keys(compiler.hooks).forEach(hookName => {
|
||||
const hook = compiler.hooks[hookName];
|
||||
for (const hookName of Object.keys(compiler.hooks)) {
|
||||
const hook =
|
||||
compiler.hooks[/** @type {keyof Compiler["hooks"]} */ (hookName)];
|
||||
if (hook) {
|
||||
hook.intercept(makeInterceptorFor("Compiler", tracer)(hookName));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Object.keys(compiler.resolverFactory.hooks).forEach(hookName => {
|
||||
for (const hookName of Object.keys(compiler.resolverFactory.hooks)) {
|
||||
const hook = compiler.resolverFactory.hooks[hookName];
|
||||
if (hook) {
|
||||
hook.intercept(makeInterceptorFor("Resolver", tracer)(hookName));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
compiler.hooks.compilation.tap(
|
||||
PLUGIN_NAME,
|
||||
@@ -291,7 +291,9 @@ class ProfilingPlugin {
|
||||
cat: ["toplevel"],
|
||||
ts: cpuStartTime,
|
||||
args: {
|
||||
// eslint-disable-next-line camelcase
|
||||
src_file: "../../ipc/ipc_moji_bootstrap.cc",
|
||||
// eslint-disable-next-line camelcase
|
||||
src_func: "Accept"
|
||||
}
|
||||
});
|
||||
@@ -339,12 +341,12 @@ class ProfilingPlugin {
|
||||
*/
|
||||
const interceptAllHooksFor = (instance, tracer, logLabel) => {
|
||||
if (Reflect.has(instance, "hooks")) {
|
||||
Object.keys(instance.hooks).forEach(hookName => {
|
||||
for (const hookName of Object.keys(instance.hooks)) {
|
||||
const hook = instance.hooks[hookName];
|
||||
if (hook && !hook._fakeHook) {
|
||||
hook.intercept(makeInterceptorFor(logLabel, tracer)(hookName));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -362,13 +364,13 @@ const interceptAllParserHooks = (moduleFactory, tracer) => {
|
||||
WEBASSEMBLY_MODULE_TYPE_SYNC
|
||||
];
|
||||
|
||||
moduleTypes.forEach(moduleType => {
|
||||
for (const moduleType of moduleTypes) {
|
||||
moduleFactory.hooks.parser
|
||||
.for(moduleType)
|
||||
.tap(PLUGIN_NAME, (parser, parserOpts) => {
|
||||
interceptAllHooksFor(parser, tracer, "Parser");
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -388,6 +390,11 @@ const interceptAllJavascriptModulesPluginHooks = (compilation, tracer) => {
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} instance instance
|
||||
* @param {Trace} tracer tracer
|
||||
* @returns {TODO} interceptor
|
||||
*/
|
||||
const makeInterceptorFor = (instance, tracer) => hookName => ({
|
||||
register: tapInfo => {
|
||||
const { name, type, fn } = tapInfo;
|
||||
@@ -400,10 +407,7 @@ const makeInterceptorFor = (instance, tracer) => hookName => ({
|
||||
type,
|
||||
fn
|
||||
});
|
||||
return {
|
||||
...tapInfo,
|
||||
fn: newFn
|
||||
};
|
||||
return { ...tapInfo, fn: newFn };
|
||||
}
|
||||
});
|
||||
|
||||
@@ -476,13 +480,13 @@ const makeNewProfiledTapFn = (hookName, tracer, { name, type, fn }) => {
|
||||
let r;
|
||||
try {
|
||||
r = fn(...args);
|
||||
} catch (error) {
|
||||
} catch (err) {
|
||||
tracer.trace.end({
|
||||
name,
|
||||
id,
|
||||
cat: defaultCategory
|
||||
});
|
||||
throw error;
|
||||
throw err;
|
||||
}
|
||||
tracer.trace.end({
|
||||
name,
|
||||
|
||||
Reference in New Issue
Block a user