'use strict';
|
|
const fs = require('fs');
|
const mime = require('mime');
|
|
const getPathByBasePath = require('./paths').getPathByBasePath;
|
|
/**
|
*
|
* @param {PostcssUrl~Asset} asset
|
* @param {PostcssUrl~Options} options
|
* @param {PostcssUrl~Dir} dir
|
* @param {Function} warn
|
* @returns {PostcssUrl~File}
|
*/
|
const getFile = (asset, options, dir, warn) => {
|
const paths = options.basePath
|
? getPathByBasePath(options.basePath, dir.from, asset.pathname)
|
: [asset.absolutePath];
|
const filePath = paths.find(fs.existsSync);
|
|
if (!filePath) {
|
warn(`Can't read file '${paths.join()}', ignoring`);
|
|
return;
|
}
|
|
return {
|
path: filePath,
|
contents: fs.readFileSync(filePath),
|
mimeType: mime.getType(filePath)
|
};
|
};
|
|
module.exports = getFile;
|
|
/**
|
* @typedef {Object} PostcssUrl~File
|
* @property {String} path
|
* @property {Buffer} contents
|
* @property {String} mimeType
|
*/
|