JSFiddle - React, Tailwind, and code Playground
by nerdycap007
HTML
<div id="container">
</div>
JavaScript
let obj = {
test_patterns: ['*/test/**', 'integration_tests/test_*.py'],
exclude_patterns: ['migrations/**', '/dist/*.min.js'],
analyzers: {
python: {
type_checker: 'mypy',
max_line_length: 80,
runtime_version: '3.x.x',
skip_doc_coverage: ['magic', 'init', 'class']
},
go: {
import_path: '/path/to/something',
checked_into_vcs: true
}
}
}
var getToml = function(obj) {
let tomlArr = []
// Normal fields
tomlArr.push(`test_patterns = ${JSON.stringify(obj.test_patterns)}`)
tomlArr.push(`exclude_patterns = ${JSON.stringify(obj.exclude_patterns)}`)
// Analyzers
for (let analyzer in obj.analyzers) {
tomlArr.push('\n[[analyzers]]')
tomlArr.push(`name = "${analyzer}"`)
tomlArr.push(`enabled = true\n`)
tomlArr.push('[analyzers.meta]')
for (let metaProp in obj.analyzers[analyzer]) {
if(Array.isArray(obj.analyzers[analyzer][metaProp])) {
tomlArr.push(` ${metaProp} = ${JSON.stringify(obj.analyzers[analyzer][metaProp])}`)
} else {
if(typeof(obj.analyzers[analyzer][metaProp]) === 'string') {
tomlArr.push(` ${metaProp} = "${obj.analyzers[analyzer][metaProp]}"`)
} else {
tomlArr.push(` ${metaProp} = ${obj.analyzers[analyzer][metaProp]}`)
}
}
}
}
return tomlArr.join('\n')
}
document.getElementById("container").innerHTML = '<pre>' + getToml(obj) + '</pre>'