Version 2.1

- No plugins are enabled by default
- Logs from setup can be hidden
- Number of repositories to inspect can be configured (default to 100)
- Default events for habits plugin is now 100
- Number of events for habits can be overriden in query
- Server app improvments
- Test improvements
- Better test
This commit is contained in:
lowlighter
2020-10-23 13:56:15 +02:00
parent 543c6f8f98
commit 2cf152d7d1
16 changed files with 311 additions and 200 deletions

View File

@@ -3,10 +3,11 @@
import path from "path"
/** Setup */
export default async function () {
export default async function ({log = true} = {}) {
//Init
console.debug(`metrics/setup > setup`)
const logger = log ? console.debug : () => null
logger(`metrics/setup > setup`)
const templates = "src/templates"
const conf = {
templates:{},
@@ -16,17 +17,19 @@
}
//Load settings
console.debug(`metrics/setup > load settings.json`)
logger(`metrics/setup > load settings.json`)
if (fs.existsSync(path.resolve("settings.json"))) {
conf.settings = JSON.parse(`${await fs.promises.readFile(path.resolve("settings.json"))}`)
console.debug(`metrics/setup > load settings.json > success`)
logger(`metrics/setup > load settings.json > success`)
}
else
console.debug(`metrics/setup > load settings.json > (missing)`)
logger(`metrics/setup > load settings.json > (missing)`)
if (!conf.settings.templates)
conf.settings.templates = {default:"classic", enabled:[]}
if (!conf.settings.plugins)
conf.settings.plugins = {}
if (conf.settings.debug)
console.debug(conf.settings)
logger(conf.settings)
//Load templates
if (fs.existsSync(path.resolve(templates))) {
@@ -34,7 +37,7 @@
//Cache templates
if (/^index.mjs$/.test(name))
continue
console.debug(`metrics/setup > load template [${name}]`)
logger(`metrics/setup > load template [${name}]`)
const files = [
`${templates}/${name}/query.graphql`,
`${templates}/${name}/image.svg`,
@@ -43,14 +46,14 @@
]
const [query, image, placeholder, style] = await Promise.all(files.map(async file => `${await fs.promises.readFile(path.resolve(file))}`))
conf.templates[name] = {query, image, placeholder, style}
console.debug(`metrics/setup > load template [${name}] > success`)
logger(`metrics/setup > load template [${name}] > success`)
//Debug
if (conf.settings.debug) {
Object.defineProperty(conf.templates, name, {
get() {
console.debug(`metrics/setup > reload template [${name}]`)
logger(`metrics/setup > reload template [${name}]`)
const [query, image, placeholder, style] = files.map(file => `${fs.readFileSync(path.resolve(file))}`)
console.debug(`metrics/setup > reload template [${name}] > success`)
logger(`metrics/setup > reload template [${name}] > success`)
return {query, image, placeholder, style}
}
})
@@ -58,12 +61,12 @@
}
}
else {
console.debug(`metrics/setup > load templates from build`)
logger(`metrics/setup > load templates from build`)
conf.templates = JSON.parse(Buffer.from(`<#assets>`, "base64").toString("utf8"))
}
//Conf
console.debug(`metrics/setup > setup > success`)
logger(`metrics/setup > setup > success`)
return conf
}