mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-22 02:11:44 +03:00
33 lines
970 B
JavaScript
33 lines
970 B
JavaScript
|
// # {{price}} helper
|
||
|
//
|
||
|
// Usage: `{{price 2100}}`
|
||
|
//
|
||
|
// Returns amount equal to the dominant denomintation of the currency.
|
||
|
// For example, if 2100 is passed, it will return 21.
|
||
|
const _ = require('lodash');
|
||
|
const {errors, i18n} = require('./proxy');
|
||
|
|
||
|
module.exports = function price(amount) {
|
||
|
// CASE: if no amount is passed, e.g. `{{price}}` we throw an error
|
||
|
if (arguments.length < 2) {
|
||
|
throw new errors.IncorrectUsageError({
|
||
|
message: i18n.t('warnings.helpers.price.attrIsRequired')
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// CASE: if amount is passed, but it is undefined we throw an error
|
||
|
if (amount === undefined) {
|
||
|
throw new errors.IncorrectUsageError({
|
||
|
message: i18n.t('warnings.helpers.price.attrIsRequired')
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if (!_.isNumber(amount)) {
|
||
|
throw new errors.IncorrectUsageError({
|
||
|
message: i18n.t('warnings.helpers.price.attrMustBeNumeric')
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return amount / 100;
|
||
|
};
|