UNPKG

@tableau/taco-toolkit

Version:
102 lines 6.75 kB
"use strict"; 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==