@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
54 lines • 5.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.installTacoToolkit = exports.installDependencies = void 0;
var command_1 = require("../utils/command");
var error_codes_1 = require("../../../shared/errors/error-codes");
var error_source_1 = require("../../../shared/errors/error-source");
var status_code_1 = require("../../../shared/errors/status-code");
var connector_1 = require("../utils/connector");
var logging_1 = require("../utils/logging");
var console_1 = require("../utils/console");
var constants_1 = require("../utils/constants");
var npm_command_1 = require("../utils/npm-command");
function installDependencies(tacoRootPath, state) {
var spinner = state.spinner;
var connectorFolderPath = (0, connector_1.getConnectorFolderPath)(tacoRootPath);
spinner.start('Installing dependency packages. It may take a few minutes...');
var result = (0, npm_command_1.executeNpmCmd)(['install', '--loglevel=error', '--no-fund'], {
cwd: connectorFolderPath,
});
if ((0, command_1.isErrorResult)(result)) {
var _a = result.error, stderr = _a.stderr, stdout = _a.stdout, error = _a.error;
logging_1.logger.debug("Execution failure: failed to install npm dependencies.\nstdout: \"".concat(stdout, "\"\nstderr: \"").concat(stderr, "\""));
spinner.fail('Failed to install npm dependencies');
(0, logging_1.logFatalError)({
statusCode: status_code_1.StatusCode.Cancelled,
errorSource: error_source_1.ErrorSources.Client,
errorCode: error_codes_1.ErrorCodes.WQX8WEDW,
message: "Failed to install npm dependencies.\nMore information: ".concat(stderr),
error: error,
});
process.exit(constants_1.TACO_COMMAND_ERROR_EXIT_CODE);
}
spinner.success('Successfully installed npm dependencies!');
}
exports.installDependencies = installDependencies;
// TODO: taco project should specify taco-toolkit as dependency.
// Once it's done, we should remove this and add a npm package script to create the link for dev.
function installTacoToolkit(tacoRootPath) {
var connectorFolderPath = (0, connector_1.getConnectorFolderPath)(tacoRootPath);
// TODO: warn here for the projects that don't declare taco-toolkit in package.json
// Currently, we have too many existing useages. Let's add it after some cleanup.
// As a fallback, link to the global taco-toolkit, if the dependency is not declared in package.json
var result = (0, npm_command_1.executeNpmCmd)(['link', '@tableau/taco-toolkit', '--loglevel=error'], {
cwd: connectorFolderPath,
});
if ((0, command_1.isErrorResult)(result)) {
var _a = result.error, stderr = _a.stderr, stdout = _a.stdout, error = _a.error;
logging_1.logger.debug("Execution failure: failed to link taco-toolkit.\nstdout: \"".concat(stdout, "\"\nstderr: \"").concat(stderr, "\""));
(0, console_1.consoleError)('Failed to link taco-toolkit', error);
process.exit(constants_1.TACO_COMMAND_ERROR_EXIT_CODE);
}
}
exports.installTacoToolkit = installTacoToolkit;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGkvdGFjby1jb21tYW5kcy9idWlsZC9pbnN0YWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFnRTtBQUNoRSxrRUFBK0Q7QUFDL0Qsb0VBQWtFO0FBQ2xFLGtFQUErRDtBQUMvRCxnREFBMkQ7QUFDM0QsNENBQXdEO0FBQ3hELDRDQUErQztBQUMvQyxnREFBaUU7QUFDakUsb0RBQW9EO0FBRXBELFNBQWdCLG1CQUFtQixDQUFDLFlBQW9CLEVBQUUsS0FBcUI7SUFDckUsSUFBQSxPQUFPLEdBQUssS0FBSyxRQUFWLENBQVU7SUFDekIsSUFBTSxtQkFBbUIsR0FBRyxJQUFBLGtDQUFzQixFQUFDLFlBQVksQ0FBQyxDQUFBO0lBRWhFLE9BQU8sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQTtJQUM3RSxJQUFNLE1BQU0sR0FBRyxJQUFBLDJCQUFhLEVBQUMsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLEVBQUU7UUFDekUsR0FBRyxFQUFFLG1CQUFtQjtLQUN6QixDQUFDLENBQUE7SUFFRixJQUFJLElBQUEsdUJBQWEsRUFBQyxNQUFNLENBQUMsRUFBRTtRQUNuQixJQUFBLEtBQTRCLE1BQU0sQ0FBQyxLQUFLLEVBQXRDLE1BQU0sWUFBQSxFQUFFLE1BQU0sWUFBQSxFQUFFLEtBQUssV0FBaUIsQ0FBQTtRQUU5QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyw0RUFBb0UsTUFBTSwyQkFBZSxNQUFNLE9BQUcsQ0FBQyxDQUFBO1FBRWhILE9BQU8sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUVsRCxJQUFBLHVCQUFhLEVBQUM7WUFDWixVQUFVLEVBQUUsd0JBQVUsQ0FBQyxTQUFTO1lBQ2hDLFdBQVcsRUFBRSwyQkFBWSxDQUFDLE1BQU07WUFDaEMsU0FBUyxFQUFFLHdCQUFVLENBQUMsUUFBUTtZQUM5QixPQUFPLEVBQUUsaUVBQTBELE1BQU0sQ0FBRTtZQUMzRSxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQTRCLENBQUMsQ0FBQTtLQUMzQztJQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUM3RCxDQUFDO0FBM0JELGtEQTJCQztBQUVELGdFQUFnRTtBQUNoRSxpR0FBaUc7QUFDakcsU0FBZ0Isa0JBQWtCLENBQUMsWUFBb0I7SUFDckQsSUFBTSxtQkFBbUIsR0FBRyxJQUFBLGtDQUFzQixFQUFDLFlBQVksQ0FBQyxDQUFBO0lBRWhFLG1GQUFtRjtJQUNuRixpRkFBaUY7SUFFakYsb0dBQW9HO0lBQ3BHLElBQU0sTUFBTSxHQUFHLElBQUEsMkJBQWEsRUFBQyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFO1FBQ2xGLEdBQUcsRUFBRSxtQkFBbUI7S0FDekIsQ0FBQyxDQUFBO0lBRUYsSUFBSSxJQUFBLHVCQUFhLEVBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbkIsSUFBQSxLQUE0QixNQUFNLENBQUMsS0FBSyxFQUF0QyxNQUFNLFlBQUEsRUFBRSxNQUFNLFlBQUEsRUFBRSxLQUFLLFdBQWlCLENBQUE7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMscUVBQTZELE1BQU0sMkJBQWUsTUFBTSxPQUFHLENBQUMsQ0FBQTtRQUN6RyxJQUFBLHNCQUFZLEVBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyx3Q0FBNEIsQ0FBQyxDQUFBO0tBQzNDO0FBQ0gsQ0FBQztBQWpCRCxnREFpQkMifQ==