Ghost/core/frontend/meta/asset_url.js
Hannah Wolfe 22e13acd65 Updated var declarations to const/let and no lists
- All var declarations are now const or let as per ES6
- All comma-separated lists / chained declarations are now one declaration per line
- This is for clarity/readability but also made running the var-to-const/let switch smoother
- ESLint rules updated to match

How this was done:

- npm install -g jscodeshift
- git clone https://github.com/cpojer/js-codemod.git
- git clone git@github.com:TryGhost/Ghost.git shallow-ghost
- cd shallow-ghost
- jscodeshift -t ../js-codemod/transforms/unchain-variables.js . -v=2
- jscodeshift -t ../js-codemod/transforms/no-vars.js . -v=2
- yarn
- yarn test
- yarn lint / fix various lint errors (almost all indent) by opening files and saving in vscode
- grunt test-regression
- sorted!
2020-04-29 16:51:13 +01:00

51 lines
1.5 KiB
JavaScript

const crypto = require('crypto');
const config = require('../../server/config');
const imageLib = require('../../server/lib/image');
const urlUtils = require('../../server/lib/url-utils');
/**
* Serve either uploaded favicon or default
* @return {string}
*/
function getFaviconUrl() {
return imageLib.blogIcon.getIconUrl();
}
function getAssetUrl(path, hasMinFile) {
// CASE: favicon - this is special path with its own functionality
if (path.match(/\/?favicon\.(ico|png)$/)) {
// @TODO, resolve this - we should only be resolving subdirectory and extension.
return getFaviconUrl();
}
// CASE: Build the output URL
// Add subdirectory...
let output = urlUtils.urlJoin(urlUtils.getSubdir(), '/');
// Optionally add /assets/
if (!path.match(/^public/) && !path.match(/^asset/)) {
output = urlUtils.urlJoin(output, 'assets/');
}
// replace ".foo" with ".min.foo" if configured
if (hasMinFile && config.get('useMinFiles') !== false) {
path = path.replace(/\.([^.]*)$/, '.min.$1');
}
// Add the path for the requested asset
output = urlUtils.urlJoin(output, path);
// Ensure we have an assetHash
// @TODO rework this!
if (!config.get('assetHash')) {
config.set('assetHash', (crypto.createHash('md5').update(Date.now().toString()).digest('hex')).substring(0, 10));
}
// Finally add the asset hash to the output URL
output += '?v=' + config.get('assetHash');
return output;
}
module.exports = getAssetUrl;