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

@@ -63,7 +63,7 @@ class CommonJsImportsParserPlugin {
}
};
//#region metadata
// #region metadata
/**
* @param {string} expression expression
* @param {() => string[]} getMembers get members
@@ -102,7 +102,7 @@ class CommonJsImportsParserPlugin {
tapRequireExpression("require", () => []);
tapRequireExpression("require.resolve", () => ["resolve"]);
tapRequireExpression("require.resolveWeak", () => ["resolveWeak"]);
//#endregion
// #endregion
// Weird stuff //
parser.hooks.assign
@@ -115,7 +115,7 @@ class CommonJsImportsParserPlugin {
return true;
});
//#region Unsupported
// #region Unsupported
parser.hooks.expression
.for("require.main")
.tap(
@@ -152,9 +152,9 @@ class CommonJsImportsParserPlugin {
"module.parent.require is not supported by webpack."
)
);
//#endregion
// #endregion
//#region Renaming
// #region Renaming
/**
* @param {Expression} expr expression
* @returns {boolean} true when set undefined
@@ -175,9 +175,9 @@ class CommonJsImportsParserPlugin {
parser.hooks.rename
.for("require")
.tap("CommonJsImportsParserPlugin", defineUndefined);
//#endregion
// #endregion
//#region Inspection
// #region Inspection
const requireCache = toConstantDependency(
parser,
RuntimeGlobals.moduleCache,
@@ -191,9 +191,9 @@ class CommonJsImportsParserPlugin {
parser.hooks.expression
.for("require.cache")
.tap("CommonJsImportsParserPlugin", requireCache);
//#endregion
// #endregion
//#region Require as expression
// #region Require as expression
/**
* @param {Expression} expr expression
* @returns {boolean} true when handled
@@ -215,16 +215,16 @@ class CommonJsImportsParserPlugin {
options.unknownContextCritical &&
"require function is used in a way in which dependencies cannot be statically extracted";
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
parser.state.current.addDependency(dep);
return true;
};
parser.hooks.expression
.for("require")
.tap("CommonJsImportsParserPlugin", requireAsExpressionHandler);
//#endregion
// #endregion
//#region Require
// #region Require
/**
* @param {CallExpression | NewExpression} expr expression
* @param {BasicEvaluatedExpression} param param
@@ -238,7 +238,7 @@ class CommonJsImportsParserPlugin {
getContext()
);
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
parser.state.current.addDependency(dep);
return true;
}
@@ -264,7 +264,7 @@ class CommonJsImportsParserPlugin {
);
if (!dep) return;
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
parser.state.current.addDependency(dep);
return true;
};
@@ -283,26 +283,22 @@ class CommonJsImportsParserPlugin {
parser.state.module.addWarning(
new CommentCompilationWarning(
`Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`,
comment.loc
/** @type {DependencyLocation} */ (comment.loc)
)
);
}
}
if (requireOptions) {
if (requireOptions.webpackIgnore !== undefined) {
if (typeof requireOptions.webpackIgnore !== "boolean") {
parser.state.module.addWarning(
new UnsupportedFeatureWarning(
`\`webpackIgnore\` expected a boolean, but received: ${requireOptions.webpackIgnore}.`,
/** @type {DependencyLocation} */ (expr.loc)
)
);
} else {
// Do not instrument `require()` if `webpackIgnore` is `true`
if (requireOptions.webpackIgnore) {
return true;
}
}
if (requireOptions && requireOptions.webpackIgnore !== undefined) {
if (typeof requireOptions.webpackIgnore !== "boolean") {
parser.state.module.addWarning(
new UnsupportedFeatureWarning(
`\`webpackIgnore\` expected a boolean, but received: ${requireOptions.webpackIgnore}.`,
/** @type {DependencyLocation} */ (expr.loc)
)
);
} else if (requireOptions.webpackIgnore) {
// Do not instrument `require()` if `webpackIgnore` is `true`
return true;
}
}
}
@@ -370,9 +366,9 @@ class CommonJsImportsParserPlugin {
parser.hooks.new
.for("module.require")
.tap("CommonJsImportsParserPlugin", createRequireHandler(true));
//#endregion
// #endregion
//#region Require with property access
// #region Require with property access
/**
* @param {Expression} expr expression
* @param {string[]} calleeMembers callee members
@@ -403,7 +399,7 @@ class CommonJsImportsParserPlugin {
dep.asiSafe = !parser.isAsiPosition(
/** @type {Range} */ (expr.range)[0]
);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
parser.state.current.addDependency(dep);
return true;
@@ -440,7 +436,7 @@ class CommonJsImportsParserPlugin {
dep.asiSafe = !parser.isAsiPosition(
/** @type {Range} */ (expr.range)[0]
);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
dep.loc = /** @type {DependencyLocation} */ (expr.callee.loc);
parser.state.current.addDependency(dep);
parser.walkExpressions(expr.arguments);
@@ -459,9 +455,9 @@ class CommonJsImportsParserPlugin {
parser.hooks.callMemberChainOfCallMemberChain
.for("module.require")
.tap("CommonJsImportsParserPlugin", callChainHandler);
//#endregion
// #endregion
//#region Require.resolve
// #region Require.resolve
/**
* @param {CallExpression} expr call expression
* @param {boolean} weak weak
@@ -485,18 +481,17 @@ class CommonJsImportsParserPlugin {
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
parser.state.module.addPresentationalDependency(dep);
return true;
} else {
const result = processResolveItem(expr, param, weak);
if (result === undefined) {
processResolveContext(expr, param, weak);
}
const dep = new RequireResolveHeaderDependency(
/** @type {Range} */ (expr.callee.range)
);
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
parser.state.module.addPresentationalDependency(dep);
return true;
}
const result = processResolveItem(expr, param, weak);
if (result === undefined) {
processResolveContext(expr, param, weak);
}
const dep = new RequireResolveHeaderDependency(
/** @type {Range} */ (expr.callee.range)
);
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
parser.state.module.addPresentationalDependency(dep);
return true;
};
/**
* @param {CallExpression} expr call expression
@@ -512,7 +507,7 @@ class CommonJsImportsParserPlugin {
getContext()
);
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
dep.weak = weak;
parser.state.current.addDependency(dep);
return true;
@@ -540,24 +535,20 @@ class CommonJsImportsParserPlugin {
);
if (!dep) return;
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = !!parser.scope.inTry;
dep.optional = Boolean(parser.scope.inTry);
parser.state.current.addDependency(dep);
return true;
};
parser.hooks.call
.for("require.resolve")
.tap("CommonJsImportsParserPlugin", expr => {
return processResolve(expr, false);
});
.tap("CommonJsImportsParserPlugin", expr => processResolve(expr, false));
parser.hooks.call
.for("require.resolveWeak")
.tap("CommonJsImportsParserPlugin", expr => {
return processResolve(expr, true);
});
//#endregion
.tap("CommonJsImportsParserPlugin", expr => processResolve(expr, true));
// #endregion
//#region Create require
// #region Create require
if (!options.createRequire) return;
@@ -599,23 +590,20 @@ class CommonJsImportsParserPlugin {
data: { context },
next: undefined
});
return new BasicEvaluatedExpression()
.setIdentifier(
/** @type {TODO} */ (ident),
/** @type {TODO} */ (ident),
() => []
)
.setIdentifier(ident, ident, () => [])
.setSideEffects(false)
.setRange(/** @type {Range} */ (expr.range));
});
parser.hooks.unhandledExpressionMemberChain
.for(createdRequireIdentifierTag)
.tap("CommonJsImportsParserPlugin", (expr, members) => {
return expressionIsUnsupported(
.tap("CommonJsImportsParserPlugin", (expr, members) =>
expressionIsUnsupported(
parser,
`createRequire().${members.join(".")} is not supported by webpack.`
)(expr);
});
)(expr)
);
parser.hooks.canRename
.for(createdRequireIdentifierTag)
.tap("CommonJsImportsParserPlugin", () => true);
@@ -789,7 +777,7 @@ class CommonJsImportsParserPlugin {
parser.state.module.addPresentationalDependency(clearDep);
return true;
});
//#endregion
// #endregion
}
}
module.exports = CommonJsImportsParserPlugin;