@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
76 lines • 5.94 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidTacoFile = exports.isOldDependencySetup = exports.getConnectorHandlersPath = exports.getConnectorAppPath = exports.getConnectorJsonPath = exports.getConnectorFolderPath = exports.isTacoRootPath = exports.outputLocationErrorAndExit = exports.exitIfNotTacoRoot = exports.findTacoRootPath = exports.sourceTypes = void 0;
var fs_1 = __importDefault(require("fs"));
var fs_extra_1 = __importDefault(require("fs-extra"));
var path_1 = __importDefault(require("path"));
var console_1 = require("./console");
exports.sourceTypes = ['app', 'handlers'];
function findTacoRootPath() {
var currentPath = process.cwd();
var possiblePaths = [
currentPath,
path_1.default.dirname(currentPath), // parent path
];
var tacoRootPath = possiblePaths.find(function (possiblePath) { return isTacoRootPath(possiblePath); });
if (tacoRootPath === undefined) {
outputLocationErrorAndExit(currentPath);
}
return tacoRootPath;
}
exports.findTacoRootPath = findTacoRootPath;
/**
* Exit with code 1 from program if the given path is not a connector root path.
*/
function exitIfNotTacoRoot(rootPath) {
if (!isTacoRootPath(rootPath)) {
outputLocationErrorAndExit(rootPath);
}
}
exports.exitIfNotTacoRoot = exitIfNotTacoRoot;
function outputLocationErrorAndExit(rootPath) {
(0, console_1.consoleError)("Cannot locate taco connector.json file at current path, are you in the root directory of a taco connector?\nCurrent path: ".concat(rootPath));
return process.exit(1);
}
exports.outputLocationErrorAndExit = outputLocationErrorAndExit;
function isTacoRootPath(path) {
return fs_1.default.existsSync(getConnectorJsonPath(path));
}
exports.isTacoRootPath = isTacoRootPath;
function getConnectorFolderPath(tacoRootPath) {
return path_1.default.join(tacoRootPath, 'connector');
}
exports.getConnectorFolderPath = getConnectorFolderPath;
function getConnectorJsonPath(tacoRootPath) {
return path_1.default.join(tacoRootPath, 'connector', 'connector.json');
}
exports.getConnectorJsonPath = getConnectorJsonPath;
function getConnectorAppPath(tacoRootPath) {
return path_1.default.join(tacoRootPath, 'connector', 'app');
}
exports.getConnectorAppPath = getConnectorAppPath;
function getConnectorHandlersPath(tacoRootPath) {
return path_1.default.join(tacoRootPath, 'connector', 'handlers');
}
exports.getConnectorHandlersPath = getConnectorHandlersPath;
/**
* Check if a taco project is using the old npm link setup.
* Remove this when all existing projects define taco-toolkit as npm dependency.
*/
function isOldDependencySetup(tacoRootPath) {
var packageJsonPath = path_1.default.join(tacoRootPath, 'connector', 'package.json');
var packageJson = fs_extra_1.default.readJSONSync(packageJsonPath);
if (packageJson.dependencies && '@tableau/taco-toolkit' in packageJson.dependencies) {
return false;
}
return true;
}
exports.isOldDependencySetup = isOldDependencySetup;
function isValidTacoFile(tacoFilePath) {
return path_1.default.extname(tacoFilePath).toLowerCase() === '.taco';
}
exports.isValidTacoFile = isValidTacoFile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaS90YWNvLWNvbW1hbmRzL3V0aWxzL2Nvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwQ0FBbUI7QUFDbkIsc0RBQTBCO0FBQzFCLDhDQUF1QjtBQUN2QixxQ0FBd0M7QUFFM0IsUUFBQSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFVLENBQUE7QUFJdkQsU0FBZ0IsZ0JBQWdCO0lBQzlCLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUVqQyxJQUFNLGFBQWEsR0FBRztRQUNwQixXQUFXO1FBQ1gsY0FBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxjQUFjO0tBQzFDLENBQUE7SUFFRCxJQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQUMsWUFBWSxJQUFLLE9BQUEsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUE1QixDQUE0QixDQUFDLENBQUE7SUFDdkYsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1FBQzlCLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0tBQ3hDO0lBRUQsT0FBTyxZQUFZLENBQUE7QUFDckIsQ0FBQztBQWRELDRDQWNDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxRQUFnQjtJQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzdCLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3JDO0FBQ0gsQ0FBQztBQUpELDhDQUlDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsUUFBZ0I7SUFDekQsSUFBQSxzQkFBWSxFQUNWLG9JQUE2SCxRQUFRLENBQUUsQ0FDeEksQ0FBQTtJQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN4QixDQUFDO0FBTEQsZ0VBS0M7QUFFRCxTQUFnQixjQUFjLENBQUMsSUFBWTtJQUN6QyxPQUFPLFlBQUUsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUNsRCxDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxZQUFvQjtJQUN6RCxPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0FBQzdDLENBQUM7QUFGRCx3REFFQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLFlBQW9CO0lBQ3ZELE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUE7QUFDL0QsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsWUFBb0I7SUFDdEQsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDcEQsQ0FBQztBQUZELGtEQUVDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsWUFBb0I7SUFDM0QsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUZELDREQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsSUFBTSxlQUFlLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQzVFLElBQU0sV0FBVyxHQUFHLGtCQUFHLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRXJELElBQUksV0FBVyxDQUFDLFlBQVksSUFBSSx1QkFBdUIsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFO1FBQ25GLE9BQU8sS0FBSyxDQUFBO0tBQ2I7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFURCxvREFTQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxZQUFvQjtJQUNsRCxPQUFPLGNBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFBO0FBQzdELENBQUM7QUFGRCwwQ0FFQyJ9