arredemo
Version:
Instantly build a static site for your package
74 lines (60 loc) • 2.09 kB
JavaScript
import { /*red, green,*/ cyan } from "tinguir"
import { loadArreDemoAppData } from "./load.mjs"
import { cleanArreDemoApp, renderArreDemoApp } from "./render/index.mjs"
import { rollupBuild } from "./rollup/build.mjs"
import { rollupArreDemoAppConfig } from "./rollup/prepare.mjs"
async function makeArreDemoBuild(pkgPath, arreConfig) {
/**
Structure:
phase 1: gather info
- pkgPath
- pkgJson
- arreConfig
- all the README based on supported versions
phase 2: render app
- copy everyfile from src/app
- to package/arredemo/_temp
- index.mjs and index.html need some str replace with data got on phase 1
phase 3: build app
- from rendered package/arredemo/_temp
- we get that struct:
package/
arredemo.json
arredemo/
index.html
docs.html
demo.html
bundle.css
bundle.js
favicon.ico
*/
console.log(`[arredemo] ${cyan("Loading data")}...`)
const [pkgJson, readmes] = await loadArreDemoAppData(pkgPath, arreConfig)
console.log(`[arredemo] ${cyan("Rendering app")}...`)
const rendFolder = renderArreDemoApp(pkgPath, pkgJson, arreConfig, readmes)
console.log(`[arredemo] ${cyan("Building docs page")}...`)
const [inputOptionsForDocs, outputOptionsListForDocs] = rollupArreDemoAppConfig(
pkgPath,
pkgJson,
arreConfig,
rendFolder,
"index_docs.mjs",
"arredemo_docs.js"
)
const _buildOkForDocs = await rollupBuild(inputOptionsForDocs, outputOptionsListForDocs)
if (arreConfig.has_demo) {
console.log(`[arredemo] ${cyan("Building demo page")}...`)
const [inputOptionsForDemo, outputOptionsListForDemo] = rollupArreDemoAppConfig(
pkgPath,
pkgJson,
arreConfig,
rendFolder,
"index_demo.mjs",
"arredemo_demo.js"
)
const _buildOkForDemo = await rollupBuild(inputOptionsForDemo, outputOptionsListForDemo)
}
console.log(`[arredemo] ${cyan("Cleaning")}...`)
cleanArreDemoApp(pkgPath)
}
export { makeArreDemoBuild }