@gmetrixr/rjson
Version:
(R)ecursive Json
44 lines (43 loc) • 2.8 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getHighestDeploymentVersion = exports.migrateDeployment = exports.createNewDeployment = void 0;
const r_1 = require("../../r");
const d000_001_initial_deployment_migrations_1 = __importDefault(require("./deployment-migration-commands/d000_001_initial_deployment_migrations"));
const deploymentMigrations_1 = require("./deploymentMigrations");
Object.defineProperty(exports, "getHighestDeploymentVersion", { enumerable: true, get: function () { return deploymentMigrations_1.getHighestDeploymentVersion; } });
const deploymentMigrationVersions = Object.keys(deploymentMigrations_1.deploymentMigrationTree).map(numStr => parseInt(numStr)).sort((a, b) => (a - b));
const createNewDeployment = () => {
const deployment = r_1.R.createRecord(r_1.RT.deployment);
const recordF = r_1.r.record(deployment);
recordF.set(r_1.rtp.deployment.deployment_version, (0, deploymentMigrations_1.getHighestDeploymentVersion)());
return deployment;
};
exports.createNewDeployment = createNewDeployment;
/**
* Applies migrations for "r" type and returns a new project reference
*/
const migrateDeployment = (deploymentJson, uptoVersion) => {
var _a, _b, _c, _d;
//Check if deployment hasn't been converted to recordNode yet
if (((_a = deploymentJson === null || deploymentJson === void 0 ? void 0 : deploymentJson.props) === null || _a === void 0 ? void 0 : _a.deployment_version) === undefined || ((_b = deploymentJson === null || deploymentJson === void 0 ? void 0 : deploymentJson.props) === null || _b === void 0 ? void 0 : _b.deployment_version) < 1) {
//The following step converts the json to "r" type and makes the version number 1
deploymentJson = d000_001_initial_deployment_migrations_1.default.execute(deploymentJson);
}
const rDeploymentJson = deploymentJson;
let jsonVersion = (_d = (_c = rDeploymentJson === null || rDeploymentJson === void 0 ? void 0 : rDeploymentJson.props) === null || _c === void 0 ? void 0 : _c.deployment_version) !== null && _d !== void 0 ? _d : 0;
if (uptoVersion === undefined) {
uptoVersion = deploymentMigrationVersions[deploymentMigrationVersions.length - 1] + 1;
}
for (const key of deploymentMigrationVersions) {
if (jsonVersion === key && key < uptoVersion) {
// console.log(`Running r migration ${key}`);
deploymentMigrations_1.deploymentMigrationTree[key].execute(deploymentJson);
jsonVersion = deploymentJson.props.deployment_version;
}
}
return deploymentJson;
};
exports.migrateDeployment = migrateDeployment;