@trumbitta/nx-plugin-openapi
Version:
[](https://www.npmjs.com/@trumbitta/nx-plugin-openapi) []()
56 lines • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// Nrwl
const devkit_1 = require("@nrwl/devkit");
const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
// Schematics
const generator_1 = tslib_1.__importDefault(require("../init/generator"));
const projectType = 'library';
function default_1(tree, schema) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const tasks = [];
const options = normalizeOptions(schema, tree);
// Init
const initTask = yield generator_1.default(tree);
tasks.push(initTask);
// Add Project
addProject(tree, options);
// Create Files
createFiles(tree, options);
// Format
if (!options.skipFormat) {
yield devkit_1.formatFiles(tree);
}
return run_tasks_in_serial_1.runTasksInSerial(...tasks);
});
}
exports.default = default_1;
function normalizeOptions(options, tree) {
var _a;
const name = devkit_1.names(options.name).fileName;
const projectDirectory = options.directory ? `${devkit_1.names(options.directory).fileName}/${name}` : name;
const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
const workspaceLayout = (_a = devkit_1.readWorkspaceConfiguration(tree).workspaceLayout) !== null && _a !== void 0 ? _a : { libsDir: 'libs' };
const projectRoot = `${workspaceLayout.libsDir}/${projectDirectory}`;
const parsedTags = options.tags ? options.tags.split(',').map((s) => s.trim()) : [];
return Object.assign(Object.assign({}, options), { projectName,
projectRoot,
projectDirectory,
parsedTags });
}
const addProject = (host, options) => {
devkit_1.addProjectConfiguration(host, options.projectName, {
root: options.projectRoot,
sourceRoot: devkit_1.joinPathFragments(options.projectRoot, 'src'),
projectType,
targets: {},
tags: options.parsedTags,
});
};
function createFiles(host, options) {
!options.withSample && host.write(devkit_1.joinPathFragments(options.projectRoot, 'src/.gitkeep'), '');
options.withSample &&
devkit_1.generateFiles(host, devkit_1.joinPathFragments(__dirname, './files'), options.projectRoot, Object.assign(Object.assign(Object.assign({}, options), devkit_1.names(options.name)), { tmpl: '', offsetFromRoot: devkit_1.offsetFromRoot(options.projectRoot) }));
}
//# sourceMappingURL=generator.js.map