MangoJS
Namespaces
- Applications
- Authentication
- Builders
- Cache
Clients- Container
- DatabaseManager
Databases- Decorators
- Errors
- Integrations
- Loggers
mappers- Middlewares
- Persistence
- Queue
- Scheduler
- Types
- Utils
Classes
abstract BaseRepository
abstract BaseRepositoryDefined 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
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
Returns
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
Returns
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
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?
Returns
Promise<string>
Implementation of
close()
close(): Promise<void>;
Defined in: packages/core/src/core/queue/QueueClient.ts:146
Close all queue connections
Returns
Promise<void>
Implementation of
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
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
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
Returns
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
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
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
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
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
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
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
Methods
getStatus()
getStatus(): SchedulerStatus;
Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:150
Get overall scheduler status
Returns
Implementation of
getTask()
getTask(name): TaskInfo;
Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:142
Get information about a specific task
Parameters
name
string
Returns
Implementation of
getTasks()
getTasks(): TaskInfo[];
Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:135
Get information about all registered tasks
Returns
TaskInfo[]
Implementation of
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
The task class decorated with
Returns
void
Schedule
decorator and sets up the cron job.
Schedule
Implementation of
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
startAll()
startAll(): void;
Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:117
Start all registered tasks
Returns
void
Implementation of
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
stopAll()
stopAll(): void;
Defined in: packages/core/src/core/scheduler/ScheduleRegistry.ts:126
Stop all running tasks
Returns
void
Implementation of
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
Job<R>
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?
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