From 92b298ff8692075f2092ad8cb422f58662a4e347 Mon Sep 17 00:00:00 2001 From: Ryan Christian Date: Wed, 14 Sep 2022 00:08:05 -0500 Subject: [PATCH 1/2] fix: Prepublish, rewrite relative links in subpackage readmes --- package.json | 1 + packages/preact/package.json | 2 +- packages/react/package.json | 2 +- scripts/rewrite-readme-relative-links.js | 21 +++++++++++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 scripts/rewrite-readme-relative-links.js diff --git a/package.json b/package.json index 757fcc9ae..f5fe88543 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "postbuild:preact": "cd packages/preact/dist && mv -f preact/src/index.d.ts signals.d.ts && rm -dr preact", "postbuild:react": "cd packages/react/dist && mv -f react/src/index.d.ts signals.d.ts && rm -dr react", "postbuild": "node ./scripts/node-13-exports.js", + "rewriteReadmes": "node ./scripts/rewrite-readme-relative-links.js", "lint": "eslint 'packages/**/*.{ts,tsx,js,jsx}'", "test": "cross-env COVERAGE=true karma start karma.conf.js --single-run", "test:watch": "karma start karma.conf.js --no-single-run", diff --git a/packages/preact/package.json b/packages/preact/package.json index d67c7236e..a6f84ed4d 100644 --- a/packages/preact/package.json +++ b/packages/preact/package.json @@ -34,7 +34,7 @@ }, "mangle": "../../mangle.json", "scripts": { - "prepublishOnly": "cd ../.. && pnpm build:preact" + "prepublishOnly": "cd ../.. && pnpm build:preact && pnpm rewriteReadmes" }, "dependencies": { "@preact/signals-core": "workspace:^1.0.1" diff --git a/packages/react/package.json b/packages/react/package.json index 776b34852..c2887149d 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -34,7 +34,7 @@ }, "mangle": "../../mangle.json", "scripts": { - "prepublishOnly": "cd ../.. && pnpm build:react" + "prepublishOnly": "cd ../.. && pnpm build:react && pnpm rewriteReadmes" }, "dependencies": { "@preact/signals-core": "workspace:^1.0.0" diff --git a/scripts/rewrite-readme-relative-links.js b/scripts/rewrite-readme-relative-links.js new file mode 100644 index 000000000..d99f244c4 --- /dev/null +++ b/scripts/rewrite-readme-relative-links.js @@ -0,0 +1,21 @@ +const fs = require("fs"); +const path = require("path"); + +["preact", "react"].forEach((pkg) => { + const pkgReadme = path.join(__dirname, "..", "packages", pkg, "README.md"); + let readme = fs.readFileSync(pkgReadme, "utf8"); + + /** + * Fixes an "issue" with how NPM resolves relative links. + * + * While `../../README.md` will work well on GitHub, as NPM + * is unaware of source directory structure, it results in a + * broken (404'ing) link. + * + * We switch the grandparent directory link to one relative to + * repo root which NPM is capable of handling. + */ + readme = readme.replace(/\((\.\.\/){2}/g, '(./'); + + fs.writeFileSync(pkgReadme, readme); +}) From 8f6a3d5a1ad483b72c1e83d0d49296ecc8556ff6 Mon Sep 17 00:00:00 2001 From: Ryan Christian Date: Wed, 14 Sep 2022 00:57:01 -0500 Subject: [PATCH 2/2] refactor: Use 'directory' key instead of a rewrite script Co-authored-by: Kid --- package.json | 1 - packages/preact/package.json | 5 +++-- packages/react/package.json | 5 +++-- scripts/rewrite-readme-relative-links.js | 21 --------------------- 4 files changed, 6 insertions(+), 26 deletions(-) delete mode 100644 scripts/rewrite-readme-relative-links.js diff --git a/package.json b/package.json index f5fe88543..757fcc9ae 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ "postbuild:preact": "cd packages/preact/dist && mv -f preact/src/index.d.ts signals.d.ts && rm -dr preact", "postbuild:react": "cd packages/react/dist && mv -f react/src/index.d.ts signals.d.ts && rm -dr react", "postbuild": "node ./scripts/node-13-exports.js", - "rewriteReadmes": "node ./scripts/rewrite-readme-relative-links.js", "lint": "eslint 'packages/**/*.{ts,tsx,js,jsx}'", "test": "cross-env COVERAGE=true karma start karma.conf.js --single-run", "test:watch": "karma start karma.conf.js --no-single-run", diff --git a/packages/preact/package.json b/packages/preact/package.json index a6f84ed4d..e0db0dde3 100644 --- a/packages/preact/package.json +++ b/packages/preact/package.json @@ -9,7 +9,8 @@ ], "repository": { "type": "git", - "url": "https://github.com/preactjs/signals" + "url": "https://github.com/preactjs/signals", + "directory": "packages/preact" }, "bugs": "https://github.com/preactjs/signals/issues", "homepage": "https://preactjs.com", @@ -34,7 +35,7 @@ }, "mangle": "../../mangle.json", "scripts": { - "prepublishOnly": "cd ../.. && pnpm build:preact && pnpm rewriteReadmes" + "prepublishOnly": "cd ../.. && pnpm build:preact" }, "dependencies": { "@preact/signals-core": "workspace:^1.0.1" diff --git a/packages/react/package.json b/packages/react/package.json index bd65b9a37..3695edfdc 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -9,7 +9,8 @@ ], "repository": { "type": "git", - "url": "https://github.com/preactjs/signals" + "url": "https://github.com/preactjs/signals", + "directory": "packages/react" }, "bugs": "https://github.com/preactjs/signals/issues", "homepage": "https://preactjs.com", @@ -34,7 +35,7 @@ }, "mangle": "../../mangle.json", "scripts": { - "prepublishOnly": "cd ../.. && pnpm build:react && pnpm rewriteReadmes" + "prepublishOnly": "cd ../.. && pnpm build:react" }, "dependencies": { "@preact/signals-core": "workspace:^1.1.0" diff --git a/scripts/rewrite-readme-relative-links.js b/scripts/rewrite-readme-relative-links.js deleted file mode 100644 index d99f244c4..000000000 --- a/scripts/rewrite-readme-relative-links.js +++ /dev/null @@ -1,21 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -["preact", "react"].forEach((pkg) => { - const pkgReadme = path.join(__dirname, "..", "packages", pkg, "README.md"); - let readme = fs.readFileSync(pkgReadme, "utf8"); - - /** - * Fixes an "issue" with how NPM resolves relative links. - * - * While `../../README.md` will work well on GitHub, as NPM - * is unaware of source directory structure, it results in a - * broken (404'ing) link. - * - * We switch the grandparent directory link to one relative to - * repo root which NPM is capable of handling. - */ - readme = readme.replace(/\((\.\.\/){2}/g, '(./'); - - fs.writeFileSync(pkgReadme, readme); -})