@naxodev/gonx
Version:
Modern Nx plugin to use Go in a Nx workspace
38 lines • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTargetsByProjectType = getTargetsByProjectType;
const test_target_1 = require("./test-target");
const tidy_1 = require("./tidy");
const lint_1 = require("./lint");
const build_1 = require("./build");
const serve_1 = require("./serve");
const generate_1 = require("./generate");
const release_publish_1 = require("./release-publish");
const has_main_package_1 = require("../has-main-package");
function getTargetsByProjectType(projectRoot, options) {
// Detect if this is an application or a library
const isApplication = (0, has_main_package_1.hasMainPackage)(projectRoot);
// For better UX, set default target names if not provided
const buildTargetName = options.buildTargetName || 'build';
const testTargetName = options.testTargetName || 'test';
const serveTargetName = options.runTargetName || 'serve';
const tidyTargetName = options.tidyTargetName || 'tidy';
const lintTargetName = options.lintTargetName || 'lint';
const generateTargetName = options.generateTargetName || 'generate';
const releasePublishTargetName = options.releasePublishTargetName || 'nx-release-publish';
// Initialize targets object
const targets = {};
// Common targets - available for both apps and libraries
targets[generateTargetName] = (0, generate_1.generate)();
targets[testTargetName] = (0, test_target_1.test)();
targets[tidyTargetName] = (0, tidy_1.tidy)();
targets[lintTargetName] = (0, lint_1.lint)();
targets[releasePublishTargetName] = (0, release_publish_1.releasePublish)(projectRoot);
// Build and run targets - only for applications
if (isApplication) {
targets[buildTargetName] = (0, build_1.build)();
targets[serveTargetName] = (0, serve_1.serve)();
}
return targets;
}
//# sourceMappingURL=get-targets-by-project-type.js.map