Blame view

node_modules/cacache/lib/content/path.js 748 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  'use strict'
  
  const contentVer = require('../../package.json')['cache-version'].content
  const hashToSegments = require('../util/hash-to-segments')
  const path = require('path')
  const ssri = require('ssri')
  
  // Current format of content file path:
  //
  // sha512-BaSE64Hex= ->
  // ~/.my-cache/content-v2/sha512/ba/da/55deadbeefc0ffee
  //
  module.exports = contentPath
  function contentPath (cache, integrity) {
    const sri = ssri.parse(integrity, {single: true})
    // contentPath is the *strongest* algo given
    return path.join.apply(path, [
      contentDir(cache),
      sri.algorithm
    ].concat(hashToSegments(sri.hexDigest())))
  }
  
  module.exports._contentDir = contentDir
  function contentDir (cache) {
    return path.join(cache, `content-v${contentVer}`)
  }