@nx-kz/go
Version:
This is Nx plugin to use Go in a Nx workspace.
51 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
function normalizeOptions(tree, options) {
const name = (0, devkit_1.names)(options.name).fileName;
const projectDirectory = options.directory
? `${(0, devkit_1.names)(options.directory).fileName}/${name}`
: name;
const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
const projectRoot = options.parent
? `${options.parent}/${projectDirectory}`
: `${(0, devkit_1.getWorkspaceLayout)(tree).libsDir}/${projectDirectory}`;
const parsedTags = options.tags
? options.tags.split(',').map((s) => s.trim())
: [];
return Object.assign(Object.assign({}, options), { projectName,
projectRoot,
projectDirectory,
parsedTags });
}
function default_1(tree, options) {
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
const normalizedOptions = normalizeOptions(tree, options);
(0, devkit_1.addProjectConfiguration)(tree, normalizedOptions.projectName, {
root: normalizedOptions.projectRoot,
projectType: 'library',
sourceRoot: normalizedOptions.projectRoot,
targets: {
lint: {
executor: '@nrwl/workspace:run-commands',
options: {
command: `go vet ./...`,
cwd: normalizedOptions.projectRoot
}
},
test: {
executor: '@nrwl/workspace:run-commands',
options: {
command: `go test -p 1 ./...`,
cwd: normalizedOptions.projectRoot
}
},
},
tags: normalizedOptions.parsedTags,
});
yield (0, devkit_1.formatFiles)(tree);
});
}
exports.default = default_1;
//# sourceMappingURL=generator.js.map