UNPKG

@nx-plugins/astro

Version:

The Nx Plugin for Astro that contains executors, generators, and utilities for managing Astro applications and libraries within an Nx workspace.

68 lines 3.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.librarySchematic = exports.libraryGenerator = void 0; const tslib_1 = require("tslib"); const devkit_1 = require("@nrwl/devkit"); const path_1 = require("nx/src/utils/path"); const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial"); const generator_1 = require("../component/generator"); const generator_2 = require("../init/generator"); const create_project_1 = require("./lib/create-project"); const add_linter_1 = require("./lib/add-linter"); const update_base_tsconfig_1 = require("./lib/update-base-tsconfig"); const create_files_1 = require("./lib/create-files"); function libraryGenerator(host, schema) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const tasks = []; const options = normalizeOptions(host, schema); const initTask = yield (0, generator_2.default)(host, { skipPackageJson: options.skipPackageJson }); tasks.push(initTask); (0, create_project_1.createProject)(host, options); (0, create_files_1.createFiles)(host, options); const lintTask = yield (0, add_linter_1.addLinter)(host, options); tasks.push(lintTask); if (!options.skipTsBaseConfig) { (0, update_base_tsconfig_1.updateBaseTsConfig)(host, options); } if (options.component) { const componentTask = yield (0, generator_1.default)(host, { name: options.name, project: options.name, flat: true, export: true, js: options.js, pascalCaseFiles: options.pascalCaseFiles, }); tasks.push(componentTask); } if (!options.skipFormat) { yield (0, devkit_1.formatFiles)(host); } return (0, run_tasks_in_serial_1.runTasksInSerial)(...tasks); }); } exports.libraryGenerator = libraryGenerator; function normalizeOptions(host, options) { const name = (0, devkit_1.names)(options.name).fileName; const projectDirectory = options.directory ? `${(0, devkit_1.names)(options.directory).fileName}/${name}` : name; const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-'); const fileName = projectName; const { libsDir, npmScope } = (0, devkit_1.getWorkspaceLayout)(host); const projectRoot = (0, devkit_1.joinPathFragments)(libsDir, projectDirectory); const parsedTags = options.tags ? options.tags.split(',').map((s) => s.trim()) : []; const importPath = options.importPath || (0, path_1.getImportPath)(npmScope, projectDirectory); const normalized = Object.assign(Object.assign({}, options), { fileName, routePath: `/${name}`, name: projectName, projectRoot, projectDirectory, parsedTags, importPath }); return normalized; } exports.default = libraryGenerator; exports.librarySchematic = (0, devkit_1.convertNxGenerator)(libraryGenerator); //# sourceMappingURL=generator.js.map