chore: code formatting
This commit is contained in:
23
.github/scripts/presets_examples.mjs
vendored
23
.github/scripts/presets_examples.mjs
vendored
@@ -1,10 +1,10 @@
|
|||||||
//Imports
|
//Imports
|
||||||
|
import fs from "fs/promises"
|
||||||
import processes from "child_process"
|
import processes from "child_process"
|
||||||
import yaml from "js-yaml"
|
import yaml from "js-yaml"
|
||||||
import sgit from "simple-git"
|
|
||||||
import paths from "path"
|
import paths from "path"
|
||||||
|
import sgit from "simple-git"
|
||||||
import url from "url"
|
import url from "url"
|
||||||
import fs from "fs/promises"
|
|
||||||
|
|
||||||
//Mode
|
//Mode
|
||||||
const [mode = "dryrun"] = process.argv.slice(2)
|
const [mode = "dryrun"] = process.argv.slice(2)
|
||||||
@@ -14,8 +14,8 @@ console.log(`Mode: ${mode}`)
|
|||||||
const __metrics = paths.join(paths.dirname(url.fileURLToPath(import.meta.url)), "../..")
|
const __metrics = paths.join(paths.dirname(url.fileURLToPath(import.meta.url)), "../..")
|
||||||
const __presets = paths.join(__metrics, ".presets")
|
const __presets = paths.join(__metrics, ".presets")
|
||||||
|
|
||||||
if ((!await fs.access(__presets).then(_ => true).catch(_ => false))||(!(await fs.lstat(__presets)).isDirectory()))
|
if ((!await fs.access(__presets).then(_ => true).catch(_ => false)) || (!(await fs.lstat(__presets)).isDirectory()))
|
||||||
await sgit().clone(`https://github-actions[bot]:${process.env.GITHUB_TOKEN}@github.com/lowlighter/metrics`, __presets, {"--branch":"presets", "--single-branch":true})
|
await sgit().clone(`https://github-actions[bot]:${process.env.GITHUB_TOKEN}@github.com/lowlighter/metrics`, __presets, { "--branch": "presets", "--single-branch": true })
|
||||||
const git = sgit(__presets)
|
const git = sgit(__presets)
|
||||||
await git.pull()
|
await git.pull()
|
||||||
const staged = new Set()
|
const staged = new Set()
|
||||||
@@ -49,14 +49,16 @@ for (const path of await fs.readdir(__presets)) {
|
|||||||
|
|
||||||
//Example
|
//Example
|
||||||
console.log(`generating: ${preset}/example.svg`)
|
console.log(`generating: ${preset}/example.svg`)
|
||||||
const svg = await action.run({config_presets:`@${preset}`, debug_print: true, plugins_errors_fatal: true, dryrun: true, use_mocked_data: true, verify: true, token:"MOCKED_TOKEN"})
|
const svg = await action.run({ config_presets: `@${preset}`, debug_print: true, plugins_errors_fatal: true, dryrun: true, use_mocked_data: true, verify: true, token: "MOCKED_TOKEN" })
|
||||||
await fs.writeFile(paths.join(__presets, path, "example.svg"), svg)
|
await fs.writeFile(paths.join(__presets, path, "example.svg"), svg)
|
||||||
staged.add(paths.join(__presets, path, "example.svg"))
|
staged.add(paths.join(__presets, path, "example.svg"))
|
||||||
|
|
||||||
//Readme
|
//Readme
|
||||||
console.log(`generating: ${preset}/README.svg`)
|
console.log(`generating: ${preset}/README.svg`)
|
||||||
const {name, description} = await yaml.load(await fs.readFile(paths.join(__presets, preset, "preset.yml")))
|
const { name, description } = await yaml.load(await fs.readFile(paths.join(__presets, preset, "preset.yml")))
|
||||||
await fs.writeFile(paths.join(__presets, path, "README.md"), `
|
await fs.writeFile(
|
||||||
|
paths.join(__presets, path, "README.md"),
|
||||||
|
`
|
||||||
<table>
|
<table>
|
||||||
<tr><th><h3>${name}</h3></th></tr>
|
<tr><th><h3>${name}</h3></th></tr>
|
||||||
<tr><td align="center"><p>${description}</p></td></tr>
|
<tr><td align="center"><p>${description}</p></td></tr>
|
||||||
@@ -65,7 +67,8 @@ for (const path of await fs.readdir(__presets)) {
|
|||||||
<img width="900" height="1" alt="">
|
<img width="900" height="1" alt="">
|
||||||
</td></tr>
|
</td></tr>
|
||||||
</table>
|
</table>
|
||||||
`.trim())
|
`.trim(),
|
||||||
|
)
|
||||||
staged.add(paths.join(__presets, path, "README.md"))
|
staged.add(paths.join(__presets, path, "README.md"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,6 +81,6 @@ if (mode === "publish") {
|
|||||||
.add([...staged])
|
.add([...staged])
|
||||||
.commit("ci: auto-regenerate files")
|
.commit("ci: auto-regenerate files")
|
||||||
.push("origin", "presets")
|
.push("origin", "presets")
|
||||||
console.log(gitted)
|
console.log(gitted)
|
||||||
}
|
}
|
||||||
console.log("Success!")
|
console.log("Success!")
|
||||||
|
|||||||
@@ -30,21 +30,21 @@ for (const path of fss.readdirSync(__presets)) {
|
|||||||
test("syntax is valid", () => expect(true).toBe(true))
|
test("syntax is valid", () => expect(true).toBe(true))
|
||||||
try {
|
try {
|
||||||
//Load schema
|
//Load schema
|
||||||
const {properties} = yaml.load(fss.readFileSync(paths.join(__presets, "@schema", `${preset.schema}.yml`)))
|
const { properties } = yaml.load(fss.readFileSync(paths.join(__presets, "@schema", `${preset.schema}.yml`)))
|
||||||
test("schema is valid", () => expect(preset.schema).toBeDefined())
|
test("schema is valid", () => expect(preset.schema).toBeDefined())
|
||||||
//Test schema
|
//Test schema
|
||||||
for (const [key, {type, required}] of Object.entries(properties)) {
|
for (const [key, { type, required }] of Object.entries(properties)) {
|
||||||
if (required)
|
if (required)
|
||||||
test(`preset.${key} is defined`, () => expect(preset[key]).toBeDefined())
|
test(`preset.${key} is defined`, () => expect(preset[key]).toBeDefined())
|
||||||
test(`preset.${key} type is ${type}`, () => {
|
test(`preset.${key} type is ${type}`, () => {
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case /^'.*'$/.test(type):{
|
case /^'.*'$/.test(type): {
|
||||||
const value = type.substring(1, type.length-1)
|
const value = type.substring(1, type.length - 1)
|
||||||
expect(preset[key]).toBe(value)
|
expect(preset[key]).toBe(value)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
case /\{\}$/.test(type):{
|
case /\{\}$/.test(type): {
|
||||||
const typed = type.substring(0, type.length-2)
|
const typed = type.substring(0, type.length - 2)
|
||||||
expect(typeof preset[key]).toBe("object")
|
expect(typeof preset[key]).toBe("object")
|
||||||
if (typed !== "unknown") {
|
if (typed !== "unknown") {
|
||||||
for (const value of Object.values(preset[key]))
|
for (const value of Object.values(preset[key]))
|
||||||
@@ -52,8 +52,8 @@ for (const path of fss.readdirSync(__presets)) {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
case /\[\]$/.test(type):{
|
case /\[\]$/.test(type): {
|
||||||
const typed = type.substring(0, type.length-2)
|
const typed = type.substring(0, type.length - 2)
|
||||||
expect(Array.isArray(preset[key])).toBe(true)
|
expect(Array.isArray(preset[key])).toBe(true)
|
||||||
if (typed !== "unknown") {
|
if (typed !== "unknown") {
|
||||||
for (const value of Object.values(preset[key]))
|
for (const value of Object.values(preset[key]))
|
||||||
@@ -75,4 +75,4 @@ for (const path of fss.readdirSync(__presets)) {
|
|||||||
test("syntax is valid", () => expect(false).toBe(true))
|
test("syntax is valid", () => expect(false).toBe(true))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user