From d668ca4f1ff343574cf080accda161b033691456 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 1 Mar 2019 21:55:47 -0500 Subject: [PATCH] Assign unique error codes to production invariant errors. Inspired by https://github.com/apollographql/apollo-client/issues/4519. Implemented and explained by https://github.com/apollographql/invariant-packages/pull/1. --- config/rollup.config.js | 10 +++++++++- package-lock.json | 6 +++--- package.json | 4 ++-- packages/apollo-boost/package-lock.json | 8 ++++---- packages/apollo-boost/package.json | 2 +- packages/apollo-cache-inmemory/package-lock.json | 8 ++++---- packages/apollo-cache-inmemory/package.json | 2 +- packages/apollo-cache/package-lock.json | 2 +- packages/apollo-client/package-lock.json | 8 ++++---- packages/apollo-client/package.json | 2 +- packages/apollo-utilities/package-lock.json | 8 ++++---- packages/apollo-utilities/package.json | 2 +- packages/graphql-anywhere/package-lock.json | 2 +- 13 files changed, 36 insertions(+), 28 deletions(-) diff --git a/config/rollup.config.js b/config/rollup.config.js index 60c68d674e3..a0dda885253 100644 --- a/config/rollup.config.js +++ b/config/rollup.config.js @@ -79,7 +79,15 @@ export function rollup({ module: true, }), typescriptPlugin({ typescript, tsconfig }), - invariantPlugin(), + invariantPlugin({ + // Instead of completely stripping InvariantError messages in + // production, this option assigns a numeric code to the + // production version of each error (unique to the call/throw + // location), which makes it much easier to trace production + // errors back to the unminified code where they were thrown, + // where the full error string can be found. See #4519. + errorCodes: true, + }), ], onwarn, }, diff --git a/package-lock.json b/package-lock.json index 3f8b2a529c6..649608889f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11937,9 +11937,9 @@ } }, "rollup-plugin-invariant": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-invariant/-/rollup-plugin-invariant-0.3.2.tgz", - "integrity": "sha512-1LxRFWan0jXGIlP8H7XaL2ivt96SLQFM7mdSJVMkZSdfNTTCCrIjk4G2H2wdhStcFDtCRpmu9ukYPUXShTa2yg==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-invariant/-/rollup-plugin-invariant-0.4.0.tgz", + "integrity": "sha512-w8HRAowafvETQ6xh09A1TYzL6Jc4PIa0B1Cug795e5/w4VYMxSAlwypoW1bUNpziPTAft5q67FjqkNlQN+5Wdg==", "dev": true, "requires": { "recast": "^0.17.2", diff --git a/package.json b/package.json index fb52853d7fb..5aaa1943247 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ { "name": "apollo-utilities", "path": "./packages/apollo-utilities/lib/bundle.cjs.min.js", - "maxSize": "4.15 kB" + "maxSize": "4.2 kB" } ], "lint-staged": { @@ -89,7 +89,7 @@ "react": "16.8.3", "react-dom": "16.8.3", "rollup": "1.2.2", - "rollup-plugin-invariant": "^0.3.2", + "rollup-plugin-invariant": "^0.4.0", "rollup-plugin-local-resolve": "1.0.7", "rollup-plugin-node-resolve": "4.0.1", "rollup-plugin-sourcemaps": "0.4.2", diff --git a/packages/apollo-boost/package-lock.json b/packages/apollo-boost/package-lock.json index fdc6a88c7e4..6a1274de7c6 100644 --- a/packages/apollo-boost/package-lock.json +++ b/packages/apollo-boost/package-lock.json @@ -1,6 +1,6 @@ { "name": "apollo-boost", - "version": "0.3.0-beta.0", + "version": "0.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -229,9 +229,9 @@ "integrity": "sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg==" }, "ts-invariant": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.2.1.tgz", - "integrity": "sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.3.0.tgz", + "integrity": "sha512-HIaaQa5naCe+vYsMsRnEV0gs5ment1Y2VJMYneoQLPm014uUjc76PHvLJr61qas35aYOcsZEC+i6AuJjTY7Odw==", "requires": { "tslib": "^1.9.3" } diff --git a/packages/apollo-boost/package.json b/packages/apollo-boost/package.json index 01ad64255c5..8050bc3b3b7 100644 --- a/packages/apollo-boost/package.json +++ b/packages/apollo-boost/package.json @@ -42,7 +42,7 @@ "apollo-link-error": "^1.0.3", "apollo-link-http": "^1.3.1", "graphql-tag": "^2.4.2", - "ts-invariant": "^0.2.1", + "ts-invariant": "^0.3.0", "tslib": "^1.9.3" }, "peerDependencies": { diff --git a/packages/apollo-cache-inmemory/package-lock.json b/packages/apollo-cache-inmemory/package-lock.json index ced1bc55172..92ad8ab40ad 100644 --- a/packages/apollo-cache-inmemory/package-lock.json +++ b/packages/apollo-cache-inmemory/package-lock.json @@ -1,6 +1,6 @@ { "name": "apollo-cache-inmemory", - "version": "1.5.0-beta.0", + "version": "1.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -51,9 +51,9 @@ } }, "ts-invariant": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.2.1.tgz", - "integrity": "sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.3.0.tgz", + "integrity": "sha512-HIaaQa5naCe+vYsMsRnEV0gs5ment1Y2VJMYneoQLPm014uUjc76PHvLJr61qas35aYOcsZEC+i6AuJjTY7Odw==", "requires": { "tslib": "^1.9.3" } diff --git a/packages/apollo-cache-inmemory/package.json b/packages/apollo-cache-inmemory/package.json index 35f7e425acb..d2685a01ee7 100644 --- a/packages/apollo-cache-inmemory/package.json +++ b/packages/apollo-cache-inmemory/package.json @@ -42,7 +42,7 @@ "apollo-cache": "file:../apollo-cache", "apollo-utilities": "file:../apollo-utilities", "optimism": "^0.6.9", - "ts-invariant": "^0.2.1", + "ts-invariant": "^0.3.0", "tslib": "^1.9.3" }, "peerDependencies": { diff --git a/packages/apollo-cache/package-lock.json b/packages/apollo-cache/package-lock.json index 7462604e3eb..47d7dc0d6dd 100644 --- a/packages/apollo-cache/package-lock.json +++ b/packages/apollo-cache/package-lock.json @@ -1,6 +1,6 @@ { "name": "apollo-cache", - "version": "1.1.25", + "version": "1.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/apollo-client/package-lock.json b/packages/apollo-client/package-lock.json index 1c094b23e3b..a54b91ca4b4 100644 --- a/packages/apollo-client/package-lock.json +++ b/packages/apollo-client/package-lock.json @@ -1,6 +1,6 @@ { "name": "apollo-client", - "version": "2.5.0-beta.0", + "version": "2.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -65,9 +65,9 @@ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" }, "ts-invariant": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.2.1.tgz", - "integrity": "sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.3.0.tgz", + "integrity": "sha512-HIaaQa5naCe+vYsMsRnEV0gs5ment1Y2VJMYneoQLPm014uUjc76PHvLJr61qas35aYOcsZEC+i6AuJjTY7Odw==", "requires": { "tslib": "^1.9.3" } diff --git a/packages/apollo-client/package.json b/packages/apollo-client/package.json index 8dba4d2f123..1406f49a208 100644 --- a/packages/apollo-client/package.json +++ b/packages/apollo-client/package.json @@ -51,7 +51,7 @@ "apollo-link-dedup": "^1.0.0", "apollo-utilities": "file:../apollo-utilities", "symbol-observable": "^1.0.2", - "ts-invariant": "^0.2.1", + "ts-invariant": "^0.3.0", "tslib": "^1.9.3", "zen-observable": "^0.8.0" }, diff --git a/packages/apollo-utilities/package-lock.json b/packages/apollo-utilities/package-lock.json index f9172f16919..5af4426412d 100644 --- a/packages/apollo-utilities/package-lock.json +++ b/packages/apollo-utilities/package-lock.json @@ -1,6 +1,6 @@ { "name": "apollo-utilities", - "version": "1.2.0-beta.0", + "version": "1.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,9 +10,9 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "ts-invariant": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.2.1.tgz", - "integrity": "sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.3.0.tgz", + "integrity": "sha512-HIaaQa5naCe+vYsMsRnEV0gs5ment1Y2VJMYneoQLPm014uUjc76PHvLJr61qas35aYOcsZEC+i6AuJjTY7Odw==", "requires": { "tslib": "^1.9.3" } diff --git a/packages/apollo-utilities/package.json b/packages/apollo-utilities/package.json index f360d1a56aa..1f496cc19be 100644 --- a/packages/apollo-utilities/package.json +++ b/packages/apollo-utilities/package.json @@ -40,7 +40,7 @@ }, "dependencies": { "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", + "ts-invariant": "^0.3.0", "tslib": "^1.9.3" } } diff --git a/packages/graphql-anywhere/package-lock.json b/packages/graphql-anywhere/package-lock.json index 90bae247db5..a250ba1d229 100644 --- a/packages/graphql-anywhere/package-lock.json +++ b/packages/graphql-anywhere/package-lock.json @@ -1,6 +1,6 @@ { "name": "graphql-anywhere", - "version": "4.1.27", + "version": "4.2.1", "lockfileVersion": 1, "requires": true, "dependencies": {