feat: refactoring project

This commit is contained in:
Carlos
2024-11-23 14:56:07 -05:00
parent f0c2a50c18
commit 1c6db5818d
2351 changed files with 39323 additions and 60326 deletions

View File

@@ -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,