fix minor type issues and linting

This commit is contained in:
Tobias Koppers 2018-06-20 12:04:47 +02:00
parent 04d2af0825
commit 3e778b85c7
3 changed files with 34 additions and 20 deletions

View File

@ -24,12 +24,24 @@ const ERR_CHUNK_INITIAL =
*/
/**
* Compare two objects based on their ids for sorting
* @param {WithId} a object that contains an ID property
* @param {WithId} b object that contains an ID property
* Compare two Modules based on their ids for sorting
* @param {Module} a module
* @param {Module} b module
* @returns {-1|0|1} sort value
*/
const sortById = (a, b) => {
const sortModuleById = (a, b) => {
if (a.id < b.id) return -1;
if (b.id < a.id) return 1;
return 0;
};
/**
* Compare two ChunkGroups based on their ids for sorting
* @param {ChunkGroup} a chunk group
* @param {ChunkGroup} b chunk group
* @returns {-1|0|1} sort value
*/
const sortChunkGroupById = (a, b) => {
if (a.id < b.id) return -1;
if (b.id < a.id) return 1;
return 0;
@ -103,7 +115,7 @@ class Chunk {
/** @private @type {SortableSet<Module>} */
this._modules = new SortableSet(undefined, sortByIdentifier);
/** @private @type {SortableSet<ChunkGroup>} */
this._groups = new SortableSet(undefined, sortById);
this._groups = new SortableSet(undefined, sortChunkGroupById);
/** @type {Source[]} */
this.files = [];
/** @type {boolean} */
@ -492,7 +504,7 @@ class Chunk {
* @returns {void}
*/
sortModules(sortByFn) {
this._modules.sortWith(sortByFn || sortById);
this._modules.sortWith(sortByFn || sortModuleById);
}
sortItems() {

View File

@ -6,6 +6,9 @@
const { Tapable, SyncWaterfallHook, SyncHook } = require("tapable");
/** @typedef {import("webpack-sources").Source} Source */
/** @typedef {import("./Module")} Module */
module.exports = class ModuleTemplate extends Tapable {
constructor(runtimeTemplate, type) {
super();
@ -40,6 +43,12 @@ module.exports = class ModuleTemplate extends Tapable {
};
}
/**
* @param {Module} module the module
* @param {TODO} dependencyTemplates templates for dependencies
* @param {TODO} options render options
* @returns {Source} the source
*/
render(module, dependencyTemplates, options) {
try {
const moduleSource = module.source(

View File

@ -44,14 +44,6 @@ const stringifyIdSortPredicate = (a, b) => {
return 0;
};
/**
* @param {Module} module the module to compare against
* @returns {boolean} return true if module.id is equal to type "number"
*/
const moduleIdIsNumber = module => {
return typeof module.id === "number";
};
class Template {
/**
*
@ -177,18 +169,20 @@ class Template {
}
/**
*
* @param {Module[]} modules a collection of modules to get array bounds for
* @typedef {Object} WithId
* @property {string|number} id
*/
/**
* @param {WithId[]} modules a collection of modules to get array bounds for
* @returns {[number, number] | false} returns the upper and lower array bounds
* or false if not every module has a number based id
*/
static getModulesArrayBounds(modules) {
// Typeguards don't work for .every() with predicate functions
// https://github.com/Microsoft/TypeScript/issues/23799
if (!modules.every(moduleIdIsNumber)) return false;
var maxId = -Infinity;
var minId = Infinity;
for (const module of modules) {
if (typeof module.id !== "number") return false;
if (maxId < module.id) maxId = /** @type {number} */ (module.id);
if (minId > module.id) minId = /** @type {number} */ (module.id);
}
@ -236,7 +230,6 @@ class Template {
source.add("[]");
return source;
}
/** @type {Module[]} */
var allModules = modules.map(module => {
return {
id: module.id,