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:
@@ -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
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user