@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
102 lines • 6.75 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isErrorResult = exports.isSuccessResult = exports.executeCmd = exports.exitIfAnyMissingPath = exports.exitIfPathExists = exports.exitIfNonExistPath = exports.resolvePath = void 0;
var child_process_1 = require("child_process");
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
var console_1 = require("./console");
var logging_1 = require("./logging");
/**
* If the input path is a relative path, it resolves the path from
* current working directory.
*
* @returns an absolute path
*/
function resolvePath(rootPath) {
if (path_1.default.isAbsolute(rootPath)) {
return rootPath;
}
return path_1.default.resolve(process.cwd(), rootPath);
}
exports.resolvePath = resolvePath;
/**
* The function is designated to valid if a path from user input exists.
* Note: this function only displays messages in console.
* It does not log any info into file.
*
* @param filePath a relative path will be resolved relative to the current working directory
* @param errorMessage error message to display before exit
*/
function exitIfNonExistPath(filePath, errorMessage) {
if (!fs_1.default.existsSync(filePath)) {
(0, console_1.consoleError)(errorMessage);
process.exit(1);
}
}
exports.exitIfNonExistPath = exitIfNonExistPath;
function exitIfPathExists(filePath, errorMessage) {
if (fs_1.default.existsSync(filePath)) {
(0, console_1.consoleError)(errorMessage);
process.exit(1);
}
}
exports.exitIfPathExists = exitIfPathExists;
function exitIfAnyMissingPath(paths, errorMessage) {
var missingPaths = paths.filter(function (filePath) { return !fs_1.default.existsSync(filePath); });
if (missingPaths.length > 0) {
(0, console_1.consoleError)("".concat(errorMessage, ". Missing paths: ").concat(missingPaths));
process.exit(1);
}
}
exports.exitIfAnyMissingPath = exitIfAnyMissingPath;
/**
* Invoking a global command with child_process.spawnSync
*/
function executeCmd(cmd, params, options) {
if (process.platform === 'win32') {
options = __assign(__assign({}, options), { shell: true });
}
var paramsStr = params ? params.join(' ') : '';
var optionsStr = options ? JSON.stringify(options) : '';
logging_1.logger.debug("Invoking spawnSync: ".concat(cmd, " ").concat(paramsStr, " ").concat(optionsStr));
var _a = (0, child_process_1.spawnSync)(cmd, params, options), status = _a.status, error = _a.error, stderr = _a.stderr, stdout = _a.stdout;
if (status !== 0 || error !== undefined) {
return {
state: 'error',
error: {
status: status,
error: error,
stderr: String(stderr),
stdout: String(stdout),
},
};
}
return {
state: 'success',
data: String(stdout),
};
}
exports.executeCmd = executeCmd;
function isSuccessResult(result) {
return result.state === 'success';
}
exports.isSuccessResult = isSuccessResult;
function isErrorResult(result) {
return result.state === 'error';
}
exports.isErrorResult = isErrorResult;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGkvdGFjby1jb21tYW5kcy91dGlscy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTJEO0FBQzNELDBDQUFtQjtBQUNuQiw4Q0FBdUI7QUFFdkIscUNBQXdDO0FBQ3hDLHFDQUFrQztBQVFsQzs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxRQUFnQjtJQUMxQyxJQUFJLGNBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDN0IsT0FBTyxRQUFRLENBQUE7S0FDaEI7SUFFRCxPQUFPLGNBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFORCxrQ0FNQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFlBQW9CO0lBQ3ZFLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzVCLElBQUEsc0JBQVksRUFBQyxZQUFZLENBQUMsQ0FBQTtRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0FBQ0gsQ0FBQztBQUxELGdEQUtDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxZQUFvQjtJQUNyRSxJQUFJLFlBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDM0IsSUFBQSxzQkFBWSxFQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7QUFDSCxDQUFDO0FBTEQsNENBS0M7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFlLEVBQUUsWUFBb0I7SUFDeEUsSUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLFFBQVEsSUFBSyxPQUFBLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBeEIsQ0FBd0IsQ0FBQyxDQUFBO0lBQ3pFLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDM0IsSUFBQSxzQkFBWSxFQUFDLFVBQUcsWUFBWSw4QkFBb0IsWUFBWSxDQUFFLENBQUMsQ0FBQTtRQUMvRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0FBQ0gsQ0FBQztBQU5ELG9EQU1DO0FBU0Q7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQ3hCLEdBQVcsRUFDWCxNQUEwQixFQUMxQixPQUEwQjtJQUUxQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1FBQ2hDLE9BQU8seUJBQVEsT0FBTyxLQUFFLEtBQUssRUFBRSxJQUFJLEdBQUUsQ0FBQTtLQUN0QztJQUNELElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ2hELElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3pELGdCQUFNLENBQUMsS0FBSyxDQUFDLDhCQUF1QixHQUFHLGNBQUksU0FBUyxjQUFJLFVBQVUsQ0FBRSxDQUFDLENBQUE7SUFFL0QsSUFBQSxLQUFvQyxJQUFBLHlCQUFTLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBakUsTUFBTSxZQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUUsTUFBTSxZQUFBLEVBQUUsTUFBTSxZQUFvQyxDQUFBO0lBRXpFLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQ3ZDLE9BQU87WUFDTCxLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRTtnQkFDTCxNQUFNLFFBQUE7Z0JBQ04sS0FBSyxPQUFBO2dCQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN0QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUN2QjtTQUNGLENBQUE7S0FDRjtJQUVELE9BQU87UUFDTCxLQUFLLEVBQUUsU0FBUztRQUNoQixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNyQixDQUFBO0FBQ0gsQ0FBQztBQTlCRCxnQ0E4QkM7QUFjRCxTQUFnQixlQUFlLENBQUksTUFBMEI7SUFDM0QsT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQTtBQUNuQyxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixhQUFhLENBQUksTUFBMEI7SUFDekQsT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQTtBQUNqQyxDQUFDO0FBRkQsc0NBRUMifQ==