Ghost/core/client/app/services/config.js

44 lines
983 B
JavaScript
Raw Normal View History

import Ember from 'ember';
function isNumeric(num) {
return !isNaN(num);
}
function _mapType(val) {
if (val === '') {
return null;
} else if (val === 'true') {
return true;
} else if (val === 'false') {
return false;
} else if (isNumeric(val)) {
return +val;
} else if (val.indexOf('{') === 0) {
try {
return JSON.parse(val);
} catch (e) {
/*jshint unused:false */
return val;
}
} else {
return val;
}
}
export default Ember.Service.extend(Ember._ProxyMixin, {
content: Ember.computed(function () {
var metaConfigTags = Ember.$('meta[name^="env-"]'),
config = {};
metaConfigTags.each(function (i, el) {
var key = el.name,
value = el.content,
propertyName = key.substring(4);
config[propertyName] = _mapType(value);
});
return config;
})
});