2023-04-17 10:39:13 +00:00
|
|
|
const semver = require("semver");
|
|
|
|
|
|
|
|
export class SaleorVersionCompatibilityValidator {
|
|
|
|
constructor(private appRequiredVersion: string) {}
|
|
|
|
|
2023-06-28 09:39:26 +00:00
|
|
|
isValid(saleorVersion: string) {
|
|
|
|
return semver.satisfies(saleorVersion, this.appRequiredVersion, {
|
2023-04-17 10:39:13 +00:00
|
|
|
includePrerelease: true,
|
|
|
|
});
|
2023-06-28 09:39:26 +00:00
|
|
|
}
|
2023-04-17 10:39:13 +00:00
|
|
|
|
2023-06-28 09:39:26 +00:00
|
|
|
validateOrThrow(saleorVersion: string) {
|
|
|
|
if (!this.isValid(saleorVersion)) {
|
2023-05-23 09:04:52 +00:00
|
|
|
throw new Error(
|
|
|
|
`Your Saleor version (${saleorVersion}) doesn't match App's required version (semver: ${this.appRequiredVersion})`
|
|
|
|
);
|
2023-04-17 10:39:13 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|