Skip to main content
Version: Latest

MangoJS

Namespaces

Classes

abstract BaseRepository

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:12

Abstract base repository implementing basic CRUD operations.

Deprecated

This class will be removed in a future version. Use TypeORM repositories directly instead.

Type Parameters

T

T

Implements

  • IRead<T>
  • IWrite<T>

Constructors

Constructor
new BaseRepository<T>(): BaseRepository<T>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:15

Returns

BaseRepository<T>

Properties

_collection
readonly _collection: any;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:13

Methods

count()
count(): Promise<Number>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:34

Returns

Promise<Number>

create()
create(item): Promise<boolean>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:25

Parameters
item

T

Returns

Promise<boolean>

Implementation of
IWrite.create
delete()
delete(id): Promise<boolean>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:31

Parameters
id

string

Returns

Promise<boolean>

Implementation of
IWrite.delete
find()
find(item): Promise<T[]>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:19

Parameters
item

T

Returns

Promise<T[]>

Implementation of
IRead.find
findOne()
findOne(id): Promise<T>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:22

Parameters
id

string

Returns

Promise<T>

Implementation of
IRead.findOne
update()
update(id, item): Promise<boolean>;

Defined in: packages/core/src/core/databases/interfaces/BaseRepository.ts:28

Parameters
id

string

item

T

Returns

Promise<boolean>

Implementation of
IWrite.update

PersistenceContext2

Defined in: packages/core/src/core/persistence/PersistenceContext.ts:13

Generic MongoDB persistence context.

Deprecated

Use MongoosePersistenceContext instead.

Implements

Constructors

Constructor
new PersistenceContext2(entityManager): PersistenceContext2;

Defined in: packages/core/src/core/persistence/PersistenceContext.ts:16

Parameters
entityManager

IDatabaseManagerFactory

Returns

PersistenceContext2

Methods

inTransaction()
inTransaction(context): Promise<{
}>;

Defined in: packages/core/src/core/persistence/PersistenceContext.ts:24

Executes operations within a transaction context.

Parameters
context

Context<Connection>

Returns

Promise<{ }>

Result of the transaction

Implementation of

IPersistenceContext.inTransaction


QueueClient

Defined in: packages/core/src/core/queue/QueueClient.ts:20

QueueClient - Wrapper for BullMQ Queue (Producer side) Used by API Service to add jobs to queues

This class abstracts BullMQ implementation details. No direct BullMQ calls should be made outside this wrapper.

Implements

Constructors

Constructor
new QueueClient(redisConfig): QueueClient;

Defined in: packages/core/src/core/queue/QueueClient.ts:24

Parameters
redisConfig

RedisConfig

Returns

QueueClient

Methods

addBulk()
addBulk<T>(queueName, jobs): Promise<string[]>;

Defined in: packages/core/src/core/queue/QueueClient.ts:71

Add multiple jobs to a queue in bulk

Type Parameters
T

T

Parameters
queueName

string

jobs

JobData<T>[]

Returns

Promise<string[]>

Implementation of

IQueueClient.addBulk

addJob()
addJob<T>(
queueName,
jobName,
data,
options?): Promise<string>;

Defined in: packages/core/src/core/queue/QueueClient.ts:49

Add a single job to a queue

Type Parameters
T

T

Parameters
queueName

string

jobName

string

data

T

options?

JobOptions

Returns

Promise<string>

Implementation of

IQueueClient.addJob

close()
close(): Promise<void>;

Defined in: packages/core/src/core/queue/QueueClient.ts:146

Close all queue connections

Returns

Promise<void>

Implementation of

IQueueClient.close

getJobStatus()
getJobStatus(queueName, jobId): Promise<JobStatus>;

Defined in: packages/core/src/core/queue/QueueClient.ts:95

Get the status of a specific job

Parameters
queueName

string

jobId

string

Returns

Promise<JobStatus>

Implementation of

IQueueClient.getJobStatus

getQueueStatus()
getQueueStatus(queueName): Promise<QueueStatus>;

Defined in: packages/core/src/core/queue/QueueClient.ts:121

Get queue statistics

Parameters
queueName

string

Returns

Promise<QueueStatus>

Implementation of

IQueueClient.getQueueStatus


QueueManager

Defined in: packages/core/src/core/queue/QueueManager.ts:34

QueueManager - Wrapper for BullMQ Worker (Consumer side) Used by Worker Service to process jobs from queues

This class abstracts BullMQ implementation details. No direct BullMQ calls should be made outside this wrapper.

Constructors

Constructor
new QueueManager(redisConfig): QueueManager;

Defined in: packages/core/src/core/queue/QueueManager.ts:40

Parameters
redisConfig

RedisConfig

Returns

QueueManager

Methods

cleanQueue()
cleanQueue(
queueName,
grace?,
status?): Promise<void>;

Defined in: packages/core/src/core/queue/QueueManager.ts:306

Clean completed/failed jobs from a queue

Parameters
queueName

string

grace?

number = 0

status?

"completed" | "failed"

Returns

Promise<void>

close()
close(): Promise<void>;

Defined in: packages/core/src/core/queue/QueueManager.ts:318

Close all workers and connections

Returns

Promise<void>

getQueueStatus()
getQueueStatus(queueName): Promise<QueueStatus>;

Defined in: packages/core/src/core/queue/QueueManager.ts:248

Get queue status/statistics

Parameters
queueName

string

Returns

Promise<QueueStatus>

getWorkersStatus()
getWorkersStatus(): object[];

Defined in: packages/core/src/core/queue/QueueManager.ts:273

Get status of all registered workers

Returns

object[]

pauseQueue()
pauseQueue(queueName): Promise<void>;

Defined in: packages/core/src/core/queue/QueueManager.ts:290

Pause a queue (stops new jobs from being processed)

Parameters
queueName

string

Returns

Promise<void>

register()
register(workerClass): void;

Defined in: packages/core/src/core/queue/QueueManager.ts:72

Register a worker class decorated with

Parameters
workerClass

QueueWorkerConstructor

Returns

void

Queue Worker
resumeQueue()
resumeQueue(queueName): Promise<void>;

Defined in: packages/core/src/core/queue/QueueManager.ts:298

Resume a paused queue

Parameters
queueName

string

Returns

Promise<void>

setContainer()
setContainer(container): void;

Defined in: packages/core/src/core/queue/QueueManager.ts:47

Set the Inversify container for dependency injection

Parameters
container

Container

Returns

void

start()
start(queueName): void;

Defined in: packages/core/src/core/queue/QueueManager.ts:218

Start a specific worker by queue name

Parameters
queueName

string

Returns

void

startAll()
startAll(): void;

Defined in: packages/core/src/core/queue/QueueManager.ts:192

Start all registered workers

Returns

void

stop()
stop(queueName): Promise<void>;

Defined in: packages/core/src/core/queue/QueueManager.ts:233

Stop a specific worker by queue name

Parameters
queueName

string

Returns

Promise<void>

stopAll()
stopAll(): Promise<void>;

Defined in: packages/core/src/core/queue/QueueManager.ts:205

Stop all registered workers

Returns

Promise<void>


abstract ScheduledTask

Defined in: packages/core/src/core/scheduler/ScheduledTask.ts:35

Abstract base class for scheduled tasks. Extend this class to create a scheduled task.

Example

@Schedule('0 * * * *')
@injectable()
export class MyTask extends ScheduledTask {
@inject(INVERSITY_TYPES.LoggerFactory)
private loggerFactory: ILoggerFactory;

async run(): Promise<void> {
const logger = this.loggerFactory.create('MyTask');
logger.info('Task running...');
// Your task logic here
}

onStart(): void {
console.log('Task starting');
}

onComplete(): void {
console.log('Task completed');
}

onError(error: Error): void {
console.error('Task failed:', error);
}
}

Implements

Constructors

Constructor
new ScheduledTask(): ScheduledTask;
Returns

ScheduledTask

Methods

onComplete()
onComplete(): void;

Defined in: packages/core/src/core/scheduler/ScheduledTask.ts:54

Lifecycle hook called after task execution completes successfully. Override to add post-execution logic.

Returns

void

Implementation of

IScheduledTask.onComplete

onError()
onError(error): void;

Defined in: packages/core/src/core/scheduler/ScheduledTask.ts:64

Lifecycle hook called when task execution fails. Override to add error handling logic.

Parameters
error

Error

The error that occurred during execution

Returns

void

Implementation of

IScheduledTask.onError

onStart()
onStart(): void;

Defined in: packages/core/src/core/scheduler/ScheduledTask.ts:46

Lifecycle hook called before task execution starts. Override to add pre-execution logic.

Returns

void

Implementation of

IScheduledTask.onStart

run()
abstract run(): void | Promise<void>;

Defined in: packages/core/src/core/scheduler/ScheduledTask.ts:40

Main execution method - called on each scheduled run. Must be implemented by subclasses.

Returns

void | Promise<void>

Implementation of

IScheduledTask.run


ScheduleRegistry

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:19

Registry for managing scheduled tasks. Handles registration, lifecycle management, and status tracking of all scheduled tasks.

Implements

Constructors

Constructor
new ScheduleRegistry(): ScheduleRegistry;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:23

Returns

ScheduleRegistry

Methods

getStatus()
getStatus(): SchedulerStatus;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:150

Get overall scheduler status

Returns

SchedulerStatus

Implementation of

IScheduleRegistry.getStatus

getTask()
getTask(name): TaskInfo;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:142

Get information about a specific task

Parameters
name

string

Returns

TaskInfo

Implementation of

IScheduleRegistry.getTask

getTasks()
getTasks(): TaskInfo[];

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:135

Get information about all registered tasks

Returns

TaskInfo[]

Implementation of

IScheduleRegistry.getTasks

register()
register(taskClass): void;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:33

Register a task class with the scheduler. Reads metadata from the

Parameters
taskClass

ScheduledTaskConstructor

The task class decorated with

Returns

void

Schedule

decorator and sets up the cron job.

Schedule
Implementation of

IScheduleRegistry.register

start()
start(name): void;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:60

Initialize and start a registered task

Parameters
name

string

Returns

void

Implementation of

IScheduleRegistry.start

startAll()
startAll(): void;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:117

Start all registered tasks

Returns

void

Implementation of

IScheduleRegistry.startAll

stop()
stop(name): void;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:100

Stop a running task

Parameters
name

string

Returns

void

Implementation of

IScheduleRegistry.stop

stopAll()
stopAll(): void;

Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:126

Stop all running tasks

Returns

void

Implementation of

IScheduleRegistry.stopAll

Interfaces

IPersistenceContext

Defined in: packages/core/src/core/persistence/types.ts:28

Interface for persistence context implementations. Provides transaction management for database operations.

Example

class MyPersistenceContext implements IPersistenceContext {
async inTransaction(context) {
const connection = await this.dbManager.getConnection();
return context(connection);
}
}

Methods

inTransaction()
inTransaction(process): Promise<unknown>;

Defined in: packages/core/src/core/persistence/types.ts:34

Executes operations within a transaction context.

Parameters
process

Context<unknown>

Function receiving the connection/entity manager

Returns

Promise<unknown>

Result of the transaction


Request

Defined in: packages/core/src/core/types/api/index.ts:91

Generic API request extending Express Request.

Example

// Request with path param 'id', body with 'name', and query param 'filter'
type MyRequest = Request<{ id: string }, { name: string }, { filter: string }>;

Extends

  • Job<P, any, B, Q>

Extended by

Type Parameters

P

P = any

URL path parameters (e.g., { id: string } for route /users/:id)

B

B = any

Request body type (e.g., { name: string } for POST/PUT payloads)

Q

Q = any

Query string parameters (e.g., { page: number } for /api/users?page=1)

Properties

requestTime?
optional requestTime: string;

Defined in: packages/core/src/core/types/api/index.ts:94

Request timestamp set by middleware

user?
optional user: MiddlewareUserInfo;

Defined in: packages/core/src/core/types/api/index.ts:96

Authenticated user info set by auth middleware


Response

Defined in: packages/core/src/core/types/api/index.ts:107

Generic API response extending Express Response.

Example

type MyResponse = Response<SuccessResponse<{ users: User[] }>>;

Extends

Type Parameters

R

R = unknown

Response body type that will be sent to the client

Type Aliases

Job

type Job = any;

Variables

INVERSITY_TYPES

const INVERSITY_TYPES: object;

Defined in: packages/core/src/core/types/inversifyTypes.ts:1

Type Declaration

ApplicationPreCheck
ApplicationPreCheck: symbol;
AuthorizationContext
AuthorizationContext: symbol;
Deprecated

Use AuthStrategyRegistry instead

AuthStrategyRegistry
AuthStrategyRegistry: symbol;

Registry that collects all auth strategies via

Multi Inject
DatabaseManagerFactory
DatabaseManagerFactory: symbol;
EmailServiceFactory
EmailServiceFactory: symbol;
LoggerFactory
LoggerFactory: symbol;
PersistenceContext
PersistenceContext: symbol;
QueueClient
QueueClient: symbol;
QueueManager
QueueManager: symbol;
ScheduleRegistry
ScheduleRegistry: symbol;
SetUpDatabaseAction
SetUpDatabaseAction: symbol;

Functions

QueueWorker()

function QueueWorker(queueName, options?): <T>(target) => T;

Defined in: packages/core/src/core/decorators/queue/queueWorker.decorator.ts:24

Parameters

queueName

string

Name of the queue to consume from

options?

WorkerOptions = {}

Worker configuration options

Returns

<T>(target): T;
Type Parameters
T

T extends (...args) => unknown

Parameters
target

T

Returns

T

Queue Worker

decorator Marks a class as a queue worker handler.

Example

@QueueWorker('email-queue', { concurrency: 5 })
export class EmailWorker implements IQueueWorkerHandler {
async process(job: Job<EmailPayload>): Promise<void> {
await sendEmail(job.data)
}
}

Schedule()

function Schedule(cron, options?): ClassDecorator;

Defined in: packages/core/src/core/decorators/scheduler/schedule.decorator.ts:32

Decorator to mark a class as a scheduled task.

Parameters

cron

string

Cron expression (e.g., '0 * * * *' for every hour)

options?

ScheduleOptions

Optional configuration for the scheduled task

Returns

ClassDecorator

Examples

@Schedule('0 * * * *') // Every hour
@injectable()
export class HourlyTask extends ScheduledTask {
async run(): Promise<void> {
// Task logic
}
}
@Schedule('0 0 * * *', { timezone: 'UTC', runOnStart: true })
@injectable()
export class DailyTask extends ScheduledTask {
async run(): Promise<void> {
// Task logic
}
}

References

IQueueClient

Re-exports IQueueClient


IQueueWorkerHandler

Re-exports IQueueWorkerHandler


JobData

Re-exports JobData


JobOptions

Re-exports JobOptions


QueueWorkerConstructor

Re-exports QueueWorkerConstructor


RedisConfig

Re-exports RedisConfig


WorkerOptions

Re-exports WorkerOptions