@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
48 lines • 3.69 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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.addClassToSandbox = exports.SandboxPlugin = void 0;
var SandboxPlugin = /** @class */ (function () {
function SandboxPlugin() {
}
return SandboxPlugin;
}());
exports.SandboxPlugin = SandboxPlugin;
/**
* Creates a class in the sandbox with the given methods.
* @param methods Methods to define in sandbox
* @param className Class to define in sandbox.
*/
function addClassToSandbox(sandbox, methods, className) {
var sortedMethods = methods.map(function (m) { return (__assign(__assign({}, m), { sandboxName: className + '$' + m.externalName })); });
sortedMethods.sort(function (a, b) {
// sort statics in front, then alphabetically
if (a.isStatic !== b.isStatic) {
return a.isStatic ? -1 : 1;
}
return a.externalName.localeCompare(b.externalName);
});
sortedMethods.forEach(function (m) {
sandbox.addMethod(m.sandboxName, m.functionRef, {
promise: true,
reference: true,
});
});
var code = "\n class ".concat(className, " {\n ").concat(sortedMethods === null || sortedMethods === void 0 ? void 0 : sortedMethods.map(createMethod).join(';'), "\n }\n ");
sandbox.executeCodeSync(code);
}
exports.addClassToSandbox = addClassToSandbox;
function createMethod(m) {
return "\n ".concat(m.isStatic ? 'static' : '', " async ").concat(m.externalName, "(...args) {\n const fn = await requireAsync('").concat(m.sandboxName, "')\n return await fn(...args)\n }\n ");
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuZGJveC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZXBzL3NhbmRib3gvc2RrL3NhbmRib3gtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBWUE7SUFBQTtJQUVBLENBQUM7SUFBRCxvQkFBQztBQUFELENBQUMsQUFGRCxJQUVDO0FBRnFCLHNDQUFhO0FBSW5DOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxPQUFrQixFQUFFLE9BQXFCLEVBQUUsU0FBaUI7SUFDNUYsSUFBTSxhQUFhLEdBQXdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSx1QkFDekQsQ0FBQyxLQUNKLFdBQVcsRUFBRSxTQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxZQUFZLElBQzdDLEVBSDRELENBRzVELENBQUMsQ0FBQTtJQUVILGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztRQUN0Qiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzNCO1FBQ0QsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDckQsQ0FBQyxDQUFDLENBQUE7SUFFRixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQUMsQ0FBQztRQUN0QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUM5QyxPQUFPLEVBQUUsSUFBSTtZQUNiLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBTSxJQUFJLEdBQUcsc0JBQ0gsU0FBUyx1QkFDYixhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUUvQyxDQUFBO0lBQ0QsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMvQixDQUFDO0FBM0JELDhDQTJCQztBQUVELFNBQVMsWUFBWSxDQUFDLENBQW9CO0lBQ3hDLE9BQU8sZ0JBQ0gsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLG9CQUFVLENBQUMsQ0FBQyxZQUFZLCtEQUNqQixDQUFDLENBQUMsV0FBVyxrREFHakQsQ0FBQTtBQUNILENBQUMifQ==