create-nx-workspace
Version:
72 lines (71 loc) • 2.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.connectToNxCloudForTemplate = connectToNxCloudForTemplate;
exports.readNxCloudToken = readNxCloudToken;
exports.createNxCloudOnboardingUrl = createNxCloudOnboardingUrl;
exports.getNxCloudInfo = getNxCloudInfo;
exports.getSkippedNxCloudInfo = getSkippedNxCloudInfo;
const output_1 = require("../output");
const messages_1 = require("./messages");
const ab_testing_1 = require("./ab-testing");
const ora = require("ora");
async function connectToNxCloudForTemplate(directory, installationSource, useGitHub) {
// nx-ignore-next-line
const { connectToNxCloud } = require(require.resolve('nx/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud', {
paths: [directory],
}
// nx-ignore-next-line
));
// nx-ignore-next-line
const { FsTree, flushChanges } = require(require.resolve('nx/src/generators/tree', {
paths: [directory],
// nx-ignore-next-line
}));
const tree = new FsTree(directory, false);
const result = await connectToNxCloud(tree, {
installationSource,
directory: '',
github: useGitHub,
});
// Flush the tree changes to disk
flushChanges(directory, tree.listChanges());
return result;
}
function readNxCloudToken(directory) {
const nxCloudSpinner = ora(`Checking Nx Cloud setup`).start();
// nx-ignore-next-line
const { getCloudOptions } = require(require.resolve('nx/src/nx-cloud/utilities/get-cloud-options', {
paths: [directory],
}
// nx-ignore-next-line
));
const { accessToken, nxCloudId } = getCloudOptions(directory);
nxCloudSpinner.succeed('Nx Cloud has been set up successfully');
return accessToken || nxCloudId;
}
async function createNxCloudOnboardingUrl(nxCloud, token, directory, useGitHub) {
// nx-ignore-next-line
const { createNxCloudOnboardingURL } = require(require.resolve('nx/src/nx-cloud/utilities/url-shorten', {
paths: [directory],
}
// nx-ignore-next-line
));
// Source determines the onboarding flow type
const source = nxCloud === 'yes'
? 'create-nx-workspace-success-cache-setup'
: 'create-nx-workspace-success-ci-setup';
const meta = ab_testing_1.messages.codeOfSelectedPromptMessage('setupNxCloudV2');
return createNxCloudOnboardingURL(source, token, meta, false, useGitHub ??
(nxCloud === 'yes' || nxCloud === 'github' || nxCloud === 'circleci'), directory);
}
async function getNxCloudInfo(connectCloudUrl, pushedToVcs, completionMessageKey) {
const out = new output_1.CLIOutput(false);
const message = (0, messages_1.getCompletionMessage)(completionMessageKey, connectCloudUrl, pushedToVcs);
out.success(message);
return out.getOutput();
}
function getSkippedNxCloudInfo() {
const out = new output_1.CLIOutput(false);
out.success((0, messages_1.getSkippedCloudMessage)());
return out.getOutput();
}