Skip to content

Commit

Permalink
Improve error messages for mismatching peer dependencies (#220)
Browse files Browse the repository at this point in the history
- Include dev versions that still satisfy semver
- Address #191

---------

Co-authored-by: Nick Tessier <[email protected]>
  • Loading branch information
derbynn and nick4598 authored Oct 24, 2024
1 parent 93c960e commit 00224c3
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "improve error messages for mismatching peer dependencies",
"packageName": "@itwin/imodel-transformer",
"email": "[email protected]",
"dependentChangeType": "patch"
}
17 changes: 17 additions & 0 deletions packages/transformer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,20 @@ require("https").get("https://registry.npmjs.org/@itwin/imodel-transformer", r=>
}))
EOF
```

## Environment Variables

### TRANSFORMER_NO_STRICT_DEP_CHECK

Set this variable to `1` to disable strict dependency checks in `packages/transformer/src/transformer.ts`. The strict dependency check validates that the version of @itwinjs/core-backend provided falls in the range defined by the peerDependencies of the transformer package.

### SUGGEST_TRANSFORMER_VERSIONS

Set this variable to `1` to enable `packages/transformer/src/transformer.ts` to suggest compatible versions if dependencies are not in the specified peer dependency range of this package.

```dotenv
# Disable strict dependency checks in transformer.ts
TRANSFORMER_NO_STRICT_DEP_CHECK=1
# Enable version suggestions in transformer.ts
SUGGEST_TRANSFORMER_VERSIONS=1
14 changes: 13 additions & 1 deletion packages/transformer/src/imodel-transformer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,21 @@ const ourITwinCoreBackendDepRange = peerDependencies["@itwin/core-backend"];
const noStrictDepCheckEnvVar = "TRANSFORMER_NO_STRICT_DEP_CHECK";
const suggestEnvVarName = "SUGGEST_TRANSFORMER_VERSIONS";

// warn if using a prerelease or dev version
if (semver.prerelease(iTwinCoreBackendVersion)) {
// eslint-disable-next-line no-console
console.warn(
`Warning: dev version detected (${iTwinCoreBackendVersion}). ` +
"This version is most likely fine, but it may introduce new behavior that could cause " +
"unexpected issues or changes in the transformer's functionality. Please proceed with caution."
);
}

if (
process.env[noStrictDepCheckEnvVar] !== "1" &&
!semver.satisfies(iTwinCoreBackendVersion, ourITwinCoreBackendDepRange)
!semver.satisfies(iTwinCoreBackendVersion, ourITwinCoreBackendDepRange, {
includePrerelease: true,
})
) {
const errHeader =
`${ourName}@${ourVersion} only supports @itwin/core-backend@${ourITwinCoreBackendDepRange}, ` +
Expand Down

0 comments on commit 00224c3

Please sign in to comment.