From a812bd2e6d1df843ba32dd184a5524092b0dc284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez?= Date: Tue, 21 Oct 2025 09:39:37 +0200 Subject: [PATCH 1/7] Add drizzle-neon as curated extension --- .changeset/tough-rooms-mate.md | 5 +++++ src/extensions.json | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 .changeset/tough-rooms-mate.md diff --git a/.changeset/tough-rooms-mate.md b/.changeset/tough-rooms-mate.md new file mode 100644 index 0000000000..c785d07cd7 --- /dev/null +++ b/.changeset/tough-rooms-mate.md @@ -0,0 +1,5 @@ +--- +"create-eth": patch +--- + +Add drizzle-neon to curated extensions diff --git a/src/extensions.json b/src/extensions.json index 3a406698f4..41326ed38a 100644 --- a/src/extensions.json +++ b/src/extensions.json @@ -53,6 +53,12 @@ "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "envio" }, + { + "extensionFlagValue": "drizzle-neon", + "description": "This extension sets up a local database with Drizzle ORM. Optimized to work using Neon as the database provider.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "drizzle-neon" + }, { "extensionFlagValue": "challenge-tokenization", "description": "SpeedRunEthereum Challenge: Tokenization.", From fa57d3e680d93193bd3959330836708f2f263cb8 Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Wed, 22 Oct 2025 19:08:20 +0530 Subject: [PATCH 2/7] accept postContent in .gitignores tempaltes --- templates/base/.gitignore.template.mjs | 11 ++++++++--- .../base/packages/nextjs/.gitignore.template.mjs | 12 +++++++++--- .../foundry/packages/foundry/.gitignore.template.mjs | 10 +++++++--- .../hardhat/packages/hardhat/.gitignore.template.mjs | 11 ++++++++--- 4 files changed, 32 insertions(+), 12 deletions(-) diff --git a/templates/base/.gitignore.template.mjs b/templates/base/.gitignore.template.mjs index 349f345f09..91a164f0f0 100644 --- a/templates/base/.gitignore.template.mjs +++ b/templates/base/.gitignore.template.mjs @@ -1,4 +1,6 @@ -const contents = () => +import { withDefaults } from "../utils.js"; + +const contents = ({ postContent }) => `# dependencies node_modules @@ -21,6 +23,9 @@ node_modules .idea # cli -dist`; +dist +${postContent[0] || ''}`; -export default contents +export default withDefaults(contents, { + postContent: '' +}) diff --git a/templates/base/packages/nextjs/.gitignore.template.mjs b/templates/base/packages/nextjs/.gitignore.template.mjs index 07cae40186..11e1fb3517 100644 --- a/templates/base/packages/nextjs/.gitignore.template.mjs +++ b/templates/base/packages/nextjs/.gitignore.template.mjs @@ -1,4 +1,6 @@ -const contents = () => +import { withDefaults } from "../../../utils.js"; + +const contents = ({ postContent }) => `# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies @@ -36,6 +38,10 @@ yarn-error.log* # typescript *.tsbuildinfo -ipfs-upload.config.json` +ipfs-upload.config.json + +${postContent[0] || ''}`; -export default contents +export default withDefaults(contents, { + postContent: '' +}) diff --git a/templates/solidity-frameworks/foundry/packages/foundry/.gitignore.template.mjs b/templates/solidity-frameworks/foundry/packages/foundry/.gitignore.template.mjs index 9cfc0c1fb6..a75b1f3ca9 100644 --- a/templates/solidity-frameworks/foundry/packages/foundry/.gitignore.template.mjs +++ b/templates/solidity-frameworks/foundry/packages/foundry/.gitignore.template.mjs @@ -1,4 +1,6 @@ -const contents = () => +import { withDefaults } from "../../../../utils.js"; + +const contents = ({ postContent }) => `# Compiler files cache/ out/ @@ -13,7 +15,9 @@ docs/ # Dotenv file .env localhost.json -`; +${postContent[0] || ''}`; -export default contents; +export default withDefaults(contents, { + postContent: '' +}) diff --git a/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs b/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs index 99f0e02510..42e8da425a 100644 --- a/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs +++ b/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs @@ -1,4 +1,6 @@ -const contents = () => +import { withDefaults } from "../../../../utils.js"; + +const contents = ({postContent}) => `# dependencies node_modules @@ -28,6 +30,9 @@ deployments/localhost *.tsbuildinfo # other -temp` +temp +${postContent[0] || ''}`; -export default contents \ No newline at end of file +export default withDefaults(contents, { + postContent: '' +}) \ No newline at end of file From 292761d0ce9501999f7359e0c399ffcd9e3e48bb Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Wed, 22 Oct 2025 19:31:40 +0530 Subject: [PATCH 3/7] remove the extra line in postContent --- templates/base/packages/nextjs/.gitignore.template.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/base/packages/nextjs/.gitignore.template.mjs b/templates/base/packages/nextjs/.gitignore.template.mjs index 11e1fb3517..3503c81526 100644 --- a/templates/base/packages/nextjs/.gitignore.template.mjs +++ b/templates/base/packages/nextjs/.gitignore.template.mjs @@ -39,7 +39,6 @@ yarn-error.log* # typescript *.tsbuildinfo ipfs-upload.config.json - ${postContent[0] || ''}`; export default withDefaults(contents, { From 24c3d36a97e1cc43030f093eda523f0799899477 Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Wed, 22 Oct 2025 19:41:17 +0530 Subject: [PATCH 4/7] update TEAMPLTE-FILE example --- contributors/TEMPLATE-FILES.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/contributors/TEMPLATE-FILES.md b/contributors/TEMPLATE-FILES.md index f3a444011c..48cad28f6d 100644 --- a/contributors/TEMPLATE-FILES.md +++ b/contributors/TEMPLATE-FILES.md @@ -15,12 +15,14 @@ If you're interested in developing third-party extensions, the [THIRD-PARTY-EXTE | [(script) `Deploy.s.sol.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/script/Deploy.s.sol.template.mjs) | [`Deploy.s.sol.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/script/Deploy.s.sol.args.mjs) | | [(config) `foundry.toml.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/foundry.toml.template.mjs) | [`foundry.toml.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/foundry.toml.args.mjs) | | [(config) `Makefile.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/Makefile.template.mjs) | [`Makefile.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/Makefile.args.mjs) | +| [(gitignore) `.gitignore.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/.gitignore.template.mjs) | [`.gitignore.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/foundry/.gitignore.args.mjs) | #### Hardhat | Template | Example args file | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | [(config) `hardhat.config.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/hardhat/hardhat.config.ts.template.mjs) | [`hardhat.config.ts.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/hardhat/hardhat.config.ts.args.mjs) | +| [(gitignore) `.gitignore.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs) | [`.gitignore.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/hardhat/.gitignore.args.mjs) | #### NextJS @@ -40,12 +42,14 @@ If you're interested in developing third-party extensions, the [THIRD-PARTY-EXTE | [(config) `getMetadata.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/utils/scaffold-eth/getMetadata.ts.args.mjs) | [`getMetadata.ts.teamplte.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/tree/example/extension/packages/nextjs/utils/scaffold-eth/getMetadata.ts.args.mjs) | | [(types) `abi.d.ts.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/types/abitype/abi.d.ts.template.mjs) | [`abi.d.ts.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/types/abitype/abi.d.ts.args.mjs) | | [(env) `.env.example.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/.env.example.template.mjs) | [`.env.example.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/.env.example.args.mjs) | +| [(gitignore) `.gitignore.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/.gitignore.template.mjs) | [`.gitignore.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/packages/nextjs/.gitignore.args.mjs) | #### Root -| Template | Example args file | -| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| [(doc) `README.md.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/README.md.template.mjs) | [`README.md.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/README.md.args.mjs) | +| Template | Example args file | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | +| [(doc) `README.md.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/README.md.template.mjs) | [`README.md.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/README.md.args.mjs) | +| [(gitignore) `.gitignore.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/.gitignore.template.mjs) | [`.gitignore.args.mjs`](https://github.com/scaffold-eth/create-eth-extensions/blob/example/extension/.gitignore.args.mjs) | ### create-eth internal use From af3c00046ffae1a95c6d369a970ff34dd60e1dcf Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Wed, 22 Oct 2025 19:44:06 +0530 Subject: [PATCH 5/7] remove "also" from last info about .gitignore --- contributors/TEMPLATE-FILES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributors/TEMPLATE-FILES.md b/contributors/TEMPLATE-FILES.md index 48cad28f6d..e7492aad45 100644 --- a/contributors/TEMPLATE-FILES.md +++ b/contributors/TEMPLATE-FILES.md @@ -73,6 +73,6 @@ If you're interested in developing third-party extensions, the [THIRD-PARTY-EXTE | [(env) `.env.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/.env.template.mjs) | we need to create a `.env` file for the foundry to work properly out of box | | [(gitignore) `.gitignore.template.mjs`](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/deployments/.gitignore.template.mjs) | this makes sure we have empty `deployments` out of box | -We also have `.gitignore.template.mjs` files in [root](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/.gitignore.template.mjs), [nextjs](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/.gitignore.template.mjs), [hardhat](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs), [foundry](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/.env.template.mjs) that are used to prevent npm from ignoring the `.gitignore` files in the generated project. +We have `.gitignore.template.mjs` files in [root](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/.gitignore.template.mjs), [nextjs](https://github.com/scaffold-eth/create-eth/blob/main/templates/base/packages/nextjs/.gitignore.template.mjs), [hardhat](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/hardhat/packages/hardhat/.gitignore.template.mjs), [foundry](https://github.com/scaffold-eth/create-eth/blob/main/templates/solidity-frameworks/foundry/packages/foundry/.env.template.mjs) that are used to prevent npm from ignoring the `.gitignore` files in the generated project. For more information on how templating works in this project, please refer to the [TEMPLATING.md](./TEMPLATING.md) document. From 4d8bf904be67f125cbc602f54dfbe5cd9f3d43cf Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Wed, 22 Oct 2025 19:55:41 +0530 Subject: [PATCH 6/7] log file name directly which doesn't accepts args --- src/dev/create-extension.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dev/create-extension.ts b/src/dev/create-extension.ts index cbcf9a1243..23326c6262 100644 --- a/src/dev/create-extension.ts +++ b/src/dev/create-extension.ts @@ -165,7 +165,7 @@ const copyChanges = async ( const defaultArgs = extractWithDefaultsArg(templateContent); if (!defaultArgs) { - prettyLog.info(`.gitignore and .env files could not be changed`, 3); + prettyLog.info(`${file} could not be changed (does not accept arguments)`, 3); console.log("\n"); continue; } From cd1f0620fa9fafda57cc97c3df9ef950273094a3 Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Wed, 22 Oct 2025 19:57:29 +0530 Subject: [PATCH 7/7] update changeset --- .changeset/tough-rooms-mate.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/tough-rooms-mate.md b/.changeset/tough-rooms-mate.md index c785d07cd7..4231f25228 100644 --- a/.changeset/tough-rooms-mate.md +++ b/.changeset/tough-rooms-mate.md @@ -3,3 +3,4 @@ --- Add drizzle-neon to curated extensions +Accept `postContent` args in `.gitignores` tempaltes