@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
74 lines • 4.58 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.getConnectorConfig = void 0;
var fs_extra_1 = __importDefault(require("fs-extra"));
var DEFAULT_WINDOW_SIZE = { width: 600, height: 800 };
var configRegistry = {};
function getConnectorConfig(connectorJsonPath) {
// TODO: we cannot cache the config like this. This has memory leak.
// connectorJsonPath is on connection-basis. There's no way (or very hard) to evict
// the entries for closed connection.
var connectorConfig = configRegistry[connectorJsonPath];
if (connectorConfig === undefined) {
configRegistry[connectorJsonPath] = connectorConfig = new ConnectorConfig(connectorJsonPath);
}
return connectorConfig;
}
exports.getConnectorConfig = getConnectorConfig;
/** Represents settings per connector that do not change. */
var ConnectorConfig = /** @class */ (function () {
function ConnectorConfig(connectorJsonPath) {
this.config = fs_extra_1.default.readJsonSync(connectorJsonPath);
}
Object.defineProperty(ConnectorConfig.prototype, "windowSize", {
get: function () {
var size = __assign({}, DEFAULT_WINDOW_SIZE); // set default
var window = this.config.window;
if (window) {
if (window.height > 0) {
size.height = window.height;
}
if (window.width > 0) {
size.width = window.width;
}
}
return size;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ConnectorConfig.prototype, "auth", {
get: function () {
var _a;
return (_a = this.config.auth) !== null && _a !== void 0 ? _a : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ConnectorConfig.prototype, "permission", {
get: function () {
var _a, _b;
return {
api: (_b = (_a = this.config.permission) === null || _a === void 0 ? void 0 : _a.api) !== null && _b !== void 0 ? _b : {},
};
},
enumerable: false,
configurable: true
});
return ConnectorConfig;
}());
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lcHMvbWFpbi9jb21wb25lbnRzL2Nvbm5lY3Rvci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBMEI7QUFNMUIsSUFBTSxtQkFBbUIsR0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBRTdELElBQU0sY0FBYyxHQUFvQyxFQUFFLENBQUE7QUFFMUQsU0FBZ0Isa0JBQWtCLENBQUMsaUJBQXlCO0lBQzFELG9FQUFvRTtJQUNwRSxtRkFBbUY7SUFDbkYscUNBQXFDO0lBQ3JDLElBQUksZUFBZSxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3ZELElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRTtRQUNqQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsR0FBRyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtLQUM3RjtJQUVELE9BQU8sZUFBZSxDQUFBO0FBQ3hCLENBQUM7QUFWRCxnREFVQztBQUNELDREQUE0RDtBQUM1RDtJQUlFLHlCQUFZLGlCQUF5QjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLGtCQUFHLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELHNCQUFJLHVDQUFVO2FBQWQ7WUFDRSxJQUFNLElBQUksZ0JBQWMsbUJBQW1CLENBQUUsQ0FBQSxDQUFDLGNBQWM7WUFDcEQsSUFBQSxNQUFNLEdBQUssSUFBSSxDQUFDLE1BQU0sT0FBaEIsQ0FBZ0I7WUFDOUIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO2lCQUM1QjtnQkFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7aUJBQzFCO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7OztPQUFBO0lBRUQsc0JBQUksaUNBQUk7YUFBUjs7WUFDRSxPQUFPLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLElBQUksQ0FBQTtRQUNqQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHVDQUFVO2FBQWQ7O1lBQ0UsT0FBTztnQkFDTCxHQUFHLEVBQUUsTUFBQSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSwwQ0FBRSxHQUFHLG1DQUFJLEVBQUU7YUFDdkMsQ0FBQTtRQUNILENBQUM7OztPQUFBO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBL0JELElBK0JDIn0=