UNPKG

@tableau/taco-toolkit

Version:
75 lines 6.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateEntryFileNames = exports.postProcessHandlers = exports.preProcessHandlers = void 0; var change_case_1 = require("change-case"); var fs_1 = __importDefault(require("fs")); var fs_extra_1 = __importDefault(require("fs-extra")); var path_1 = __importDefault(require("path")); 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("../../taco-commands/utils/connector"); var parcel_error_1 = require("./parcel-error"); /* This function will remove all import statements from a handler and make a copy in the tmp folder */ function preProcessHandlers(tacoRootPath) { var tmpPath = getHandlersTmpPath(tacoRootPath); if (!fs_1.default.existsSync(tmpPath)) { fs_1.default.mkdirSync(tmpPath); } var handlersPath = (0, connector_1.getConnectorHandlersPath)(tacoRootPath); var entryFiles = []; fs_1.default.readdirSync(handlersPath, { withFileTypes: true }).forEach(function (dirent) { if (dirent.isFile()) { // TODO: this only handles the files on the root level. We should revamp this with a better solution. var filename = dirent.name; var content = fs_1.default.readFileSync(path_1.default.join(handlersPath, filename)); var className = (0, change_case_1.pascalCase)(path_1.default.parse(filename).name); var processedContent = content.toString().replaceAll(/^\s*import[\s\S]*? from ['"]@tableau\/taco-toolkit\/handlers['"]\s*;*$/gm, '') + // const mapping is required below since parcel tries to obfuscate the name of the class with a GUID "globalRefs[\"".concat(className, "\"] = ").concat(className); var distPath = path_1.default.join(tmpPath, filename); fs_1.default.writeFileSync(distPath, processedContent); entryFiles.push(distPath); } else { // copy directories to tmp for compilation var dirname = dirent.name; var srcPath = path_1.default.join(handlersPath, dirname); var distPath = path_1.default.join(tmpPath, dirname); fs_extra_1.default.copySync(srcPath, distPath, { overwrite: true }); } }); return entryFiles; } exports.preProcessHandlers = preProcessHandlers; function postProcessHandlers(tacoRootPath) { var tmpPath = getHandlersTmpPath(tacoRootPath); fs_1.default.rmSync(tmpPath, { recursive: true, force: true, }); } exports.postProcessHandlers = postProcessHandlers; function validateEntryFileNames(entries) { var duplicates = (0, parcel_error_1.findBundleNameDuplicates)(entries); if (duplicates.length > 0) { return { statusCode: status_code_1.StatusCode.Cancelled, errorSource: error_source_1.ErrorSources.Client, errorCode: error_codes_1.ErrorCodes.INEO9MTU, message: "handlers entry file names must be unique regardless of extension: ".concat(duplicates .map(function (names) { return "[".concat(names, "]"); }) .join(', ')), }; } } exports.validateEntryFileNames = validateEntryFileNames; function getHandlersTmpPath(tacoRootPath) { return path_1.default.join(tacoRootPath, 'connector', 'tmp'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLWhhbmRsZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaS90YWNvLXNjcmlwdHMvYnVpbGQvY29ubmVjdG9yLWhhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUF3QztBQUN4QywwQ0FBbUI7QUFDbkIsc0RBQTBCO0FBQzFCLDhDQUF1QjtBQUV2QixrRUFBK0Q7QUFDL0Qsb0VBQWtFO0FBQ2xFLGtFQUErRDtBQUMvRCxpRUFBOEU7QUFFOUUsK0NBQXlEO0FBRXpEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsWUFBb0I7SUFDckQsSUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDaEQsSUFBSSxDQUFDLFlBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsWUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUN0QjtJQUVELElBQU0sWUFBWSxHQUFHLElBQUEsb0NBQXdCLEVBQUMsWUFBWSxDQUFDLENBQUE7SUFDM0QsSUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFBO0lBRS9CLFlBQUUsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsTUFBTTtRQUNuRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuQixxR0FBcUc7WUFDckcsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtZQUM1QixJQUFNLE9BQU8sR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7WUFDbEUsSUFBTSxTQUFTLEdBQUcsSUFBQSx3QkFBVSxFQUFDLGNBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7WUFFdkQsSUFBTSxnQkFBZ0IsR0FDcEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQywwRUFBMEUsRUFBRSxFQUFFLENBQUM7Z0JBQzdHLG9HQUFvRztnQkFDcEcsdUJBQWUsU0FBUyxtQkFBUSxTQUFTLENBQUUsQ0FBQTtZQUU3QyxJQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM3QyxZQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO1lBQzVDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDMUI7YUFBTTtZQUNMLDBDQUEwQztZQUMxQyxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO1lBQzNCLElBQU0sT0FBTyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2hELElBQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzVDLGtCQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtTQUNyRDtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQztBQWxDRCxnREFrQ0M7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxZQUFvQjtJQUN0RCxJQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNoRCxZQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNqQixTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQU5ELGtEQU1DO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsT0FBaUI7SUFDdEQsSUFBTSxVQUFVLEdBQUcsSUFBQSx1Q0FBd0IsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUNwRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCLE9BQU87WUFDTCxVQUFVLEVBQUUsd0JBQVUsQ0FBQyxTQUFTO1lBQ2hDLFdBQVcsRUFBRSwyQkFBWSxDQUFDLE1BQU07WUFDaEMsU0FBUyxFQUFFLHdCQUFVLENBQUMsUUFBUTtZQUM5QixPQUFPLEVBQUUsNEVBQXFFLFVBQVU7aUJBQ3JGLEdBQUcsQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLFdBQUksS0FBSyxNQUFHLEVBQVosQ0FBWSxDQUFDO2lCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUU7U0FDaEIsQ0FBQTtLQUNGO0FBQ0gsQ0FBQztBQVpELHdEQVlDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxZQUFvQjtJQUM5QyxPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUNwRCxDQUFDIn0=