Skip to content

Commit 0f33cf2

Browse files
committed
Typing: Use upstream Chunk, Module types from webpack, and adhere to new Set interface
1 parent ef3582e commit 0f33cf2

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

src/webpack/util/getAffectedModuleIds.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Module, Chunk } from '../types'
1+
import Chunk from 'webpack/lib/Chunk'
2+
import Module from 'webpack/lib/Module'
23

34
type ModuleMap = {
45
[key: string]: Module
@@ -38,8 +39,8 @@ const affectedModules = (
3839
* [moduleId]: Module
3940
* }
4041
*/
41-
const buildModuleMap = (modules: Array<Module>): ModuleMap => {
42-
const moduleMap = modules.reduce(
42+
const buildModuleMap = (modules: Set<Module>): ModuleMap => {
43+
const moduleMap = Array.from(modules).reduce(
4344
(memo, module: Module) => ({ ...memo, [module.id]: module }),
4445
{}
4546
)
@@ -55,12 +56,13 @@ const buildModuleMap = (modules: Array<Module>): ModuleMap => {
5556
* }
5657
* }
5758
*
58-
* @param modules Array<number>
59+
* @param chunks Set<Chunk>
60+
* @param modules Set<Module>
5961
* @return ModuleUsageMap
6062
*/
6163
const buildModuleUsageMap = (
62-
chunks: Array<Chunk>,
63-
modules: Array<Module>
64+
chunks: Set<Chunk>,
65+
modules: Set<Module>
6466
): ModuleUsageMap => {
6567
// build a map of all modules with their parent
6668
// {
@@ -69,7 +71,7 @@ const buildModuleUsageMap = (
6971
// }
7072
// }
7173
//
72-
const moduleUsageMap: ModuleUsageMap = modules.reduce(
74+
const moduleUsageMap: ModuleUsageMap = Array.from(modules).reduce(
7375
(memo, module: Module) => {
7476
module.dependencies.forEach(dependency => {
7577
const dependentModule = dependency.module
@@ -93,12 +95,12 @@ const buildModuleUsageMap = (
9395
// [moduleId]: Module
9496
// }
9597
// }
96-
const chunkModuleMap: ModuleUsageMap = chunks.reduce((memo, chunk: Chunk) => {
98+
const chunkModuleMap: ModuleUsageMap = Array.from(chunks).reduce((memo, chunk: Chunk) => {
9799
// build chunk map first to get also empty chunks (without modules)
98100
memo[chunk.id] = {} // eslint-disable-line no-param-reassign
99101
return memo
100102
}, {})
101-
modules.reduce((memo, module: Module) => {
103+
Array.from(modules).reduce((memo, module: Module) => {
102104
module.getChunks().forEach((chunk: Chunk) => {
103105
memo[chunk.id][module.id] = module // eslint-disable-line no-param-reassign
104106
})
@@ -133,18 +135,18 @@ const buildModuleUsageMap = (
133135
* - affected directly by a file change
134136
* - affected indirectly by a change of it's dependencies and so on
135137
*
136-
* @param chunks Array<Chunk>
137-
* @param modules Array<Module>
138+
* @param chunks Set<Chunk>
139+
* @param modules Set<Module>
138140
* @return {Array.<number>}
139141
*/
140142
export default function getAffectedModuleIds(
141-
chunks: Array<Chunk>,
142-
modules: Array<Module>
143+
chunks: Set<Chunk>,
144+
modules: Set<Module>
143145
): Array<number | string> {
144146
const moduleMap: ModuleMap = buildModuleMap(modules)
145147
const moduleUsageMap: ModuleUsageMap = buildModuleUsageMap(chunks, modules)
146148

147-
const builtModules = modules.filter(isBuilt)
149+
const builtModules = Array.from(modules).filter(isBuilt)
148150
const affectedMap: ModuleMap = {}
149151
builtModules.forEach((module: Module) =>
150152
affectedModules(moduleMap, moduleUsageMap, affectedMap, module.id)

src/webpack/util/getBuildStats.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import path from 'path'
22
import { Stats } from 'webpack'
3+
import Chunk from 'webpack/lib/Chunk'
4+
import Module from 'webpack/lib/Module'
35
import sortChunks from './sortChunks'
46
import getAffectedModuleIds from './getAffectedModuleIds'
5-
import { Chunk, Module } from '../types'
67

78
export type BuildStats = {
89
affectedModules: Array<number | string>

0 commit comments

Comments
 (0)