UNPKG

@nrwl/workspace

Version:

The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.

147 lines 6.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.presetGenerator = void 0; const tslib_1 = require("tslib"); const devkit_1 = require("@nrwl/devkit"); const presets_1 = require("../utils/presets"); function presetGenerator(tree, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { options = normalizeOptions(options); yield createPreset(tree, options); yield (0, devkit_1.formatFiles)(tree); return () => { (0, devkit_1.installPackagesTask)(tree); }; }); } exports.presetGenerator = presetGenerator; exports.default = presetGenerator; function createPreset(tree, options) { var _a, _b; return tslib_1.__awaiter(this, void 0, void 0, function* () { if (options.preset === presets_1.Preset.Empty || options.preset === presets_1.Preset.Apps) { return; } else if (options.preset === presets_1.Preset.AngularMonorepo) { const { applicationGenerator: angularApplicationGenerator, } = require('@nrwl' + '/angular/generators'); yield angularApplicationGenerator(tree, { name: options.name, style: options.style, linter: options.linter, standalone: options.standaloneApi, routing: options.routing, }); } else if (options.preset === presets_1.Preset.AngularStandalone) { const { applicationGenerator: angularApplicationGenerator, } = require('@nrwl' + '/angular/generators'); yield angularApplicationGenerator(tree, { name: options.name, style: options.style, linter: options.linter, routing: options.routing, rootProject: true, standalone: options.standaloneApi, }); } else if (options.preset === presets_1.Preset.ReactMonorepo) { const { applicationGenerator: reactApplicationGenerator, } = require('@nrwl' + '/react'); yield reactApplicationGenerator(tree, { name: options.name, style: options.style, linter: options.linter, bundler: (_a = options.bundler) !== null && _a !== void 0 ? _a : 'webpack', }); } else if (options.preset === presets_1.Preset.ReactStandalone) { const { applicationGenerator: reactApplicationGenerator, } = require('@nrwl' + '/react'); yield reactApplicationGenerator(tree, { name: options.name, style: options.style, linter: options.linter, rootProject: true, bundler: (_b = options.bundler) !== null && _b !== void 0 ? _b : 'vite', e2eTestRunner: 'cypress', unitTestRunner: options.bundler === 'vite' ? 'vitest' : 'jest', }); } else if (options.preset === presets_1.Preset.NextJs) { const { applicationGenerator: nextApplicationGenerator } = require('@nrwl' + '/next'); yield nextApplicationGenerator(tree, { name: options.name, style: options.style, linter: options.linter, }); } else if (options.preset === presets_1.Preset.WebComponents) { const { applicationGenerator: webApplicationGenerator } = require('@nrwl' + '/web'); yield webApplicationGenerator(tree, { name: options.name, style: options.style, linter: options.linter, bundler: 'vite', }); } else if (options.preset === presets_1.Preset.Nest) { const { applicationGenerator: nestApplicationGenerator } = require('@nrwl' + '/nest'); yield nestApplicationGenerator(tree, { name: options.name, linter: options.linter, }); } else if (options.preset === presets_1.Preset.Express) { const { applicationGenerator: expressApplicationGenerator, } = require('@nrwl' + '/express'); yield expressApplicationGenerator(tree, { name: options.name, linter: options.linter, }); } else if (options.preset === presets_1.Preset.ReactNative) { const { reactNativeApplicationGenerator } = require('@nrwl' + '/react-native'); yield reactNativeApplicationGenerator(tree, { name: options.name, linter: options.linter, e2eTestRunner: 'detox', }); } else if (options.preset === presets_1.Preset.Expo) { const { expoApplicationGenerator } = require('@nrwl' + '/expo'); yield expoApplicationGenerator(tree, { name: options.name, linter: options.linter, e2eTestRunner: 'detox', }); } else if (options.preset === presets_1.Preset.TS) { const c = (0, devkit_1.readNxJson)(tree); c.workspaceLayout = { appsDir: 'packages', libsDir: 'packages', }; (0, devkit_1.updateNxJson)(tree, c); } else if (options.preset === presets_1.Preset.NodeServer) { const { applicationGenerator: nodeApplicationGenerator } = require('@nrwl' + '/node'); yield nodeApplicationGenerator(tree, { name: options.name, linter: options.linter, standaloneConfig: options.standaloneConfig, framework: options.framework, docker: options.docker, rootProject: true, }); } else { throw new Error(`Invalid preset ${options.preset}`); } }); } function normalizeOptions(options) { options.name = (0, devkit_1.names)(options.name).fileName; return options; } //# sourceMappingURL=preset.js.map