@iotechpis/strapi-plugin-schemas-to-ts
Version:
A Strapi plugin that automatically generates Typescript interfaces for Strapi entities and components.
37 lines (36 loc) • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InterfaceBuilderFactory = void 0;
const postV414InterfaceBuilder_1 = require("./postV414InterfaceBuilder");
const preV414InterfaceBuilder_1 = require("./preV414InterfaceBuilder");
class InterfaceBuilderFactory {
static getInterfaceBuilder(strapi, commonHelpers, config) {
const strapiVersion = this.getStrapiVersion(strapi);
console.log(`Detected Strapi version ${strapiVersion} for interface building`);
if (this.isStrapiVersionGreaterThanOrEqual(strapiVersion, '4.14')) {
return new postV414InterfaceBuilder_1.PostV414InterfaceBuilder(commonHelpers, config);
}
else {
return new preV414InterfaceBuilder_1.PreV414InterfaceBuilder(commonHelpers, config);
}
}
static isStrapiVersionGreaterThanOrEqual(strapiVersion, version) {
const strapiVersionParts = strapiVersion.split('.').map(Number);
const versionParts = version.split('.').map(Number);
for (let i = 0; i < Math.max(versionParts.length, strapiVersionParts.length); i++) {
const versionPart = i < versionParts.length ? versionParts[i] : 0;
const strapiVersionPart = i < strapiVersionParts.length ? strapiVersionParts[i] : 0;
if (strapiVersionPart > versionPart) {
return true;
}
if (strapiVersionPart < versionPart) {
return false;
}
}
return true; // Versions are equal
}
static getStrapiVersion(strapi) {
return strapi.config.info.strapi;
}
}
exports.InterfaceBuilderFactory = InterfaceBuilderFactory;