create-web3-dapp-dev
Version:
<p align="center"> <br /> <a href="https://createweb3dapp.alchemy.com"> <img src=".github/images/cw3d-logo.png" width="200" alt=""/></a> <br /> </p>
59 lines • 2.79 kB
JavaScript
import { LogLevel, selfDestroy } from "./selfDestroy.js";
import { execSync } from "child_process";
import path from "path";
import fse from "fs-extra";
import { setUpHardhat } from "../backend_helpers/setupHardhat.js";
import { createEnv } from "../utils/createEnv.js";
import { cleanUpFiles } from "../utils/cleanUpFiles.js";
import { getDefaultRainbowkitChain } from "../utils/getDefaultRainbowkitChain.js";
import fs from "fs";
import { gitIgnoreTemplate } from "../utils/gitignore.template.js";
import { FileExtensions, getTemplateFiles, } from "../templates_records/templatesDB.js";
export const getProjectFiles = ({ resolvedProjectPath, dappInfo, }) => {
try {
if (!resolvedProjectPath || !dappInfo)
return;
process.chdir(resolvedProjectPath);
if (dappInfo.isTemplate) {
execSync(`git clone --quiet ${getTemplateFiles(dappInfo.template, dappInfo.isTypescript
? FileExtensions.TYPESCRIPT
: undefined)} .`);
}
else {
if (dappInfo.isTypescript) {
execSync(`git clone --quiet ${"https://github.com/Eversmile12/cw3d-evm-boilerplates-typescript"} .`);
}
else {
execSync(`git clone --quiet ${"https://github.com/alchemyplatform/cw3d-evm-boilerplate"} .`);
}
}
if (!dappInfo.useBackend) {
const frontend = path.join(process.cwd(), "frontend");
fse.copySync(frontend, process.cwd());
fs.writeFileSync(".gitignore", gitIgnoreTemplate);
}
if (dappInfo.useBackend) {
fs.writeFileSync(path.join("frontend", ".gitignore"), gitIgnoreTemplate);
switch (dappInfo.backendProvider) {
case "hardhat-template":
case "hardhat":
setUpHardhat(dappInfo, resolvedProjectPath);
break;
case "foundry":
break;
default:
break;
}
createEnv(Object.assign(Object.assign({}, dappInfo.apiKeys), { ETHERSCAN_API_KEY: "", PRIVATE_KEY: "" }), path.join(resolvedProjectPath, "backend"), false);
fs.writeFileSync(path.join("backend", ".gitignore"), gitIgnoreTemplate);
}
createEnv(Object.assign(Object.assign({}, dappInfo.apiKeys), { ALCHEMY_NETWORK: dappInfo.testnet, NEXT_PUBLIC_ALCHEMY_NETWORK: dappInfo.testnet, NEXT_PUBLIC_DEFAULT_CHAIN: getDefaultRainbowkitChain(dappInfo.testnet) }), dappInfo.useBackend
? path.join(process.cwd(), "frontend")
: process.cwd(), true);
cleanUpFiles(dappInfo.useBackend);
}
catch (e) {
selfDestroy(e, LogLevel.ERROR);
}
};
//# sourceMappingURL=getProjectFiles.js.map