UNPKG

type-arango

Version:

ArangoDB Foxx decorators and utilities for TypeScript

102 lines 5.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRoutes = exports.configure = exports.complete = exports.Type = exports.Entity = exports.Entities = exports.isFoxx = exports.LogLevel = exports.Joi = exports.config = exports.isActive = exports.routes = exports.documents = exports.collections = exports.logger = exports.version = void 0; var joi_1 = require("./joi"); Object.defineProperty(exports, "Joi", { enumerable: true, get: function () { return joi_1.Joi; } }); var utils_1 = require("./utils"); Object.defineProperty(exports, "isFoxx", { enumerable: true, get: function () { return utils_1.isFoxx; } }); var models_1 = require("./models"); Object.defineProperty(exports, "Entities", { enumerable: true, get: function () { return models_1.Entities; } }); Object.defineProperty(exports, "Entity", { enumerable: true, get: function () { return models_1.Entity; } }); Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return models_1.Type; } }); var errors_1 = require("./errors"); var types_1 = require("./types"); Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return types_1.LogLevel; } }); exports.version = require('../package.json').version; exports.logger = new models_1.Logger(); exports.collections = []; exports.documents = []; exports.routes = []; exports.isActive = utils_1.isFoxx(); exports.config = { logLevel: types_1.LogLevel.Warn, prefixCollectionName: false, exposeRouteFunctionsToSwagger: false, dasherizeRoutes: true, paramOperatorSeparator: '|', stripDocumentId: true, stripDocumentRev: true, stripDocumentKey: false, unregisterAQLFunctionEntityGroup: true, addAttributeWritersToReaders: true, defaultLocale: 'en', defaultCurrency: 'USD', defaultListLimit: 25, defaultListLimitMax: 100, forClient: null, fromClient: null, providedRolesDefault: ['guest'], requiredRolesFallback: ['user'], requiredWriterRolesFallback: ['admin'], throwUnauthorized: 'unauthorized', throwForbidden: 'forbidden', disableCache: false, header: null, getUserRoles: function (req) { return (req.session && req.session.data && req.session.data.roles || []).concat(exports.config.providedRolesDefault); }, getAuthorizedRoles: function (userRoles, accessRoles) { return userRoles.filter(function (role) { return accessRoles.includes(role); }); } }; var decorators_1 = require("./decorators"); Object.defineProperty(exports, "Collection", { enumerable: true, get: function () { return decorators_1.Collection; } }); Object.defineProperty(exports, "Route", { enumerable: true, get: function () { return decorators_1.Route; } }); Object.defineProperty(exports, "Description", { enumerable: true, get: function () { return decorators_1.Description; } }); Object.defineProperty(exports, "Document", { enumerable: true, get: function () { return decorators_1.Document; } }); Object.defineProperty(exports, "Edge", { enumerable: true, get: function () { return decorators_1.Edge; } }); Object.defineProperty(exports, "Nested", { enumerable: true, get: function () { return decorators_1.Nested; } }); Object.defineProperty(exports, "Attribute", { enumerable: true, get: function () { return decorators_1.Attribute; } }); Object.defineProperty(exports, "Index", { enumerable: true, get: function () { return decorators_1.Index; } }); Object.defineProperty(exports, "OneToOne", { enumerable: true, get: function () { return decorators_1.OneToOne; } }); Object.defineProperty(exports, "OneToMany", { enumerable: true, get: function () { return decorators_1.OneToMany; } }); Object.defineProperty(exports, "Authorized", { enumerable: true, get: function () { return decorators_1.Authorized; } }); Object.defineProperty(exports, "Before", { enumerable: true, get: function () { return decorators_1.Before; } }); Object.defineProperty(exports, "After", { enumerable: true, get: function () { return decorators_1.After; } }); Object.defineProperty(exports, "ForClient", { enumerable: true, get: function () { return decorators_1.ForClient; } }); Object.defineProperty(exports, "FromClient", { enumerable: true, get: function () { return decorators_1.FromClient; } }); Object.defineProperty(exports, "Task", { enumerable: true, get: function () { return decorators_1.Task; } }); Object.defineProperty(exports, "AQLFunction", { enumerable: true, get: function () { return decorators_1.AQLFunction; } }); function complete() { if (!exports.isActive) return; exports.documents.forEach(function (doc) { return doc.finalize(); }); exports.collections.forEach(function (col) { return col.finalize(); }); } exports.complete = complete; /** * TypeArango() - Sets the config of `type-arango` */ function configure(configuration) { if (configuration) { Object.assign(exports.config, configuration); exports.logger.info('Configure:', configuration); } return complete; } exports.configure = configure; exports.default = configure; /** * Provides the Foxx.Router to `type-arango` */ function createRoutes(router, options) { if (!utils_1.isFoxx()) throw new errors_1.RequiresFoxxEnvironmentError('createRoutes()'); if (options) configure(options); exports.logger.info('Creating Routes...'); exports.routes.reverse().forEach(function (route) { return route.setup(router); }); return router; } exports.createRoutes = createRoutes; //# sourceMappingURL=index.js.map