@anatine/esbuildnx
Version:
Esbuild plugin for Nx
57 lines • 2.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupGenerator = void 0;
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
const dependencies_1 = require("../../dependencies");
function setupGenerator(host, options) {
var _a, _b, _c;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.name); // Probably needs a try/catch
const { currentBuildCommand = 'build' } = options;
const currentBuild = (_a = projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.targets) === null || _a === void 0 ? void 0 : _a[currentBuildCommand];
if (!currentBuild ||
(!((_b = currentBuild.options) === null || _b === void 0 ? void 0 : _b.tsConfig) && !((_c = currentBuild.options) === null || _c === void 0 ? void 0 : _c.tsconfig))) {
throw new Error(`There is no existing build target or this is not not a @nrwl/node project`);
}
if (options.overwrite) {
projectConfig.targets[currentBuildCommand].executor =
'@anatine/esbuildnx:build';
}
else {
projectConfig.targets.esbuild = Object.assign(Object.assign({}, currentBuild), { executor: '@anatine/esbuildnx:build' });
}
const esbuildConfig = {
platform: 'node',
external: !options.defaultNestExternals
? []
: [
'@nestjs/microservices',
'class-transformer',
'cache-manager',
'@nestjs/websockets/socket-module',
'class-validator',
'class-transformer',
'@nestjs/microservices/microservices-module',
'@nestjs/microservices',
],
};
try {
(0, devkit_1.readJson)(host, `${projectConfig.root}/esbuild.json`);
(0, devkit_1.updateJson)(host, `${projectConfig.root}/esbuild.json`, (value) => {
value.platform = 'node';
value.external = [...value.external, ...esbuildConfig.external];
return value;
});
}
catch (err) {
(0, devkit_1.writeJson)(host, `${projectConfig.root}/esbuild.json`, esbuildConfig);
}
(0, devkit_1.addDependenciesToPackageJson)(host, dependencies_1.dependencies, dependencies_1.devDependencies);
(0, devkit_1.updateProjectConfiguration)(host, options.name, projectConfig);
yield (0, devkit_1.formatFiles)(host);
});
}
exports.setupGenerator = setupGenerator;
exports.default = setupGenerator;
//# sourceMappingURL=setup.js.map