@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
73 lines • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultServiceConfig = void 0;
exports.decodeServiceConfig = decodeServiceConfig;
/**
* Default service configuration
*/
exports.DefaultServiceConfig = {
disqus: {
disable: false,
shortname: ''
},
googleAnalytics: {
disable: false,
respectDoNotTrack: false,
id: ''
},
rss: {
limit: 0
}
};
/**
* Creates a service configuration from provider data
*/
function decodeServiceConfig(data) {
const config = {
disqus: { ...exports.DefaultServiceConfig.disqus },
googleAnalytics: { ...exports.DefaultServiceConfig.googleAnalytics },
rss: { ...exports.DefaultServiceConfig.rss }
};
// Handle privacy settings
if (data.privacy) {
if (data.privacy.disqus) {
config.disqus.disable = data.privacy.disqus.disable !== undefined
? data.privacy.disqus.disable
: config.disqus.disable;
}
if (data.privacy.googleAnalytics) {
config.googleAnalytics.disable = data.privacy.googleAnalytics.disable !== undefined
? data.privacy.googleAnalytics.disable
: config.googleAnalytics.disable;
config.googleAnalytics.respectDoNotTrack = data.privacy.googleAnalytics.respectDoNotTrack !== undefined
? data.privacy.googleAnalytics.respectDoNotTrack
: config.googleAnalytics.respectDoNotTrack;
}
}
// Handle services settings
if (data.services) {
if (data.services.disqus) {
config.disqus.shortname = data.services.disqus.shortname || config.disqus.shortname;
}
if (data.services.googleAnalytics) {
config.googleAnalytics.id = data.services.googleAnalytics.id || config.googleAnalytics.id;
}
if (data.services.rss) {
config.rss.limit = data.services.rss.limit !== undefined
? data.services.rss.limit
: config.rss.limit;
}
}
// Keep backwards compatibility
if (!config.googleAnalytics.id && data.googleanalytics) {
config.googleAnalytics.id = data.googleanalytics;
}
if (!config.disqus.shortname && data.disqusshortname) {
config.disqus.shortname = data.disqusshortname;
}
if (!config.rss.limit && data.rssLimit) {
config.rss.limit = data.rssLimit;
}
return config;
}
//# sourceMappingURL=service.js.map