From 46b9218b4038f988bca7956aa370493187e6ed7f Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 19:42:19 +0530 Subject: [PATCH 01/11] docs(changeset): Test if Next.js app router works when useRGS is exported as named export --- .changeset/five-roses-taste.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/five-roses-taste.md diff --git a/.changeset/five-roses-taste.md b/.changeset/five-roses-taste.md new file mode 100644 index 00000000..ba0c9b34 --- /dev/null +++ b/.changeset/five-roses-taste.md @@ -0,0 +1,5 @@ +--- +"r18gs": patch +--- + +Test if Next.js app router works when useRGS is exported as named export From 790800f1921716b360a4cee543b7d63ac94d9a67 Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 19:52:46 +0530 Subject: [PATCH 02/11] Update publish script --- scripts/publish.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/scripts/publish.js b/scripts/publish.js index 13b414e8..70ccb367 100644 --- a/scripts/publish.js +++ b/scripts/publish.js @@ -46,3 +46,21 @@ execSync("cd lib && pnpm build && npm publish --provenance --access public"); execSync( `gh release create ${VERSION} --generate-notes --latest -n "$(sed '1,/^## /d;/^## /,$d' CHANGELOG.md)" --title "Release v${VERSION}"`, ); + +// Publish canonical packages +[ + "@mayank1513/r18gs", + "react18-global-store", + "react18-store", + "react19-global-store", + "react19-store", + "r19gs", +].forEach(pkg => { + execSync(`sed -i -e "s/name.*/name\": \"${pkg}\",/" lib/package.json`); + execSync("cd lib && npm publish --provenance --access public"); +}); + +// Mark deprecated +execSync( + 'npm deprecate @mayank1513/r18gs "Please use https://www.npmjs.com/package/r18gs instead. We initially created scoped packages to have similarities with the GitHub Public Repository (which requires packages to be scoped). We are no longer using GPR and thus deprecating all scoped packages for which corresponding un-scoped packages exist."', +); From 624be2f72dc902198f2baea3801d292caf28adbd Mon Sep 17 00:00:00 2001 From: mayank1513 Date: Mon, 17 Jun 2024 14:24:24 +0000 Subject: [PATCH 03/11] RELEASING: Releasing 2 package(s) Releases: r18gs@1.1.2-alpha.0 @repo/shared@0.0.1-alpha.0 --- lib/CHANGELOG.md | 6 ++++++ lib/package.json | 2 +- packages/shared/CHANGELOG.md | 8 ++++++++ packages/shared/package.json | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 packages/shared/CHANGELOG.md diff --git a/lib/CHANGELOG.md b/lib/CHANGELOG.md index 5cb32d76..0c352bda 100644 --- a/lib/CHANGELOG.md +++ b/lib/CHANGELOG.md @@ -1,5 +1,11 @@ # r18gs +## 1.1.2-alpha.0 + +### Patch Changes + +- 46b9218: Test if Next.js app router works when useRGS is exported as named export + ## 1.1.1 ### Patch Changes diff --git a/lib/package.json b/lib/package.json index 1c7a3651..334bb390 100644 --- a/lib/package.json +++ b/lib/package.json @@ -2,7 +2,7 @@ "name": "r18gs", "author": "Mayank Kumar Chaudhari ", "private": false, - "version": "1.1.1", + "version": "1.1.2-alpha.0", "description": "A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.", "license": "MPL-2.0", "main": "./dist/index.js", diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md new file mode 100644 index 00000000..c395c17b --- /dev/null +++ b/packages/shared/CHANGELOG.md @@ -0,0 +1,8 @@ +# @repo/shared + +## 0.0.1-alpha.0 + +### Patch Changes + +- Updated dependencies [46b9218] + - r18gs@1.1.2-alpha.0 diff --git a/packages/shared/package.json b/packages/shared/package.json index 2c6e18c1..dc07de3d 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@repo/shared", - "version": "0.0.0", + "version": "0.0.1-alpha.0", "private": true, "sideEffects": false, "main": "./dist/index.js", From df079dbd01bb916be9346b58ae3b756b39215e68 Mon Sep 17 00:00:00 2001 From: mayank1513 Date: Mon, 17 Jun 2024 14:24:24 +0000 Subject: [PATCH 04/11] Apply changesets and update CHANGELOG --- .changeset/pre.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..298a72bb --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,19 @@ +{ + "mode": "exit", + "tag": "alpha", + "initialVersions": { + "@example/nextjs": "0.0.0", + "@example/remix": "0.0.0", + "@example/vite": "0.0.0", + "r18gs": "1.1.1", + "@repo/eslint-config": "0.0.0", + "@repo/typescript-config": "0.0.0", + "@repo/jest-presets": "0.0.0", + "@repo/logger": "0.0.0", + "@repo/shared": "0.0.0", + "@repo/scripts": "0.0.0" + }, + "changesets": [ + "five-roses-taste" + ] +} From 1a0e34a522cb20d6c1c5a89c42027db66dc8d09b Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 19:57:15 +0530 Subject: [PATCH 05/11] remove unnecessary plugins --- lib/tsup.config.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/tsup.config.ts b/lib/tsup.config.ts index c09a8bc1..cd1c64a9 100644 --- a/lib/tsup.config.ts +++ b/lib/tsup.config.ts @@ -1,6 +1,4 @@ import { defineConfig, type Options } from "tsup"; -import react18Plugin from "esbuild-plugin-react18"; -import cssPlugin from "esbuild-plugin-react18-css"; export default defineConfig( (options: Options) => @@ -12,7 +10,6 @@ export default defineConfig( clean: !options.watch, bundle: true, minify: !options.watch, - esbuildPlugins: [react18Plugin(), cssPlugin({ generateScopedName: "[folder]__[local]" })], ...options, }) as Options, ); From f62eb086d7f78437b45d05b459a7a8279d61f264 Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 19:59:23 +0530 Subject: [PATCH 06/11] Add deprecation warning --- lib/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/src/index.ts b/lib/src/index.ts index cfb4b274..3c784200 100644 --- a/lib/src/index.ts +++ b/lib/src/index.ts @@ -34,5 +34,6 @@ const useRGS = (key: string, value?: ValueType): [T, SetStateAction] => return createHook(key); }; +/** @deprecated - default export is deprecated and will be removed. Use `import { useRGS } from "r18gs"` */ export default useRGS; export { useRGS }; From cad3c420fbf92ed2bb01952dc05ce1e521f78c2c Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 21:35:46 +0530 Subject: [PATCH 07/11] docs(changeset): Add minify plugin --- .changeset/tall-oranges-sort.md | 5 +++ lib/tsup.config.ts | 59 ++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 .changeset/tall-oranges-sort.md diff --git a/.changeset/tall-oranges-sort.md b/.changeset/tall-oranges-sort.md new file mode 100644 index 00000000..fae1b70f --- /dev/null +++ b/.changeset/tall-oranges-sort.md @@ -0,0 +1,5 @@ +--- +"r18gs": patch +--- + +Add minify plugin diff --git a/lib/tsup.config.ts b/lib/tsup.config.ts index cd1c64a9..d77c1b81 100644 --- a/lib/tsup.config.ts +++ b/lib/tsup.config.ts @@ -1,15 +1,44 @@ -import { defineConfig, type Options } from "tsup"; - -export default defineConfig( - (options: Options) => - ({ - format: ["cjs", "esm"], - target: "es2019", - entry: ["./src"], - sourcemap: false, - clean: !options.watch, - bundle: true, - minify: !options.watch, - ...options, - }) as Options, -); +import { defineConfig } from "tsup"; +import fs from "node:fs"; + +export default defineConfig(options => ({ + format: ["cjs", "esm"], + target: "es2015", + entry: ["./src"], + sourcemap: false, + clean: !options.watch, + bundle: true, + minify: !options.watch, + esbuildPlugins: [ + { + name: "improve-minify", + setup(build) { + build.onLoad({ filter: /utils.ts/ }, args => { + let contents = fs.readFileSync(args.path, "utf8"); + const lines = contents.split("\n"); + const hackLine = lines.find(line => line.startsWith("const [VALUE,")); + + if (!hackLine) return { contents, loader: "ts" }; + /** remove hackLine */ + contents = contents.replace(hackLine, ""); + + /** clean up */ + const tokens = hackLine + .replace("const", "") + .split("=")[0] + .trim() + .replace(/\]|\[/g, "") + .split(",") + .map((t, i) => ({ token: t.trim(), i })); + + tokens.sort((a, b) => b.token.length - a.token.length); + + for (const t of tokens) { + contents = contents.replace(new RegExp(`${t.token}`, "g"), t.i + ""); + } + return { contents, loader: "ts" }; + }); + }, + }, + ], +})); From c2a0347d093d778d3a6889e948d2f48c2b7db053 Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 21:38:09 +0530 Subject: [PATCH 08/11] fix: fix slash in publish script --- scripts/publish.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/publish.js b/scripts/publish.js index 70ccb367..0806b48c 100644 --- a/scripts/publish.js +++ b/scripts/publish.js @@ -56,7 +56,7 @@ execSync( "react19-store", "r19gs", ].forEach(pkg => { - execSync(`sed -i -e "s/name.*/name\": \"${pkg}\",/" lib/package.json`); + execSync(`sed -i -e "s/name.*/name\\": \\"${pkg}\\",/" lib/package.json`); execSync("cd lib && npm publish --provenance --access public"); }); From d3394fe57acce1cbfd8d638ea7a9c2e1ce05ea9a Mon Sep 17 00:00:00 2001 From: Mayank Date: Mon, 17 Jun 2024 21:40:54 +0530 Subject: [PATCH 09/11] fix: JS-0066 Prefer using explicit casts by calling Number, Boolean, or String over using operators like +, !! or "" +. This is considered best practice as it improves readability. --- lib/tsup.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tsup.config.ts b/lib/tsup.config.ts index d77c1b81..f36865bd 100644 --- a/lib/tsup.config.ts +++ b/lib/tsup.config.ts @@ -34,7 +34,7 @@ export default defineConfig(options => ({ tokens.sort((a, b) => b.token.length - a.token.length); for (const t of tokens) { - contents = contents.replace(new RegExp(`${t.token}`, "g"), t.i + ""); + contents = contents.replace(new RegExp(`${t.token}`, "g"), String(t.i)); } return { contents, loader: "ts" }; }); From 401eda1d2d38429ab98921c476c998fe24a288cb Mon Sep 17 00:00:00 2001 From: mayank1513 Date: Mon, 17 Jun 2024 16:12:19 +0000 Subject: [PATCH 10/11] RELEASING: Releasing 2 package(s) Releases: r18gs@1.1.2-alpha.1 @repo/shared@0.0.1-alpha.1 --- lib/CHANGELOG.md | 6 ++++++ lib/package.json | 2 +- packages/shared/CHANGELOG.md | 7 +++++++ packages/shared/package.json | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/CHANGELOG.md b/lib/CHANGELOG.md index 0c352bda..af7fbee9 100644 --- a/lib/CHANGELOG.md +++ b/lib/CHANGELOG.md @@ -1,5 +1,11 @@ # r18gs +## 1.1.2-alpha.1 + +### Patch Changes + +- cad3c42: Add minify plugin + ## 1.1.2-alpha.0 ### Patch Changes diff --git a/lib/package.json b/lib/package.json index 334bb390..45227948 100644 --- a/lib/package.json +++ b/lib/package.json @@ -2,7 +2,7 @@ "name": "r18gs", "author": "Mayank Kumar Chaudhari ", "private": false, - "version": "1.1.2-alpha.0", + "version": "1.1.2-alpha.1", "description": "A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.", "license": "MPL-2.0", "main": "./dist/index.js", diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md index c395c17b..989c34e7 100644 --- a/packages/shared/CHANGELOG.md +++ b/packages/shared/CHANGELOG.md @@ -1,5 +1,12 @@ # @repo/shared +## 0.0.1-alpha.1 + +### Patch Changes + +- Updated dependencies [cad3c42] + - r18gs@1.1.2-alpha.1 + ## 0.0.1-alpha.0 ### Patch Changes diff --git a/packages/shared/package.json b/packages/shared/package.json index dc07de3d..ad61cc05 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@repo/shared", - "version": "0.0.1-alpha.0", + "version": "0.0.1-alpha.1", "private": true, "sideEffects": false, "main": "./dist/index.js", From a8ae74abe3d7a81841079a2b91d5a13f6d75d87d Mon Sep 17 00:00:00 2001 From: mayank1513 Date: Mon, 17 Jun 2024 16:12:20 +0000 Subject: [PATCH 11/11] Apply changesets and update CHANGELOG --- .changeset/pre.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 298a72bb..242cefe6 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -5,15 +5,16 @@ "@example/nextjs": "0.0.0", "@example/remix": "0.0.0", "@example/vite": "0.0.0", - "r18gs": "1.1.1", + "r18gs": "1.1.2-alpha.0", "@repo/eslint-config": "0.0.0", "@repo/typescript-config": "0.0.0", "@repo/jest-presets": "0.0.0", "@repo/logger": "0.0.0", - "@repo/shared": "0.0.0", + "@repo/shared": "0.0.1-alpha.0", "@repo/scripts": "0.0.0" }, "changesets": [ - "five-roses-taste" + "five-roses-taste", + "tall-oranges-sort" ] }