UNPKG

@leansdk/leanrc

Version:

LeanRC is a MVC framework for creating graceful applications

344 lines (295 loc) 14.7 kB
# This file is part of LeanRC. # # LeanRC is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # LeanRC is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with LeanRC. If not, see <https://www.gnu.org/licenses/>. RC = require '@leansdk/rc/lib' joi = require 'joi' statuses = require 'statuses' moment = require 'moment' { Declare } = RC:: class LeanRC extends RC @inheritProtected() @root __dirname @util { joi } @util { statuses } @util { moment } @const HANDLER_RESULT: 'HANDLER_RESULT' #Symbol 'HANDLER_RESULT' @const RECORD_CHANGED: 'RECORD_CHANGED' #Symbol 'RECORD_CHANGED' @const CONFIGURATION: 'ConfigurationProxy' @const STARTUP: 'STARTUP' #Symbol 'startup' # для сигнала @const MIGRATE: 'MIGRATE' #Symbol 'migrate' # для сигнала @const ROLLBACK: 'ROLLBACK' #Symbol 'rollback' # для сигнала @const STOPPED_MIGRATE: 'STOPPED_MIGRATE' #Symbol 'stopped_migrate' # для сигнала @const STOPPED_ROLLBACK: 'STOPPED_ROLLBACK' #Symbol 'stopped_rollback' # для сигнала @const LIGHTWEIGHT: Symbol 'LIGHTWEIGHT' # для создания инстанса приложения без свича (для создания изолированной области выполнения) @const MIGRATIONS: 'MigrationsCollection' @const SESSIONS: 'SessionsCollection' @const USERS: 'UsersCollection' @const SPACES: 'SpacesCollection' @const ROLES: 'RolesCollection' @const UPLOADS: 'UploadsCollection' @const RESQUE: 'ResqueProxy' @const START_RESQUE: 'START_RESQUE' #Symbol 'start_resque' @const DELAYED_JOBS_QUEUE: 'delayed_jobs' @const DELAYED_JOBS_SCRIPT: 'DelayedJobScript' @const DEFAULT_QUEUE: 'default' @const JOB_RESULT: 'JOB_RESULT' #Symbol 'JOB_RESULT' @const SHELL: 'SHELL' #Symbol 'ShellApplication' @const APPLICATION_MEDIATOR: 'ApplicationMediator' @const APPLICATION_ROUTER: 'ApplicationRouter' @const APPLICATION_RENDERER: 'ApplicationRenderer' @const APPLICATION_SWITCH: 'ApplicationSwitch' @const APPLICATION_GATEWAY: 'ApplicationGateway' @const RESQUE_EXECUTOR: 'ResqueExecutor' @const LOG_MSG: 'LOG_MSG' #Symbol 'logMessage' @const PRODUCTION: 'production' @const DEVELOPMENT: 'development' @defineType Declare 'PropertyDefinitionT' @defineType Declare 'RelationOptionsT' @defineType Declare 'RelationConfigT' @defineType Declare 'RelationInverseT' @defineType Declare 'EmbedOptionsT' @defineType Declare 'EmbedConfigT' @defineType Declare 'AttributeOptionsT' @defineType Declare 'AttributeConfigT' @defineType Declare 'ComputedOptionsT' @defineType Declare 'ComputedConfigT' @defineType Declare 'MakeSignatureInterface' @defineType Declare 'ApplicationInterface' @defineType Declare 'CollectionInterface' @defineType Declare 'CommandInterface' @defineType Declare 'ConfigurationInterface' @defineType Declare 'ContextInterface' @defineType Declare 'CookiesInterface' @defineType Declare 'CursorInterface' @defineType Declare 'QueueInterface' @defineType Declare 'EndpointInterface' @defineType Declare 'FacadeInterface' @defineType Declare 'GatewayInterface' @defineType Declare 'MediatorInterface' @defineType Declare 'MigrationInterface' @defineType Declare 'NotificationInterface' @defineType Declare 'NotifierInterface' @defineType Declare 'ObserverInterface' @defineType Declare 'ObjectizerInterface' @defineType Declare 'ProxyInterface' @defineType Declare 'QueryInterface' @defineType Declare 'RecordInterface' @defineType Declare 'RendererInterface' @defineType Declare 'RequestInterface' @defineType Declare 'ResourceInterface' @defineType Declare 'ResponseInterface' @defineType Declare 'ResqueInterface' @defineType Declare 'RouterInterface' @defineType Declare 'ScriptInterface' @defineType Declare 'SerializerInterface' @defineType Declare 'SwitchInterface' @defineType Declare 'TransformInterface' @defineType Declare 'CrudableInterface' @defineType Declare 'IterableInterface' @defineType Declare 'QueryableCollectionInterface' @defineType Declare 'RelatableInterface' @defineType Declare 'DelayableInterface' @defineType Declare 'EmbeddableInterface' @defineType Declare 'ControllerInterface' @defineType Declare 'ModelInterface' @defineType Declare 'ViewInterface' require('./types/JoiT') LeanRC require('./types/MomentT') LeanRC require('./types/PropertyDefinitionT') LeanRC require('./types/RelationOptionsT') LeanRC require('./types/RelationConfigT') LeanRC require('./types/RelationInverseT') LeanRC require('./types/EmbedOptionsT') LeanRC require('./types/EmbedConfigT') LeanRC require('./interfaces/patterns/NotifierInterface') LeanRC require('./interfaces/patterns/TransformInterface') LeanRC require('./interfaces/patterns/MakeSignatureInterface') LeanRC require('./types/AttributeOptionsT') LeanRC require('./types/AttributeConfigT') LeanRC require('./types/ComputedOptionsT') LeanRC require('./types/ComputedConfigT') LeanRC require('./interfaces/patterns/ApplicationInterface') LeanRC require('./interfaces/patterns/CommandInterface') LeanRC require('./interfaces/patterns/ContextInterface') LeanRC require('./interfaces/patterns/CookiesInterface') LeanRC require('./interfaces/patterns/CursorInterface') LeanRC require('./interfaces/patterns/QueueInterface') LeanRC require('./interfaces/patterns/EndpointInterface') LeanRC require('./interfaces/patterns/FacadeInterface') LeanRC require('./interfaces/patterns/MediatorInterface') LeanRC require('./interfaces/patterns/NotificationInterface') LeanRC require('./interfaces/patterns/ObserverInterface') LeanRC require('./interfaces/patterns/ObjectizerInterface') LeanRC require('./interfaces/patterns/ProxyInterface') LeanRC require('./interfaces/patterns/CollectionInterface') LeanRC require('./interfaces/patterns/ConfigurationInterface') LeanRC require('./interfaces/patterns/GatewayInterface') LeanRC require('./interfaces/patterns/QueryInterface') LeanRC require('./interfaces/patterns/RecordInterface') LeanRC require('./interfaces/patterns/MigrationInterface') LeanRC require('./interfaces/patterns/RendererInterface') LeanRC require('./interfaces/patterns/RequestInterface') LeanRC require('./interfaces/patterns/ResourceInterface') LeanRC require('./interfaces/patterns/ResponseInterface') LeanRC require('./interfaces/patterns/ResqueInterface') LeanRC require('./interfaces/patterns/RouterInterface') LeanRC require('./interfaces/patterns/ScriptInterface') LeanRC require('./interfaces/patterns/SerializerInterface') LeanRC require('./interfaces/patterns/SwitchInterface') LeanRC require('./interfaces/patterns/CrudableInterface') LeanRC require('./interfaces/patterns/IterableInterface') LeanRC require('./interfaces/patterns/QueryableCollectionInterface') LeanRC require('./interfaces/patterns/RelatableInterface') LeanRC require('./interfaces/patterns/DelayableInterface') LeanRC require('./interfaces/patterns/EmbeddableInterface') LeanRC require('./interfaces/core/ControllerInterface') LeanRC require('./interfaces/core/ModelInterface') LeanRC require('./interfaces/core/ViewInterface') LeanRC require('./utils/jwt') LeanRC require('./utils/crypto') LeanRC require('./mixins/ConfigurableMixin') LeanRC require('./mixins/RelationsMixin') LeanRC require('./mixins/DelayableMixin') LeanRC require('./mixins/MakeSignatureMixin') LeanRC require('./patterns/iterator/Cursor') LeanRC require('./patterns/data_mapper/Transform') LeanRC require('./patterns/data_mapper/StringTransform') LeanRC require('./patterns/data_mapper/NumberTransform') LeanRC require('./patterns/data_mapper/DateTransform') LeanRC require('./patterns/data_mapper/BooleanTransform') LeanRC require('./patterns/data_mapper/ObjectTransform') LeanRC require('./patterns/data_mapper/ArrayTransform') LeanRC require('./patterns/data_mapper/ComplexObjectTransform') LeanRC require('./patterns/data_mapper/ComplexArrayTransform') LeanRC require('./patterns/data_mapper/Serializer') LeanRC require('./patterns/data_mapper/Objectizer') LeanRC require('./patterns/data_mapper/Record') LeanRC require('./patterns/data_mapper/Queue') LeanRC require('./patterns/query_object/Query') LeanRC require('./patterns/observer/Notification') LeanRC require('./patterns/observer/Notifier') LeanRC require('./patterns/observer/Observer') LeanRC require('./patterns/gateway/Endpoint') LeanRC require('./patterns/proxy/Proxy') LeanRC require('./patterns/proxy/Collection') LeanRC require('./patterns/proxy/Configuration') LeanRC require('./patterns/proxy/Gateway') LeanRC require('./patterns/proxy/Renderer') LeanRC require('./patterns/proxy/Router') LeanRC require('./patterns/proxy/Resque') LeanRC require('./mixins/NamespacedGatewayMixin') LeanRC require('./mixins/ModelingGatewayMixin') LeanRC require('./mixins/CrudEndpointMixin') LeanRC require('./mixins/HttpCollectionMixin') LeanRC require('./mixins/HttpSerializerMixin') LeanRC require('./mixins/MemoryCollectionMixin') LeanRC require('./mixins/GenerateAutoincrementIdMixin') LeanRC require('./mixins/GenerateUuidIdMixin') LeanRC require('./mixins/MemoryResqueMixin') LeanRC require('./mixins/MemoryConfigurationMixin') LeanRC require('./mixins/IterableMixin') LeanRC require('./mixins/QueryableCollectionMixin') LeanRC require('./mixins/ThinHttpCollectionMixin') LeanRC require('./mixins/SchemaModuleMixin') LeanRC require('./mixins/CrudRendererMixin') LeanRC # needs test require('./mixins/TemplatableModuleMixin') LeanRC # needs test require('./mixins/NamespaceModuleMixin') LeanRC # needs test require('./mixins/EmbeddableRecordMixin') LeanRC # needs test require('./patterns/gateway/CreateEndpoint') LeanRC require('./patterns/gateway/DetailEndpoint') LeanRC require('./patterns/gateway/ListEndpoint') LeanRC require('./patterns/gateway/UpdateEndpoint') LeanRC require('./patterns/gateway/DeleteEndpoint') LeanRC require('./patterns/gateway/DestroyEndpoint') LeanRC require('./patterns/gateway/CountEndpoint') LeanRC require('./patterns/gateway/LengthEndpoint') LeanRC require('./patterns/gateway/BulkDeleteEndpoint') LeanRC require('./patterns/gateway/BulkDestroyEndpoint') LeanRC require('./patterns/gateway/ModelingCreateEndpoint') LeanRC require('./patterns/gateway/ModelingDetailEndpoint') LeanRC require('./patterns/gateway/ModelingListEndpoint') LeanRC require('./patterns/gateway/ModelingUpdateEndpoint') LeanRC require('./patterns/gateway/ModelingDeleteEndpoint') LeanRC require('./patterns/gateway/ModelingDestroyEndpoint') LeanRC require('./patterns/gateway/ModelingBulkDeleteEndpoint') LeanRC require('./patterns/gateway/ModelingBulkDestroyEndpoint') LeanRC require('./patterns/gateway/ModelingQueryEndpoint') LeanRC require('./patterns/switch/Request') LeanRC require('./patterns/switch/Response') LeanRC require('./patterns/switch/Cookies') LeanRC require('./patterns/switch/Context') LeanRC require('./patterns/mediator/Mediator') LeanRC require('./patterns/mediator/Switch') LeanRC require('./patterns/command/SimpleCommand') LeanRC require('./patterns/command/MacroCommand') LeanRC require('./patterns/command/Resource') LeanRC require('./patterns/command/MigrateCommand') LeanRC require('./patterns/command/RollbackCommand') LeanRC require('./patterns/command/Script') LeanRC require('./patterns/command/DelayedJobScript') LeanRC require('./mixins/ApplicationMediatorMixin') LeanRC # needs test require('./mixins/MemoryExecutorMixin') LeanRC require('./mixins/BodyParseMixin') LeanRC require('./mixins/CheckSessionsMixin') LeanRC require('./mixins/QueryableResourceMixin') LeanRC # needs test require('./mixins/GlobalingResourceMixin') LeanRC # needs test require('./mixins/GuestingResourceMixin') LeanRC # needs test require('./mixins/SharingResourceMixin') LeanRC # needs test require('./mixins/AdminingResourceMixin') LeanRC # needs test require('./mixins/PersoningResourceMixin') LeanRC # needs test require('./mixins/ModelingResourceMixin') LeanRC # needs test require('./mixins/EditableResourceMixin') LeanRC # needs test require('./mixins/BulkMethodsRendererMixin') LeanRC # needs test require('./mixins/BulkMethodsResourceMixin') LeanRC # needs test require('./mixins/BulkMethodsCollectionMixin') LeanRC # needs test require('./mixins/CountMethodsRendererMixin') LeanRC # needs test require('./mixins/CountMethodsResourceMixin') LeanRC # needs test require('./patterns/migration/Migration') LeanRC require('./mixins/MemoryMigrationMixin') LeanRC require('./patterns/facade/Facade') LeanRC require('./core/View') LeanRC require('./core/Model') LeanRC require('./core/Controller') LeanRC LeanRC.initialize() class Pipes extends LeanRC @inheritProtected() @root __dirname @defineType Declare 'PipeAwareInterface' @defineType Declare 'PipeFittingInterface' @defineType Declare 'PipeMessageInterface' require('./interfaces/patterns/PipeAwareInterface') Pipes require('./interfaces/patterns/PipeFittingInterface') Pipes require('./interfaces/patterns/PipeMessageInterface') Pipes require('./patterns/pipes/Pipe') Pipes require('./patterns/pipes/PipeMessage') Pipes require('./patterns/pipes/PipeListener') Pipes require('./patterns/pipes/FilterControlMessage') Pipes require('./patterns/pipes/Filter') Pipes require('./patterns/pipes/Junction') Pipes require('./patterns/pipes/JunctionMediator') Pipes require('./patterns/pipes/PipeAwareModule') Pipes require('./patterns/pipes/LineControlMessage') Pipes require('./patterns/pipes/Line') Pipes require('./patterns/pipes/TeeMerge') Pipes require('./patterns/pipes/TeeSplit') Pipes Pipes.initialize() LeanRC.const Pipes: Pipes.freeze() require('./patterns/facade/Application') LeanRC require('./patterns/command/LogMessageCommand') LeanRC require('./patterns/data_mapper/LogMessage') LeanRC require('./patterns/data_mapper/LogFilterMessage') LeanRC require('./mixins/LoggingJunctionMixin') LeanRC module.exports = LeanRC.freeze()