Skip to content

Commit 935d925

Browse files
committed
refactor(project): Fix handling cache handling of removed resources
1 parent 95f20f0 commit 935d925

2 files changed

Lines changed: 16 additions & 13 deletions

File tree

packages/project/lib/build/cache/ProjectBuildCache.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -680,19 +680,18 @@ export default class ProjectBuildCache {
680680
async #updateSourceIndex(changedResourcePaths) {
681681
const sourceReader = this.#project.getSourceReader();
682682

683-
const resources = await Promise.all(changedResourcePaths.map((resourcePath) => {
684-
return sourceReader.byPath(resourcePath);
685-
}));
686-
const removedResources = [];
687-
const foundResources = resources.filter((resource) => {
688-
if (!resource) {
689-
removedResources.push(resource);
690-
return false;
683+
const resources = [];
684+
const removedResourcePaths = [];
685+
await Promise.all(changedResourcePaths.map(async (resourcePath) => {
686+
const resource = await sourceReader.byPath(resourcePath);
687+
if (resource) {
688+
resources.push(resource);
689+
} else {
690+
removedResourcePaths.push(resourcePath);
691691
}
692-
return true;
693-
});
694-
const {removed} = await this.#sourceIndex.removeResources(removedResources);
695-
const {added, updated} = await this.#sourceIndex.upsertResources(foundResources, Date.now());
692+
}));
693+
const {removed} = await this.#sourceIndex.removeResources(removedResourcePaths);
694+
const {added, updated} = await this.#sourceIndex.upsertResources(resources, Date.now());
696695

697696
if (removed.length || added.length || updated.length) {
698697
log.verbose(`Source resource index for project ${this.#project.getName()} updated: ` +

packages/project/lib/build/cache/ResourceRequestManager.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,11 @@ class ResourceRequestManager {
336336
let changedPaths;
337337
if (diff) {
338338
const {added, updated, removed} = diff;
339-
changedPaths = Array.from(new Set([...added, ...updated, ...removed]));
339+
if (removed.length) {
340+
// Cannot use differential build if a resource has been removed
341+
continue;
342+
}
343+
changedPaths = Array.from(new Set([...added, ...updated]));
340344
} else {
341345
changedPaths = [];
342346
}

0 commit comments

Comments
 (0)