Ghost/core/server/adapters/storage/utils.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

54 lines
1.6 KiB
JavaScript

const urlUtils = require('../../lib/url-utils');
/**
* @TODO: move `events.js` to here - e.g. storageUtils.getStorage
*/
/**
* Sanitizes a given URL or path for an image to be readable by the local file storage
* as storage needs the path without `/content/images/` prefix
* Always returns {string} url
* @param {string} imagePath
* @returns {string} imagePath
* @description Takes a url or filepath and returns a filepath with is readable
* for the local file storage.
*/
exports.getLocalFileStoragePath = function getLocalFileStoragePath(imagePath) {
// The '/' in urlJoin is necessary to add the '/' to `content/images`, if no subdirectory is setup
const urlRegExp = new RegExp(`^${urlUtils.urlJoin(
urlUtils.urlFor('home', true),
urlUtils.getSubdir(),
'/',
urlUtils.STATIC_IMAGE_URL_PREFIX)}`
);
const filePathRegExp = new RegExp(`^${urlUtils.urlJoin(
urlUtils.getSubdir(),
'/',
urlUtils.STATIC_IMAGE_URL_PREFIX)}`
);
if (imagePath.match(urlRegExp)) {
return imagePath.replace(urlRegExp, '');
} else if (imagePath.match(filePathRegExp)) {
return imagePath.replace(filePathRegExp, '');
} else {
return imagePath;
}
};
/**
* @description compares the imagePath with a regex that reflects our local file storage
* @param {String} imagePath as URL or filepath
* @returns {Boolean}
*/
exports.isLocalImage = function isLocalImage(imagePath) {
const localImagePath = this.getLocalFileStoragePath(imagePath);
if (localImagePath !== imagePath) {
return true;
} else {
return false;
}
};