1'use strict'
2
3const { rm } = require('fs/promises')
4const glob = require('./util/glob.js')
5const index = require('./entry-index')
6const memo = require('./memoization')
7const path = require('path')
8const rmContent = require('./content/rm')
9
10module.exports = entry
11module.exports.entry = entry
12
13function entry (cache, key, opts) {
14  memo.clearMemoized()
15  return index.delete(cache, key, opts)
16}
17
18module.exports.content = content
19
20function content (cache, integrity) {
21  memo.clearMemoized()
22  return rmContent(cache, integrity)
23}
24
25module.exports.all = all
26
27async function all (cache) {
28  memo.clearMemoized()
29  const paths = await glob(path.join(cache, '*(content-*|index-*)'), { silent: true, nosort: true })
30  return Promise.all(paths.map((p) => rm(p, { recursive: true, force: true })))
31}
32