UNPKG

@greenwood/cli

Version:
47 lines (40 loc) 1.38 kB
import fs from "fs/promises"; import { checkResourceExists } from "../lib/resource-utils.js"; const initContext = async ({ config }) => { // eslint-disable-next-line no-async-promise-executor return new Promise(async (resolve, reject) => { try { const { workspace, pagesDirectory, layoutsDirectory } = config; const projectDirectory = new URL(`file://${process.cwd()}/`); const scratchDir = new URL("./.greenwood/", projectDirectory); const outputDir = new URL("./public/", projectDirectory); const dataDir = new URL("../data/", import.meta.url); const layoutsDir = new URL("../layouts/", import.meta.url); const userWorkspace = workspace; const pagesDir = new URL(`./${pagesDirectory}/`, userWorkspace); const apisDir = new URL("./api/", pagesDir); const userLayoutsDir = new URL(`./${layoutsDirectory}/`, userWorkspace); const context = { dataDir, outputDir, userWorkspace, apisDir, pagesDir, userLayoutsDir, scratchDir, projectDirectory, layoutsDir, }; if (!(await checkResourceExists(scratchDir))) { await fs.mkdir(scratchDir, { recursive: true, }); } resolve(context); } catch (err) { console.log(err); reject(err); } }); }; export { initContext };