27 lines
		
	
	
		
			748 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			748 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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}`)
 | |
| }
 |