@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
45 lines • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.exposeAsSchematicGenerator = exposeAsSchematicGenerator;
const tslib_1 = require("tslib");
const devkit_1 = require("@nx/devkit");
const workspace_utilities_1 = require("@rxap/workspace-utilities");
const path_1 = require("path");
function skipProject(tree, options, project, projectName) {
if (options.project === projectName) {
return false;
}
if ((0, workspace_utilities_1.SkipNonGeneratorsProject)(tree, options, project, projectName)) {
return true;
}
return false;
}
function exposeAsSchematicGenerator(tree, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
console.log('expose as schematic generator:', options);
for (const [projectName, project] of (0, devkit_1.getProjects)(tree).entries()) {
if (skipProject(tree, options, project, projectName)) {
continue;
}
console.log(`expose as schematic for project: ${projectName}`);
(0, workspace_utilities_1.UpdateGenerators)(tree, project, (generators) => {
var _a;
(_a = generators.schematics) !== null && _a !== void 0 ? _a : (generators.schematics = {});
for (const [name, generator] of Object.entries(generators.generators)) {
(0, workspace_utilities_1.CoerceFile)(tree, (0, path_1.join)(project.root, (0, path_1.dirname)(generator.schema), 'index.ts'), `import { convertNxGenerator } from '@nx/devkit';\nimport generator from './generator';\n\nconst schematic = convertNxGenerator(generator);\nexport default schematic;\n`, true);
generators.schematics[name] = {
factory: `${(0, path_1.dirname)(generator.schema)}/index`,
schema: generator.schema,
description: generator.description,
};
}
return generators;
});
yield (0, workspace_utilities_1.UpdateProjectPackageJson)(tree, (packageJson) => {
packageJson['schematics'] = packageJson['generators'];
}, { projectName });
}
});
}
exports.default = exposeAsSchematicGenerator;
//# sourceMappingURL=generator.js.map