@nx-plugins/vite
Version:
The Nx Plugin for Vite that contains executors, generators, and utilities for managing Vite applications and libraries within an Nx workspace.
59 lines • 2.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filePathPrefix = exports.viteProjectSchematic = void 0;
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
const generator_1 = require("../init/generator");
const create_project_1 = require("./lib/create-project");
const create_files_1 = require("./lib/create-files");
const add_e2e_runner_1 = require("./lib/add-e2e-runner");
const linter_1 = require("@nrwl/linter");
const add_linter_1 = require("./lib/add-linter");
const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
const add_unit_runner_1 = require("./lib/add-unit-runner");
const schemaDefaults = {
standaloneConfig: true,
skipFormat: false,
skipPackageJson: false,
js: false,
e2eTestRunner: 'playwright-test',
linter: linter_1.Linter.EsLint,
setParserOptionsProject: false,
unitTestRunner: 'vitest',
port: 5173,
};
function normalizeOptions(tree, options) {
const { appsDir } = (0, devkit_1.getWorkspaceLayout)(tree);
const projectName = filePathPrefix(options.directory ? `${options.directory}-${options.name}` : options.name);
const projectRoot = options.directory
? (0, devkit_1.joinPathFragments)(appsDir, (0, devkit_1.names)(options.directory).fileName, options.name)
: (0, devkit_1.joinPathFragments)(appsDir, options.name);
return Object.assign(Object.assign(Object.assign({}, schemaDefaults), options), { projectName,
projectRoot });
}
function viteProjectGenerator(tree, schema) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const options = normalizeOptions(tree, schema);
const installTask = yield (0, generator_1.default)(tree, {
skipPackageJson: options.skipPackageJson,
js: options.js,
preset: 'vanilla',
});
(0, create_project_1.createProject)(tree, options);
(0, create_files_1.createFiles)(tree, options);
const addE2e = yield (0, add_e2e_runner_1.addE2ERunner)(tree, options);
const addLint = yield (0, add_linter_1.addLinter)(tree, options);
const addTest = yield (0, add_unit_runner_1.addUnitTestRunner)(tree, options);
if (!schema.skipFormat) {
yield (0, devkit_1.formatFiles)(tree);
}
return (0, run_tasks_in_serial_1.runTasksInSerial)(installTask, addE2e, addLint, addTest);
});
}
exports.default = viteProjectGenerator;
exports.viteProjectSchematic = (0, devkit_1.convertNxGenerator)(viteProjectGenerator);
function filePathPrefix(directory) {
return `${(0, devkit_1.names)(directory).fileName}`.replace(new RegExp('/', 'g'), '-');
}
exports.filePathPrefix = filePathPrefix;
//# sourceMappingURL=generator.js.map