@rxap/plugin-library
Version:
This package provides generators and executors for managing and maintaining Nx plugin libraries. It includes functionality for generating index exports, fixing dependencies, generating JSON schemas, and more. It helps streamline the development process fo
44 lines • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addMigrationGenerator = addMigrationGenerator;
const tslib_1 = require("tslib");
const devkit_1 = require("@nx/devkit");
const generators_1 = require("@nx/plugin/generators");
const utilities_1 = require("@rxap/utilities");
const workspace_utilities_1 = require("@rxap/workspace-utilities");
const path_1 = require("path");
const init_project_1 = require("../init-with-migrations/init-project");
const init_workspace_1 = require("../init-with-migrations/init-workspace");
const semver_1 = require("semver");
function addMigrationGenerator(tree, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
if (!options.packageVersion && !options.increment) {
throw new Error('You must provide either a package version or an increment');
}
let packageVersion = options.packageVersion;
if (!packageVersion) {
const projectPackageJson = (0, workspace_utilities_1.GetProjectPackageJson)(tree, options.project);
const currentVersion = projectPackageJson.version;
const normalizedVersion = currentVersion.replace(/-\w+\.\d+/, '');
packageVersion = (0, semver_1.inc)(normalizedVersion, options.increment);
if (!packageVersion) {
throw new Error(`Invalid increment "${options.increment}" for version "${normalizedVersion}"`);
}
}
const projectRoot = (0, workspace_utilities_1.GetProjectRoot)(tree, options.project);
const majorVersion = packageVersion.split('.')[0];
const migrationRoot = (0, path_1.join)(projectRoot, 'src', 'migrations', `${majorVersion}.0.0`, (0, utilities_1.dasherize)(options.name));
const generatorOptions = { project: options.project, projects: [options.project] };
(0, init_workspace_1.initWorkspace)(tree, generatorOptions);
yield (0, generators_1.migrationGenerator)(tree, {
name: options.name,
packageVersion,
packageJsonUpdates: options.packageJsonUpdates,
description: options.description,
path: migrationRoot,
});
(0, init_project_1.initProject)(tree, options.project, (0, devkit_1.readProjectConfiguration)(tree, options.project), generatorOptions);
});
}
exports.default = addMigrationGenerator;
//# sourceMappingURL=generator.js.map