From e4e951124f5238b58eac6ffb5325a6dc822daa58 Mon Sep 17 00:00:00 2001 From: Richard Moore Date: Thu, 6 Apr 2023 03:42:22 -0400 Subject: [PATCH] admin: added default fallback to exports for legacy tooling --- package.json | 40 +++++++++++++++++++++------------ src.ts/_admin/update-version.ts | 11 +++++---- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index b9f4bfe70..0f60520d3 100644 --- a/package.json +++ b/package.json @@ -34,64 +34,76 @@ "ethereum": "donations.ethers.eth", "exports": { ".": { + "types": "./types/index.d.ts", "import": "./lib.esm/index.js", "require": "./lib.commonjs/index.js", - "types": "./types/index.d.ts" + "default": "./lib.commonjs/index.js" }, "./abi": { "types": "./types/abi/index.d.ts", "import": "./lib.esm/abi/index.js", - "require": "./lib.commonjs/abi/index.js" + "require": "./lib.commonjs/abi/index.js", + "default": "./lib.commonjs/abi/index.js" }, "./address": { "types": "./types/address/index.d.ts", "import": "./lib.esm/address/index.js", - "require": "./lib.commonjs/address/index.js" + "require": "./lib.commonjs/address/index.js", + "default": "./lib.commonjs/address/index.js" }, "./constants": { "types": "./types/constants/index.d.ts", "import": "./lib.esm/constants/index.js", - "require": "./lib.commonjs/constants/index.js" + "require": "./lib.commonjs/constants/index.js", + "default": "./lib.commonjs/constants/index.js" }, "./contract": { "types": "./types/contract/index.d.ts", "import": "./lib.esm/contract/index.js", - "require": "./lib.commonjs/contract/index.js" + "require": "./lib.commonjs/contract/index.js", + "default": "./lib.commonjs/contract/index.js" }, "./crypto": { "types": "./types/crypto/index.d.ts", "import": "./lib.esm/crypto/index.js", - "require": "./lib.commonjs/crypto/index.js" + "require": "./lib.commonjs/crypto/index.js", + "default": "./lib.commonjs/crypto/index.js" }, "./hash": { "types": "./types/hash/index.d.ts", "import": "./lib.esm/hash/index.js", - "require": "./lib.commonjs/hash/index.js" + "require": "./lib.commonjs/hash/index.js", + "default": "./lib.commonjs/hash/index.js" }, "./providers": { "types": "./types/providers/index.d.ts", "import": "./lib.esm/providers/index.js", - "require": "./lib.commonjs/providers/index.js" + "require": "./lib.commonjs/providers/index.js", + "default": "./lib.commonjs/providers/index.js" }, "./transaction": { "types": "./types/transaction/index.d.ts", "import": "./lib.esm/transaction/index.js", - "require": "./lib.commonjs/transaction/index.js" + "require": "./lib.commonjs/transaction/index.js", + "default": "./lib.commonjs/transaction/index.js" }, "./utils": { "types": "./types/utils/index.d.ts", "import": "./lib.esm/utils/index.js", - "require": "./lib.commonjs/utils/index.js" + "require": "./lib.commonjs/utils/index.js", + "default": "./lib.commonjs/utils/index.js" }, "./wallet": { "types": "./types/wallet/index.d.ts", "import": "./lib.esm/wallet/index.js", - "require": "./lib.commonjs/wallet/index.js" + "require": "./lib.commonjs/wallet/index.js", + "default": "./lib.commonjs/wallet/index.js" }, "./wordlists": { "types": "./types/wordlists/index.d.ts", "import": "./lib.esm/wordlists/index.js", - "require": "./lib.commonjs/wordlists/index.js" + "require": "./lib.commonjs/wordlists/index.js", + "default": "./lib.commonjs/wordlists/index.js" } }, "funding": [ @@ -104,7 +116,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "gitHead": "ffaafc0ce1cf40d1d76d8d814c9c445057bf6989", + "gitHead": "c58ab3a97687e15a3ffe30b038089c5f4b570bb9", "homepage": "https://ethers.org", "keywords": [ "ethereum", @@ -145,5 +157,5 @@ "sideEffects": false, "type": "module", "types": "./types/index.d.ts", - "version": "6.2.3" + "version": "6.3.0" } diff --git a/src.ts/_admin/update-version.ts b/src.ts/_admin/update-version.ts index 2f9d5c1ff..dbb1b485e 100644 --- a/src.ts/_admin/update-version.ts +++ b/src.ts/_admin/update-version.ts @@ -68,11 +68,14 @@ function writeVersion(version: string): void { pkgInfo.gitHead = gitHead; // Save the package.json - const check: Record = { "require": 1, "import": 1, "types": 1 }; + const check: Record = { "default": 1, "require": 1, "import": 1, "types": 1 }; saveJson(pkgPath, pkgInfo, (path: string, a: string, b: string) => { - if (path.startsWith("./") && check[a] && check[b]) { - if (a === "types") { return -1; } - if (b === "types") { return 1; } + if ((path.startsWith("./") || path === ".") && check[a] && check[b]) { + const cmp = a.localeCompare(b); + if (cmp === 0) { return cmp; } + if (a === "types" || b === "default") { return -1; } + if (b === "types" || a === "default") { return 1; } + return cmp; } return a.localeCompare(b); });