safety-results-over-time
Version:
Chart showing population averages for lab measures, vital signs and other related measures during the course of a clinical trial.
121 lines (104 loc) • 5.36 kB
JavaScript
require('babel-register');
const fs = require('fs');
const pkg = require('../package');
const schema = require('../settings-schema');
const properties = schema.properties;
const rendererSettings = require('../src/configuration/rendererSettings.js').default();
const webchartsSettings = require('../src/configuration/webchartsSettings.js').default();
const markdown = [];
function setDefault(setting) {
let settingDefault = '**default:** ';
if (setting.default === undefined && !setting.defaultObject) {
settingDefault = settingDefault + 'none';
} else if (setting.type === 'string') {
settingDefault = settingDefault + '`"' + setting.default + '"`';
} else if (['number', 'boolean'].indexOf(setting.type) > -1) {
settingDefault = settingDefault + '`' + setting.default + '`';
} else {
settingDefault = settingDefault +
'\n\`\`\`\n' +
JSON.stringify(setting.defaultObject, null, 2) +
`\n\`\`\``;
}
if (setting.type !== 'object')
return settingDefault;
}
/*------------------------------------------------------------------------------------------------\
Overview
\------------------------------------------------------------------------------------------------*/
if (schema.overview)
schema.overview
.split('\n')
.forEach(paragraph => {
markdown.push(paragraph);
markdown.push('');
});
/*------------------------------------------------------------------------------------------------\
Renderer-specific settings
\------------------------------------------------------------------------------------------------*/
markdown.push(`# Renderer-specific settings`);
markdown.push(`The sections below describe each ${pkg.name} setting as of version ${schema.version}.`);
markdown.push(``);
var keys = Object.keys(properties);
keys.forEach((property,i) => {
var setting = properties[property];
markdown.push(`## settings.${property}`);
markdown.push(`\`${setting.type}\``);
markdown.push(``);
markdown.push(`${setting.description || setting.title}`);
if (setting.type !== 'object') {
markdown.push(``);
markdown.push(setDefault(setting));
} else {
var subKeys = Object.keys(setting.properties);
subKeys.forEach((subProperty,i) => {
var subSetting = setting.properties[subProperty];
markdown.push(``);
markdown.push(`### settings.${property}.${subProperty}`);
markdown.push(`\`${subSetting.type}\``);
markdown.push(``);
markdown.push(`${subSetting.description || subSetting.title}`);
markdown.push(``);
markdown.push(setDefault(subSetting));
});
}
if (setting.type === 'array' && setting.items.type === 'object') {
var subKeys = Object.keys(setting.items.properties);
subKeys.forEach((subProperty,i) => {
var subSetting = setting.items.properties[subProperty];
markdown.push(``);
markdown.push(`### settings.${property}[].${subProperty}`);
markdown.push(`\`${subSetting.type}\``);
markdown.push(``);
markdown.push(`${subSetting.description || subSetting.title}`);
markdown.push(``);
markdown.push(setDefault(subSetting));
});
}
if (i < keys.length - 1) {
markdown.push(``);
markdown.push(``);
markdown.push(``);
}
});
/*------------------------------------------------------------------------------------------------\
Webcharts settings
\------------------------------------------------------------------------------------------------*/
markdown.push(``);
markdown.push(`# Webcharts settings`);
markdown.push(`The object below contains Webcharts settings as of version ${schema.version} of the ${pkg.name.split('-').map(str => str.substring(0,1).toUpperCase() + str.substring(1).toLowerCase()).join(' ')}.`);
markdown.push(``);
markdown.push('```');
markdown.push(JSON.stringify(webchartsSettings, null, 4));
markdown.push('```');
/*------------------------------------------------------------------------------------------------\
Configuration markdown
\------------------------------------------------------------------------------------------------*/
fs.writeFile(
'./scripts/configuration-wiki.md',
markdown.join('\n'),
(err) => {
if (err)
console.log(err);
console.log('The configuration wiki markdown file was built!');
});