Skip to content

Commit e37d3bd

Browse files
Merge pull request #34 from paritytech/yuri/gitignore-backsync
Use .gitignore as the source of truth for back-sync
2 parents 55d5bc5 + f71b03a commit e37d3bd

File tree

10 files changed

+20
-38
lines changed

10 files changed

+20
-38
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"@eng-automation/js-style": "^3.1.0",
99
"chokidar": "^4.0.1",
1010
"commander": "^12.1.0",
11+
"ignore": "^7.0.5",
1112
"prettier": "^3.5.3",
1213
"prettier-plugin-tailwindcss": "^0.6.11",
1314
"type-fest": "^4.27.0",

src/scripts/backSync.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { availableTemplates, configs, TemplateNames } from "#src/templateConfigs/index";
1+
import { availableTemplates, TemplateNames } from "#src/templateConfigs/index";
22
import { colors as c, success } from "#src/util/log";
33
import chokidar from "chokidar";
44
import { Option, program } from "commander";
55
import fs from "fs";
6+
import ignore from "ignore";
67
import * as process from "node:process";
78
import path from "path";
89
import { debuglog } from "util";
@@ -19,7 +20,10 @@ program
1920
program.parse();
2021
const options: { source: string; template: TemplateNames; rm: boolean } = program.opts();
2122

22-
const config = configs[options.template];
23+
const alwaysIgnorePatterns = [/^\.papi\/metadata.*/];
24+
25+
const gitignoreContents = fs.readFileSync(path.join(options.source, ".gitignore"), "utf-8");
26+
const gitignoreIg = ignore().add(gitignoreContents);
2327

2428
const watcher = chokidar.watch(options.source, {
2529
persistent: true,
@@ -28,9 +32,11 @@ const watcher = chokidar.watch(options.source, {
2832
ignored: (updPath) => {
2933
if (updPath === options.source) return false;
3034
const relpath = path.relative(options.source, updPath);
31-
const matched = config.backSyncPatterns.some((pattern) => pattern.test(relpath));
3235

33-
return !matched;
36+
if (alwaysIgnorePatterns.some((pattern) => pattern.test(relpath))) return true;
37+
if (gitignoreIg.ignores(relpath)) return true;
38+
39+
return false;
3440
},
3541
});
3642

src/templateConfigs/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import reactSolidityHardhat from "./react-solidity-hardhat";
44

55
export type TemplateConfig = {
66
setupPapi: boolean;
7-
backSyncPatterns: RegExp[];
87
instructions: string;
98
npmRoots: string[];
109
};

src/templateConfigs/react-papi-tailwind.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { colors as c } from "#src/util/log";
33

44
const config: TemplateConfig = {
55
setupPapi: true,
6-
backSyncPatterns: [/^src.*/],
76
npmRoots: ["/"],
87
instructions: `
98
${c.secondary("Start app:")}

src/templateConfigs/react-solidity-hardhat.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,6 @@ import { colors as c } from "#src/util/log";
44
const config: TemplateConfig = {
55
setupPapi: false,
66
npmRoots: ["contracts", "frontend"],
7-
backSyncPatterns: [
8-
/^contracts$/,
9-
/^contracts\/contracts.*/,
10-
/^contracts\/ignition$/,
11-
/^contracts\/ignition.*/,
12-
/^contracts\/test.*/,
13-
/^contracts\/package\.json/,
14-
/^contracts\/package-lock\.json/,
15-
/^contracts\/tsconfig\.json/,
16-
/^contracts\/hardhat.config.ts/,
17-
/^frontend$/,
18-
/^frontend\/src.*/,
19-
/^frontend\/package\.json/,
20-
/^frontend\/package-lock\.json/,
21-
/^README.md$/,
22-
],
237
instructions: `
248
${c.primary("Develop smart contracts:")}
259
${c.primary("1. ")}${c.secondary("set up hardhat environment (see README.md): ")}

src/templateConfigs/react-solidity.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,6 @@ import { colors as c } from "#src/util/log";
44
const config: TemplateConfig = {
55
setupPapi: false,
66
npmRoots: ["contracts", "frontend"],
7-
backSyncPatterns: [
8-
/^contracts$/,
9-
/^contracts\/.+.sol/,
10-
/^contracts\/package\.json/,
11-
/^contracts\/tsconfig\.json/,
12-
/^contracts\/src.*/,
13-
/^frontend$/,
14-
/^frontend\/src.*/,
15-
/^frontend\/package\.json/,
16-
/^package\.json/,
17-
/^package-lock\.json/,
18-
],
197
instructions: `
208
${c.primary("For Remix environment:")}
219
${c.primary("1. ")}${c.secondary("start remixd environment: ")}${c.code("pnpm remixd")}

templates/react-solidity/frontend/.gitignore renamed to templates/react-solidity-hardhat/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ yarn-error.log*
77
pnpm-debug.log*
88
lerna-debug.log*
99

10-
../node_modules
10+
node_modules
1111
dist
1212
dist-ssr
1313
*.local

templates/react-solidity-hardhat/frontend/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
node_modules
21
.env
32

43
# Wagmi generated types

templates/react-solidity/contracts/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

yarn.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,7 @@ __metadata:
10991099
chalk-template: "npm:^0.5.0"
11001100
chokidar: "npm:^4.0.1"
11011101
commander: "npm:^12.1.0"
1102+
ignore: "npm:^7.0.5"
11021103
prettier: "npm:^3.5.3"
11031104
prettier-plugin-tailwindcss: "npm:^0.6.11"
11041105
type-fest: "npm:^4.27.0"
@@ -2019,6 +2020,13 @@ __metadata:
20192020
languageName: node
20202021
linkType: hard
20212022

2023+
"ignore@npm:^7.0.5":
2024+
version: 7.0.5
2025+
resolution: "ignore@npm:7.0.5"
2026+
checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d
2027+
languageName: node
2028+
linkType: hard
2029+
20222030
"import-fresh@npm:^3.2.1":
20232031
version: 3.3.0
20242032
resolution: "import-fresh@npm:3.3.0"

0 commit comments

Comments
 (0)