You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
import path from 'path'
|
|
|
|
import * as fs from 'fs'
|
|
|
|
|
|
|
|
import Media from './../media.js'
|
|
|
|
|
|
|
|
/**
|
|
|
|
* asset - checks manifest.json for given path and return
|
|
|
|
* file path with id for cache busting
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param {String} publicPath
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
function asset(staticPath)
|
|
|
|
{
|
|
|
|
// getting basePath
|
|
|
|
let result = staticPath
|
|
|
|
|
|
|
|
// path to mix-manifest
|
|
|
|
const file = path.join(path.resolve()) + 'mix-manifest.json'
|
|
|
|
|
|
|
|
if (fs.existsSync(file)) {
|
|
|
|
|
|
|
|
const manifest = fs.readFileSync(file)
|
|
|
|
const files = JSON.parse(manifest)
|
|
|
|
|
|
|
|
if (files[staticPath]) {
|
|
|
|
result = files[staticPath]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* asset - checks manifest.json for given path and return
|
|
|
|
* file path with id for cache busting
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param {String} publicPath
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
async function resize(src, sizes, options, done)
|
|
|
|
{
|
|
|
|
const media = new Media()
|
|
|
|
|
|
|
|
src = await media.resize(src, sizes, options)
|
|
|
|
done(null, src)
|
|
|
|
}
|
|
|
|
|
|
|
|
export { asset, resize }
|