Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

Usage

import * as mandarinets from "https://raw.githubusercontent.com/mandarineorg/mandarinets/master/mod.ts";

§Namespaces

DI
Mandarine

This namespace contains all the essentials for mandarine to work Gnerally, global functionings are added to this namespace in order to be easily accesible across Mandarine

Mandarine.ApplicationContext

Refers to the Application Context. The application context is used to manipulate elemental behaviors of Mandarine It is a singleton class

Mandarine.Components

Contains the different properties different stereotypes/components take

Mandarine.Defaults

Contains the default information Mandarine needs to work.

Mandarine.Global

Handles the interaction with the global environment of Mandarine Mandarine uses a global environment to store and manipulate essential information to work

Mandarine.MandarineCore

Refers to all the elements part of the core.

Mandarine.MandarineCore.Decorators

Core Decorators

Mandarine.MandarineCore.Internals
MandarineSecurity

Contains all the essentials for Mandarine's security core to work

MandarineSecurity.Auth
MandarineSecurity.Core
MandarineSecurity.Core.Modules
MandarineSecurity.Crypto
MandarineSecurity.Sessions

§Classes

ApplicationContext

Contains the "application context" of mandarine. The Application Context is used to interact with various namespaces & initializations

Authenticator

The authenticator class contains the logic behind executing built-in authentication by Mandarine. This class is requested by Mandarine's built-in authentication

ComponentsRegistry

This class is also known as the DI container. This class handles the addition, initialization and injection for all mandarine components This class is also responsible for connection repository methods to a repository proxy method in order to resolve queries

DI.FactoryClass

Includes the instance of DependencyInjectionFactory

Log
Mandarine.MandarineCore.MandarineMicroserviceManager
Mandarine.MandarineCore.MandarineResourceHandlerRegistry

Class responsible for storing resource handlers

Mandarine.MandarineCore.MandarineTemplateManager
MandarineCore

Contains core methods & information related to Mandarine

MandarineMVC

This class is the bridge between the HTTP server & the Mandarine Compiler.

MandarineRepository abstract

Repositories must extend to this class. This class makes interaction beetween the database layer & mandarine engine possible. This class is generic where T equals your model. This class has a parameter in its constructor, which should be your model's instance.

MandarineResourceResolver

This class represents the default resolver for resources. It is used by Mandarine to resolve static content. It can be overriden or you can create a personalized resolver with your own code. Refer to the documentation https://mandarineframework.gitbook.io/mandarine-ts/mandarine-core/resource-handlers/resource-resolver

MandarineSessionHandler

MandarineSessionHandler serves as the default implementation of the SessionStore. If not implementation is overriden, you may still use Sessions as this class is already implemented by Mandarine's core

MicroserviceUserManager
MongoDBService
OpenAPIBuilder
Optional

The optional class is used to avoid repetitive validation with If's. If an object is present, you can verify this with Optional.isPresent() If An object is not present but you would like to get a default value, you can do this with Optional.orElseGet(defaultValue); This classs allows you to avoid null exceptions.

PromiseRepeater

This class serves a promise repeater which will re-try your promise until they are successfully resolved or the max attempt limit has been reached.

ResourceHandler

This class works as a container for resource handlers. This class contains the paths where the resolver will be invoked. This class contains the locations where the resolver should look up for resources. This class contains the indexes of the paths. This class contains the resolver to be used when intercepting.

TaskManager
ViewModel

This class serves as a modeler for templates. A modeler is used to make working with templates & its variables easier

WebSocketClientManager
WebSocketServerManager

§Enums

DI.InjectionTypes

List of all the possible injection types. NOTE INJECTABLE_OBJECT refers to a injection that is not part of Mandarine Components but it has been defined as a component by the user.

Mandarine.MandarineCore.ComponentTypes

List of all recognizable mandarine components.

Mandarine.MandarineCore.NativeComponents

List of all native components by Mandarine

Mandarine.MandarineCore.ValueScopes
MandarineSecurity.Auth.AuthExceptions

List of known authentication exceptions

MandarineSecurity.Sessions.MandarineSessionExceptions

Used in callbacks from Mandarine's native Session storage system. This is not necessary to use.

SQLTypes

Enum to define the SQL Types of every Column. The majority of this file is from the Java source code Part of this file has been written by Mandarine Collaborators

§Variables

AllowOnly
ApiExternalDoc
ApiOperation
ApiParameter
ApiResponse
ApiServer
ApiTag
AuthPrincipal

Decorator

Catch

Decorator

Column

Decorator

Component

Decorator

Configuration

Decorator

ConfigurationProperties

Decorator Defines what configuration file component will be using.

Controller

Decorator

CookieParam

Decorator

Cors
CustomQuery

Decorator

DELETE

Decorator

DI.Factory

Initializes the DI factory.

EventListener

Decorator

GeneratedValue

Decorator

GET

Decorator

Guard

Decorator

HEAD

Decorator

Id

Decorator

Inject

Decorator

Injectable

Decorator

Mandarine.AsyncFunction

Used to verify that a method is async

Mandarine.Defaults.MandarineDefaultConfiguration
Mandarine.Defaults.MandarineDefaultCorsOptions
Mandarine.Defaults.MandarineDefaultInitialProperties
Mandarine.Defaults.MandarineDefaultSessionContainer
Mandarine.Defaults.mandarinePropertiesFile
Mandarine.logger
Mandarine.MandarineCore.Internals.getEnv
Mandarine.MandarineCore.Internals.getTimersManager
Mandarine.readFile

Mandarine File System

Mandarine.readFileSync
Mandarine.readTextFile
Mandarine.readTextFileSync
Microservice
Middleware

Decorator

Model

Decorator

MSClose
MSOnClose
MSOnError
MSOnMessage
MSOnOpen
OPTIONS

Decorator

Override
Param

Decorator

Parameters

Decorator

PATCH

Decorator

Pipe

Decorator

POST

Decorator

PUT

Decorator

QueryParam

Decorator

Render

Decorator

Repository

Decorator

RequestBody

Decorator

RequestParam

Decorator

ResponseParam

Decorator

ResponseStatus
RouteParam

Decorator

Scheduled

Decorator Creates a task based on a CRON Expression. It is fired for the first time during Mandarine's start-up process

Service

Decorator

Session

Decorator

Table

Decorator

Timer

Decorator Creates a timer with a fixed rate in milliseconds.

UseGuards
UseMiddleware
Value

Decorator Inject a value from the configuration file.

WebSocketClient

Decorator Inject a value from the configuration file.

WebSocketServer
WSClose
WSOnClose
WSOnError
WSOnMessage
WSOnOpen
WSSend

§Functions

Mandarine.Global.getComponentsRegistry

Get the Components' registry from Mandarine's global environment

Mandarine.Global.getEntityManager

Get the entity manager to manipulate the current DB connection

Mandarine.Global.getInternalProps
Mandarine.Global.getMandarineConfiguration

Get the properties mandarine is using. If no properties are set by the user then it gets the default properties.

Mandarine.Global.getMandarineDotEnv

Read .env file located under the current working directory and adds its values to Deno.env

Mandarine.Global.getMandarineGlobal

Get the global environment based on interface @MandarineGlobalInterface

Mandarine.Global.getMandarineInitialProps

Get the properties (MandarineJsonProperties) from mandarine.json

Mandarine.Global.getMicroserviceManager

Get the microservice manager

Mandarine.Global.getMiddleware

Get the list of registered middlewares Middleware are added to the global environment in order to not request the DI container every time there is an HTTP Request

Mandarine.Global.getNativeComponentsRegistry
Mandarine.Global.getResourceHandlerRegistry

Get the resource handler registry for incoming requests.

Mandarine.Global.getSessionContainer

Get the instance of the Session Container

Mandarine.Global.getTemplateManager

Get the entity manager to manipulate the current DB connection

Mandarine.Global.initializeDefaultSessionContainer

Initializes the Session Container. The session container is used to determine the configuration of Mandarine's sessions

Mandarine.Global.initializeMandarineGlobal

Initializes Mandarine Global Environment.

Mandarine.Global.initializeMiddleware

Initializes the middleware list in the global environment.

Mandarine.Global.initializeNativeComponents

Initializes the middleware list in the global environment.

Mandarine.Global.initializeSecurityInternals

Initializes the core modules of Mandarine's security core.

Mandarine.Global.readConfigByDots

Read Mandarine's configuration by dots

Mandarine.Global.setConfiguration

Set a new configuration for the mandarine properties If properties are ignored, it will set the default values.

MandarineSecurity.getAuthManagerBuilder

Gets the current login builder which contains the information of the endpoints for built-in logins

parameterDecoratorFactory

This function creates a custom parameter decorator (used in a HTTP Handler). With this function, you can establish your own behaviors towards an injection which will be made when processing the handler This function can be generic in order to specify what type of data your parameter will receive, for this it takes two generic arguments (DecoratorData, DecoratorReturn)

§Interfaces

DI.ArgumentsResolverExtraData

Structure of data for requests in order to resolve dependencies.

DI.InjectionMetadataContext

Structure of injections in methods' arguments.

ExceptionContext

Provides information about an exception intercepted by a catch component.

ExceptionFilter

Provides the necessary behavior to intercept an error thrown

GuardTarget

Define the behavior of a user-side guard The guard target will be called at the time of a request. onGuard(requestContext, ...args) will be called before executing the endpoint.

Mandarine.ApplicationContext.ApplicationContextMetadata

Stats/Metadata of Mandarine's core. This includes information such as: When Mandarine was started, number of templates, controller, and others.

Mandarine.ApplicationContext.IApplicationContext

Interface used by the ApplicationContext class. Such class contains the necessary bridges for Mandarine's core to work

Mandarine.Components.CatchComponent

Interface that provides with the necessary fields for configuration in a Mandarine-powered component stereotype of Catch

Mandarine.Components.MiddlewareComponent

Interface that provides with the necessary fields for configuration in a Mandarine-powered component stereotype of Middleware

Mandarine.EnvironmentalReference

${MY_VAR} will be considered an environmental reference. The environmental reference will be parsed by CommonUtils.getEnvironmentalReferences and CommonUtils.getEnvironmentalReferences will return an array of EnvironmentalReference

Mandarine.Global.MandarineGlobalInterface

Contains all the Global objects that Mandarine uses

Mandarine.MandarineCore.ComponentCommonInterface

Refers to the essentials of a component class for the Mandarine Engine.

Mandarine.MandarineCore.ComponentMetadataContext

Contains the metadata information of the component. This information is initialized when a component decorator is used

Mandarine.MandarineCore.ComponentRegistryContext

Refers to the context of the component inside the DI container. When a request is made to the DI container, this is what the request returns.

Mandarine.MandarineCore.Cookies
Mandarine.MandarineCore.Decorators.EventListener
Mandarine.MandarineCore.Decorators.MicroserviceProperty
Mandarine.MandarineCore.Decorators.ScheduledTask
Mandarine.MandarineCore.Decorators.Timer
Mandarine.MandarineCore.Decorators.Value
Mandarine.MandarineCore.Decorators.WebSocketProperty
Mandarine.MandarineCore.IComponentsRegistry

Refers to the Components' Registry The components' registry is used to communicate the mandarine engine & DI layer This is possibly the most important class for mandarine to work. All components are registered inside this class

Mandarine.MandarineCore.IMicroserviceManager
Mandarine.MandarineCore.Internals.CoreTimers
Mandarine.MandarineCore.IResourceHandler

Handlers the information of a resource handler that will be processed.

Mandarine.MandarineCore.IResourceHandlerRegistry

Refers to the resource handler registry. All the resource handlers either initialized by the user or by Mandarine will be located here.

Mandarine.MandarineCore.ITemplatesManager

Refers to the templates' registry. All the templates that are read and initialized at mandarine compile time are registed inside the templates registry When an user requests a renderable endpoint, the templates' registry will get requested in order to get the template.

Mandarine.MandarineCore.MandarineNativeComponent

List of necessary fields for a Native Component

Mandarine.MandarineCore.MicroserviceItem
Mandarine.MandarineCore.NativeComponentsProperties

Properties used by the native components registry. This interface provides mandarine with the management of native components in the core.

Mandarine.MandarineCore.TimerMetadataContext

Context for Tasks that are timer-like.

Mandarine.MandarineInitialProperties

Structure for mandarine.json If mandarine.json is present, some behaviors of the Mandarine starter can be altered such as the location of the properties.json file

Mandarine.Properties

Structure of Mandarine Properties. Mandarine uses these properties to determine how it should work Custom Properties must extend Mandarine.Properties

MandarineSecurity.Auth.AuthenticationManagerBuilder

Principal interface for the authentication manager builder, which indicates what what service (implementing Mandarine.Security.Auth.UserDetailsService) we will call for built-in authentication

MandarineSecurity.Auth.AuthenticationResult

Contains the state of a built-in authentication process

MandarineSecurity.Auth.Authenticator

Private API to perform authentication (Mandarine's built-in Authentication)

MandarineSecurity.Auth.Handler

Handler for login/logout whether successful or not. This is executed after login/logout was called (from built-in authentication)

MandarineSecurity.Auth.PerformAuthenticationOptions
MandarineSecurity.Auth.PerformHTTPAuthenticationOptions
MandarineSecurity.Auth.RequestAuthObj

Data present in request.authentication AUTH_SES_ID refers to the session id with the data of the user that was logged in through Mandarine's built-in authentication AUTH_EXPIRES refers to the time when the session will expire AUTH_PRINCIPAL refers to all the data that was loaded (following the UserDetails implementation)

MandarineSecurity.Auth.UserDetails

Interface for the minimum of information a user model must have when using Mandarine's built-in authentication.

MandarineSecurity.Auth.UserDetailsService

Interface for a mandarine-powered component (type service) which will be used for built-in authentication

MandarineSecurity.Core.LoginConfigurer

Data to be used for login/logout purposes from built-in authentication

MandarineSecurity.Core.Modules.LoginBuilder

Implementation of Login Builder, used to create the behaviors for built-in authentication

MandarineSecurity.Crypto.PasswordEncoder
MandarineSecurity.Sessions.MandarineSession

Represents the object of a mandarine session. This is not customizable.

MandarineSecurity.Sessions.SessionContainer

Represents the object of the configuration for the Session Container

MandarineSecurity.Sessions.SessionContextObj

Data present in request regarding the current session

MandarineSecurity.Sessions.SessionCookie
MandarineSecurity.Sessions.SessionStore

Represents how a SessionStore implementation should be designed. SessionStore is used to design & use the process of manipulating sessions

MiddlewareTarget

Define the behavior of a user-side middleware The middleware target will be called at the time of a request. onPreRequest(...args) will be called before executing the endpoint. onPostRequest(...args) will be called after executing the endpoint.

NonComponentMiddlewareTarget

§Type Aliases

DI.ArgumentValue

Interprets the arguments to return after injection

DI.Constructor

Infer the arguments of constructor for dependency injection.

GuardTargetMethod
Mandarine.IniFile
Mandarine.MandarineCore.Decorators.MicroserviceWorkerProperties
Mandarine.MandarineCore.Decorators.WebSocketValidProperties
Mandarine.MandarineCore.Internals.CoreTimersType
Mandarine.MandarineCore.MicroserviceStatus
MandarineSecurity.Auth.AuthenticatorExecutor
MandarineSecurity.Auth.GrantedAuthority
MandarineSecurity.Auth.Permissions
MandarineSecurity.Auth.PermissionValidator

Permission validators are functions executed during the evaluation of a security expression. PermissionValidator is how Mandarine interprets a security expression

MandarineSecurity.Auth.PredefinedExpressions