feat: refactoring project
This commit is contained in:
122
node_modules/webpack/lib/dependencies/CommonJsImportsParserPlugin.js
generated
vendored
122
node_modules/webpack/lib/dependencies/CommonJsImportsParserPlugin.js
generated
vendored
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user