UNPKG

@tableau/taco-toolkit

Version:
48 lines 3.69 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); }; 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==