@nrwl/workspace
Version:
147 lines • 6.17 kB
JavaScript
"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