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>
45 lines • 2.3 kB
JavaScript
import path from "path";
import fs from "fs";
export const generatePackageDotJson = (projectName, isEVM, testnet, useBackend, backendProvider, hasSmartContract, chain, contractName) => {
const packageJsonTemplate = {
name: projectName,
version: "0.1.0",
private: true,
scripts: {},
dependencies: {},
devDependencies: {},
};
if (useBackend) {
const backendPackageJson = JSON.parse(JSON.stringify(packageJsonTemplate));
switch (backendProvider) {
case "hardhat-template":
case "hardhat":
backendPackageJson["devDependencies"]["@nomicfoundation/hardhat-toolbox"] = "^1.0.2";
backendPackageJson["devDependencies"]["hardhat"] = "^2.10.1";
backendPackageJson["dependencies"]["dotenv"] = "^16.0.2";
backendPackageJson["scripts"]["build"] = "npx hardhat compile";
if (hasSmartContract)
backendPackageJson["scripts"]["deploy-testnet"] = `npx hardhat run ./scripts/${hasSmartContract
? `${contractName}_deploy.js`
: "deploy.js"} --network ${testnet}`;
backendPackageJson["scripts"]["deploy"] = `npx hardhat run ./scripts/${hasSmartContract ? `${contractName}_deploy.js` : "deploy.js"} --network ${chain}`;
backendPackageJson["scripts"]["node"] = `npx hardhat node`;
backendPackageJson["scripts"]["deploy-local"] = `npx hardhat run ./scripts/${hasSmartContract ? `${contractName}_deploy.js` : "deploy.js"} --network localhost`;
break;
case "foundry":
backendPackageJson["devDependencies"]["@nomicfoundation/hardhat-toolbox"] = "^1.0.2";
backendPackageJson["devDependencies"]["@hardhat"] = "^2.10.1";
break;
case "anchor":
break;
default:
break;
}
if (hasSmartContract) {
backendPackageJson["dependencies"]["@openzeppelin/contracts"] =
"^4.7.3";
}
fs.writeFileSync(path.join(process.cwd(), "backend", "package.json"), JSON.stringify(backendPackageJson, null, "\t"));
}
};
//# sourceMappingURL=generatePackageDotJson.js.map