Skip to content

Commit c3a65c8

Browse files
feat(ws): allow to remove packages from availables list (#468)
1 parent 252be91 commit c3a65c8

3 files changed

Lines changed: 27 additions & 5 deletions

File tree

src/cache.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class _AppCache {
156156
}
157157

158158
removePayload(pkg) {
159-
fs.rmSync(path.join(kPayloadsPath, pkg.replaceAll("/", "-")), { force: true });
159+
fs.rmSync(path.join(kPayloadsPath, pkg.replaceAll("/", kSlashReplaceToken)), { force: true });
160160
}
161161

162162
async removeLastMRU() {

src/http-server/websocket/commands/remove.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,33 @@ export async function* remove(
44
) {
55
const { cache, logger } = context;
66

7-
const formattedPkg = pkg.replace("/", "-");
8-
logger.info(`[ws|remove](pkg: ${pkg}|formatted: ${formattedPkg})`);
7+
logger.info(`[ws|remove](pkg: ${pkg})`);
98

109
try {
1110
const { mru, lru, current, lastUsed, root, availables } = await cache.payloadsList();
11+
if (availables.includes(pkg)) {
12+
logger.info(`[ws|remove] remove from availables`);
13+
cache.removePayload(pkg);
14+
const updatedList = {
15+
mru,
16+
lru,
17+
lastUsed: {
18+
...lastUsed,
19+
[pkg]: void 0
20+
},
21+
root,
22+
availables: availables.filter((pkgName) => pkgName !== pkg)
23+
};
24+
await cache.updatePayloadsList(updatedList);
25+
26+
yield {
27+
status: "RELOAD",
28+
...updatedList
29+
};
30+
31+
return;
32+
}
33+
1234
logger.debug(`[ws|remove](lru: ${lru}|current: ${current})`);
1335

1436
if (mru.length === 1 && lru.length === 0) {
@@ -77,7 +99,7 @@ export async function* remove(
7799
};
78100
}
79101

80-
cache.removePayload(formattedPkg);
102+
cache.removePayload(pkg);
81103
}
82104
catch (error) {
83105
logger.error(`[ws|remove](error: ${error.message})`);

test/cache.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ describe("appCache", () => {
201201

202202
appCache.removePayload("foo/bar");
203203

204-
assert.equal(removedPath, path.join(kPayloadsPath, "foo-bar"));
204+
assert.equal(removedPath, path.join(kPayloadsPath, "foo______bar"));
205205
});
206206

207207
it("should not remove the last MRU when MRU is not full", async(t) => {

0 commit comments

Comments
 (0)