
* Extract semver compatibility logic to shared package and implement it in taxes * Move semver checking package to packages/shared * Update lock * Apply suggestions from code review Co-authored-by: Adrian Pilarczyk <admin@peelar.dev> * Improve error message * Fix lockfile --------- Co-authored-by: Adrian Pilarczyk <admin@peelar.dev>
17 lines
503 B
TypeScript
17 lines
503 B
TypeScript
const semver = require("semver");
|
|
|
|
export class SaleorVersionCompatibilityValidator {
|
|
constructor(private appRequiredVersion: string) {}
|
|
|
|
validateOrThrow(saleorVersion: string) {
|
|
const versionIsValid = semver.satisfies(saleorVersion, this.appRequiredVersion, {
|
|
includePrerelease: true,
|
|
});
|
|
|
|
if (!versionIsValid) {
|
|
throw new Error(
|
|
`Your Saleor version (${saleorVersion}) doesn't match App's required version (semver: ${this.appRequiredVersion})`
|
|
);
|
|
}
|
|
}
|
|
}
|