harsta
Version:
Harsta is a contract development tool based on Hardhat, designed to streamline the development, testing, and referencing of contracts, addresses, ABIs, and contract instances.
32 lines (26 loc) • 1.27 kB
text/typescript
import fs from 'fs-extra'
import type { Environment } from 'hardhat/internal/core/runtime-environment'
import { absolutePaths } from '../../constants'
export async function ensureDirectories(env: Environment, clean?: boolean) {
clean && await env.run('clean')
await Promise.all([
clean && fs.remove(absolutePaths.generateFactoriesFragments),
clean && fs.remove(absolutePaths.generateContractsFragments),
clean && fs.remove(absolutePaths.generateFactoriesTypechain),
clean && fs.remove(absolutePaths.generateContractsTypechain),
clean && fs.remove(absolutePaths.generateFactories),
clean && fs.remove(absolutePaths.generateContracts),
clean && fs.remove(absolutePaths.packSources),
])
const isExistsUserContracts = fs.existsSync(absolutePaths.userSources)
if (isExistsUserContracts)
await fs.copy(absolutePaths.userSources, absolutePaths.packSources)
await Promise.all([
fs.ensureDir(absolutePaths.generateFactoriesFragments),
fs.ensureDir(absolutePaths.generateContractsFragments),
fs.ensureDir(absolutePaths.generateFactoriesTypechain),
fs.ensureDir(absolutePaths.generateContractsTypechain),
fs.ensureDir(absolutePaths.generateFactories),
fs.ensureDir(absolutePaths.generateContracts),
])
}