import * as findUp from "find-up"; import * as fs from "fs"; import { join } from "path"; const fsp = fs.promises; export const JS_CONFIG_FILENAME = "polar.config.js"; export const CONTRACTS_DIR = "contracts"; export const ARTIFACTS_DIR = "artifacts"; export const CACHE_DIR = join(ARTIFACTS_DIR, ".cache"); export const CONTRACTS_OUT_DIR = join(ARTIFACTS_DIR, "contracts"); export const TARGET_DIR = "target/wasm32-unknown-unknown/release/"; export const SCHEMA_DIR = "artifacts/schema"; export const SCRIPTS_DIR = "scripts"; export const TESTS_DIR = "test"; export const singleImageVersion = "1.0.5"; export const multiImageVersion = "1.0.5"; export function isCwdInsideProject (): boolean { return Boolean(findUp.sync(JS_CONFIG_FILENAME)); } export function isCwdProjectDir (): boolean { return Boolean(fs.existsSync(JS_CONFIG_FILENAME)); } export function getUserConfigPath (): string | undefined { return findUp.sync(JS_CONFIG_FILENAME) ?? undefined; } export async function assertAllDirs (): Promise { const tasks = []; for (const d of [CONTRACTS_DIR]) { tasks.push(assertDir(d)); } await Promise.all(tasks); } export async function assertDir (dirname: string): Promise { try { await fsp.access(dirname, fs.constants.F_OK); } catch (e) { fs.mkdirSync(dirname, { recursive: true }); } }