UNPKG

arredemo

Version:

Instantly build a static site for your package

89 lines (72 loc) 2.12 kB
import { existsSync } from "node:fs" import path from "node:path" const _exists = (p, pkgPath) => { try { if (existsSync(path.join(pkgPath, p))) { return true } } catch (_) {} return false } const _parseImg = (pkgPath, imgPath, destBasename) => { const parsed = { ok: false } if (imgPath && _exists(imgPath, pkgPath)) { parsed.ok = true parsed.src = imgPath const imgExt = path.extname(imgPath) parsed.dest = `${destBasename}${imgExt}` } return parsed } const parseArreConfig = (config, pkgPath) => { // UI const theme = config?.theme || "default" const company = config?.company || "" const company_url = config?.company_url || "" const url = config?.url || "" // Docs const doc_versions = config?.doc_versions || [] const md = { md_keep_summary_content: config?.md?.keep_summary_content || false, md_strip_details_tag: !(config?.md?.strip_details_tag === false) } // Demo const demo_entry = config?.demo_entry || "" const has_demo = demo_entry !== "" // Logo and favicons const logo = _parseImg(pkgPath, config?.logo, "logo") const faviconMain = _parseImg(pkgPath, config?.favicon, "favicon") let faviconIco let faviconApple if (faviconMain.ok) { if (path.extname(faviconMain.src) === ".ico") { faviconIco = faviconMain } else { const icoBaseName = path.basename(faviconMain.src, path.extname(faviconMain.src)) + ".ico" const icoPath = faviconMain.src.replace(path.basename(faviconMain.src), icoBaseName) faviconIco = _parseImg(pkgPath, icoPath, "favicon") } const aplBaseName = path.basename(faviconMain.src, path.extname(faviconMain.src)) + "_apple.png" const aplPath = faviconMain.src.replace(path.basename(faviconMain.src), aplBaseName) faviconApple = _parseImg(pkgPath, aplPath, "favicon_apple") } return { theme, company, company_url, url, doc_versions, md, demo_entry, has_demo, logo, favicon: { main: faviconMain, ico: faviconIco, apple: faviconApple } } } export { parseArreConfig }