UNPKG

baqend

Version:

Baqend JavaScript SDK

138 lines 10 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Code = void 0; var message = __importStar(require("../message")); var connector_1 = require("../connector"); var Validator_1 = require("./Validator"); /** * Representation of a Code which runs on Baqend. */ var Code = /** @class */ (function () { /** * @param metamodel * @param entityManagerFactory */ function Code(metamodel, entityManagerFactory) { this.metamodel = metamodel; this.entityManagerFactory = entityManagerFactory; } /** * Converts the given function to a string * @param fn The JavaScript function to serialize * @return The serialized function */ Code.prototype.functionToString = function (fn) { if (!fn) { return ''; } var str = fn.toString(); str = str.substring(str.indexOf('{') + 1, str.lastIndexOf('}')); if (str.charAt(0) === '\n') { str = str.substring(1); } if (str.charAt(str.length - 1) === '\n') { str = str.substring(0, str.length - 1); } return str; }; /** * Converts the given string to a module wrapper function * @param signature The expected parameters of the function * @param code The JavaScript function to deserialize * @return The deserialized function */ Code.prototype.stringToFunction = function (signature, code) { // eslint-disable-next-line @typescript-eslint/no-implied-eval return new Function(signature /* typings are incorrect here */, code); // eslint-disable-line no-new-func }; /** * Loads a list of all available modules without handlers * * @return */ Code.prototype.loadModules = function () { var msg = new message.GetAllModules(); return this.entityManagerFactory.send(msg) .then(function (response) { return response.entity; }); }; Code.prototype.loadCode = function (type, codeType, asFunction) { var _this = this; if (asFunction === void 0) { asFunction = false; } var bucket = typeof type === 'string' ? type : type.name; var msg = new message.GetBaqendCode(bucket, codeType) .responseType('text'); return this.entityManagerFactory.send(msg) .then(function (response) { return _this.parseCode(bucket, codeType, asFunction, response.entity); }, function (e) { if (e.status === connector_1.StatusCode.OBJECT_NOT_FOUND) { return null; } throw e; }); }; Code.prototype.saveCode = function (type, codeType, fn) { var _this = this; var bucket = typeof type === 'string' ? type : type.name; var msg = new message.SetBaqendCode(bucket, codeType) .entity(fn instanceof Function ? this.functionToString(fn) : fn, 'text') .responseType('text'); return this.entityManagerFactory.send(msg) .then(function (response) { return _this.parseCode(bucket, codeType, fn instanceof Function, response.entity); }); }; /** * Deletes Baqend code identified by the given bucket and code type * * @param type The entity type for the handler or the Name of the * Baqend code * @param codeType The type of the code * @return succeed if the code was deleted */ Code.prototype.deleteCode = function (type, codeType) { var _this = this; var bucket = typeof type === 'string' ? type : type.name; var msg = new message.DeleteBaqendCode(bucket, codeType); return this.entityManagerFactory.send(msg) .then(function () { return _this.parseCode(bucket, codeType, false, null); }); }; /** * @param bucket * @param codeType * @param [asFunction=false] * @param code * @return * @private */ Code.prototype.parseCode = function (bucket, codeType, asFunction, code) { if (codeType === 'validate') { var type = this.metamodel.entity(bucket); type.validationCode = code === null ? null : Validator_1.Validator.compile(type, code); return asFunction ? type.validationCode : code; } return code && asFunction ? this.stringToFunction(['module', 'exports'], code) : code; }; return Code; }()); exports.Code = Code; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcnNlY3Rpb24vQ29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFzQztBQUN0QywwQ0FBMEM7QUFJMUMseUNBQXdDO0FBRXhDOztHQUVHO0FBQ0g7SUFLRTs7O09BR0c7SUFDSCxjQUFZLFNBQW9CLEVBQUUsb0JBQTBDO1FBQzFFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILCtCQUFnQixHQUFoQixVQUFpQixFQUFZO1FBQzNCLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzFCLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3ZDLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7O09B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