refactor(types): more

This commit is contained in:
alexander.akait 2023-06-16 21:49:43 +03:00
parent e381884115
commit a911bd9fa1
10 changed files with 41 additions and 15 deletions

View File

@ -23,7 +23,7 @@ class AsyncDependenciesBlock extends DependenciesBlock {
/** /**
* @param {ChunkGroupOptions & { entryOptions?: EntryOptions }} groupOptions options for the group * @param {ChunkGroupOptions & { entryOptions?: EntryOptions }} groupOptions options for the group
* @param {DependencyLocation=} loc the line of code * @param {DependencyLocation=} loc the line of code
* @param {string=} request the request * @param {(string | null)=} request the request
*/ */
constructor(groupOptions, loc, request) { constructor(groupOptions, loc, request) {
super(); super();

View File

@ -58,7 +58,10 @@ class DllEntryPlugin {
this.options.name this.options.name
), ),
this.options, this.options,
callback error => {
if (error) return callback(error);
callback();
}
); );
}); });
} }

View File

@ -30,7 +30,7 @@ class HarmonyTopLevelThisParserPlugin {
); );
dep.loc = /** @type {DependencyLocation} */ (node.loc); dep.loc = /** @type {DependencyLocation} */ (node.loc);
parser.state.module.addPresentationalDependency(dep); parser.state.module.addPresentationalDependency(dep);
return this; return true;
} }
}); });
} }

View File

@ -17,6 +17,7 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../DependencyTemplates")} DependencyTemplates */
/** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */ /** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
@ -127,7 +128,9 @@ class ProvidedDependencyTemplate extends ModuleDependency.Template {
} }
) { ) {
const dep = /** @type {ProvidedDependency} */ (dependency); const dep = /** @type {ProvidedDependency} */ (dependency);
const connection = moduleGraph.getConnection(dep); const connection =
/** @type {ModuleGraphConnection} */
(moduleGraph.getConnection(dep));
const exportsInfo = moduleGraph.getExportsInfo(connection.module); const exportsInfo = moduleGraph.getExportsInfo(connection.module);
const usedName = exportsInfo.getUsedName(dep.ids, runtime); const usedName = exportsInfo.getUsedName(dep.ids, runtime);
initFragments.push( initFragments.push(

View File

@ -7,7 +7,15 @@
const RequireContextDependency = require("./RequireContextDependency"); const RequireContextDependency = require("./RequireContextDependency");
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
module.exports = class RequireContextDependencyParserPlugin { module.exports = class RequireContextDependencyParserPlugin {
/**
* @param {JavascriptParser} parser the parser
* @returns {void}
*/
apply(parser) { apply(parser) {
parser.hooks.call parser.hooks.call
.for("require.context") .for("require.context")
@ -19,19 +27,19 @@ module.exports = class RequireContextDependencyParserPlugin {
case 4: { case 4: {
const modeExpr = parser.evaluateExpression(expr.arguments[3]); const modeExpr = parser.evaluateExpression(expr.arguments[3]);
if (!modeExpr.isString()) return; if (!modeExpr.isString()) return;
mode = modeExpr.string; mode = /** @type {string} */ (modeExpr.string);
} }
// falls through // falls through
case 3: { case 3: {
const regExpExpr = parser.evaluateExpression(expr.arguments[2]); const regExpExpr = parser.evaluateExpression(expr.arguments[2]);
if (!regExpExpr.isRegExp()) return; if (!regExpExpr.isRegExp()) return;
regExp = regExpExpr.regExp; regExp = /** @type {RegExp} */ (regExpExpr.regExp);
} }
// falls through // falls through
case 2: { case 2: {
const recursiveExpr = parser.evaluateExpression(expr.arguments[1]); const recursiveExpr = parser.evaluateExpression(expr.arguments[1]);
if (!recursiveExpr.isBoolean()) return; if (!recursiveExpr.isBoolean()) return;
recursive = recursiveExpr.bool; recursive = /** @type {boolean} */ (recursiveExpr.bool);
} }
// falls through // falls through
case 1: { case 1: {
@ -45,9 +53,9 @@ module.exports = class RequireContextDependencyParserPlugin {
mode, mode,
category: "commonjs" category: "commonjs"
}, },
expr.range /** @type {Range} */ (expr.range)
); );
dep.loc = expr.loc; dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = !!parser.scope.inTry; dep.optional = !!parser.scope.inTry;
parser.state.current.addDependency(dep); parser.state.current.addDependency(dep);
return true; return true;

View File

@ -8,10 +8,13 @@
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock"); const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
/** @typedef {import("../ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock { class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock {
/** /**
* @param {TODO} chunkName chunk name * @param {ChunkGroupOptions & { entryOptions?: TODO }} chunkName chunk name
* @param {TODO} loc location info * @param {DependencyLocation} loc location info
*/ */
constructor(chunkName, loc) { constructor(chunkName, loc) {
super(chunkName, loc, null); super(chunkName, loc, null);

View File

@ -10,6 +10,9 @@ const RequireEnsureDependency = require("./RequireEnsureDependency");
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency"); const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
const getFunctionExpression = require("./getFunctionExpression"); const getFunctionExpression = require("./getFunctionExpression");
/** @typedef {import("../ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
module.exports = class RequireEnsureDependenciesBlockParserPlugin { module.exports = class RequireEnsureDependenciesBlockParserPlugin {
apply(parser) { apply(parser) {
parser.hooks.call parser.hooks.call
@ -57,7 +60,9 @@ module.exports = class RequireEnsureDependenciesBlockParserPlugin {
} }
const depBlock = new RequireEnsureDependenciesBlock( const depBlock = new RequireEnsureDependenciesBlock(
chunkName, /** @type {ChunkGroupOptions & { entryOptions?: TODO }} */ (
chunkName
),
expr.loc expr.loc
); );
const errorCallbackExists = const errorCallbackExists =

View File

@ -35,6 +35,10 @@ class RequireHeaderDependency extends NullDependency {
super.serialize(context); super.serialize(context);
} }
/**
* @param {ObjectDeserializerContext} context context
* @returns {RequireHeaderDependency} RequireHeaderDependency
*/
static deserialize(context) { static deserialize(context) {
const obj = new RequireHeaderDependency(context.read()); const obj = new RequireHeaderDependency(context.read());
obj.deserialize(context); obj.deserialize(context);

View File

@ -6,7 +6,7 @@
"allowJs": true, "allowJs": true,
"checkJs": true, "checkJs": true,
"noEmit": true, "noEmit": true,
"strict": true, "strict": false,
"noImplicitThis": true, "noImplicitThis": true,
"alwaysStrict": true, "alwaysStrict": true,
"types": ["node"], "types": ["node"],

4
types.d.ts vendored
View File

@ -355,13 +355,13 @@ declare class AsyncDependenciesBlock extends DependenciesBlock {
entryOptions?: EntryOptions; entryOptions?: EntryOptions;
}, },
loc?: SyntheticDependencyLocation | RealDependencyLocation, loc?: SyntheticDependencyLocation | RealDependencyLocation,
request?: string request?: null | string
); );
groupOptions: RawChunkGroupOptions & { name?: string } & { groupOptions: RawChunkGroupOptions & { name?: string } & {
entryOptions?: EntryOptions; entryOptions?: EntryOptions;
}; };
loc?: SyntheticDependencyLocation | RealDependencyLocation; loc?: SyntheticDependencyLocation | RealDependencyLocation;
request?: string; request?: null | string;
chunkName?: string; chunkName?: string;
module: any; module: any;
} }