@reldens/storage v0.52.0
Reldens - Storage
About this package
This package provides standardized database drivers for Reldens projects. It ensures consistent data access methods across different database types and ORM implementations.
Features
ORM Support
- Objection JS (via Knex) - For SQL databases (recommended)
- Mikro-ORM - For MongoDB/NoSQL support
- Prisma - Modern database toolkit
Entity Management
- Standardized CRUD operations
- Automatic entity generation from database schemas
- Type mapping between database and JavaScript
- Foreign key relationship handling
- ENUM field support with formatted values
CLI Tools
Generate entity files directly from your database structure:
npx reldens-storage generateEntities --user=dbuser --pass=dbpass --database=dbname --driver=objection-jsOptions:
--user- Database username--pass- Database password--host- Database host (default: localhost)--port- Database port (default: 3306)--database- Database name--driver- ORM driver (objection-js|mikro-orm)--client- Database client (mysql|mysql2|mongodb)--path- Project path for output files
Generate Prisma schema for Prisma database:
npx reldens-storage-prisma --user=dbuser --pass=dbpass --database=dbnameOptions:
--user- Database username--pass- Database password--host- Database host (default: localhost)--port- Database port (default: 3306)--database- Database name--client- Database client (mysql|mysql2|postgresql|mongodb)--path- Project path for output files
Usage Examples
SQL with Objection JS
const { ObjectionJsDataServer } = require('@reldens/storage');
const server = new ObjectionJsDataServer({
client: 'mysql2',
config: {
user: 'reldens',
password: 'reldens',
database: 'reldens',
host: 'localhost',
port: 3306
}
});
await server.connect();
const entities = server.generateEntities();MongoDB with Mikro-ORM
const { MikroOrmDataServer } = require('@reldens/storage');
const server = new MikroOrmDataServer({
client: 'mongodb',
config: {
user: 'reldens',
password: 'reldens',
database: 'reldens',
host: 'localhost',
port: 27017
},
connectStringOptions: 'authSource=reldens&readPreference=primary&ssl=false',
rawEntities: yourEntities
});
await server.connect();
const entities = server.generateEntities();Using Prisma
First, generate your Prisma schema:
npx reldens-storage-prisma --user=dbuser --pass=dbpass --database=dbnameThen, use the PrismaDataServer in your code:
const { PrismaDataServer } = require('@reldens/storage');
const server = new PrismaDataServer({
client: 'mysql',
config: {
user: 'reldens',
password: 'reldens',
database: 'reldens',
host: 'localhost',
port: 3306
},
rawEntities: yourEntities
});
await server.connect();
const entities = server.generateEntities();Note: The PrismaDataServer requires the Prisma schema to be generated first. Make sure to run the reldens-storage-prisma command before using PrismaDataServer.
Custom Drivers
You can create custom storage drivers by extending the base classes:
- Extend
BaseDataServerandBaseDriver - Implement all required methods
- Pass your custom server instance to Reldens ServerManager:
const { ServerManager } = require('@reldens/server');
const YourCustomDriver = require('./your-custom-driver');
const customDriver = new YourCustomDriver(options);
const appServer = new ServerManager(serverConfig, eventsManager, customDriver);Links
Reldens
By DwDeveloper
7 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
1 year ago
7 months ago
7 months ago
7 months ago
7 months ago
1 year ago
7 months ago
7 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
