0.52.0 • Published 7 months ago

@reldens/storage v0.52.0

Weekly downloads
28
License
MIT
Repository
github
Last release
7 months ago

Reldens - GitHub - Release

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-js

Options:

  • --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=dbname

Options:

  • --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=dbname

Then, 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:

  1. Extend BaseDataServer and BaseDriver
  2. Implement all required methods
  3. 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
0.43.0

7 months ago

0.36.0

7 months ago

0.32.0

8 months ago

0.51.0

7 months ago

0.48.0

7 months ago

0.44.0

7 months ago

0.40.0

7 months ago

0.37.0

7 months ago

0.33.0

8 months ago

0.52.0

7 months ago

0.49.0

7 months ago

0.45.0

7 months ago

0.41.0

7 months ago

0.38.0

7 months ago

0.34.0

8 months ago

0.30.0

1 year ago

0.46.0

7 months ago

0.42.0

7 months ago

0.39.0

7 months ago

0.35.0

7 months ago

0.31.0

1 year ago

0.50.0

7 months ago

0.47.0

7 months ago

0.29.0

1 year ago

0.28.0

1 year ago

0.27.0

1 year ago

0.25.0

1 year ago

0.26.0

1 year ago

0.24.0

2 years ago

0.23.0

2 years ago

0.21.0

2 years ago

0.22.0

2 years ago

0.20.0

2 years ago

0.19.0

2 years ago

0.17.0

2 years ago

0.16.0

2 years ago

0.18.0

2 years ago

0.15.0

3 years ago

0.14.0

3 years ago

0.13.0

3 years ago

0.12.1-beta.1

3 years ago

0.12.1

3 years ago

0.12.2

3 years ago

0.12.0

3 years ago

0.10.0-beta.27

4 years ago

0.10.0-beta.29

4 years ago

0.10.0-beta.28

4 years ago

0.11.0

4 years ago

0.10.0-beta.38

4 years ago

0.10.0-beta.37

4 years ago

0.10.0-beta.39

4 years ago

0.10.0-beta.34

4 years ago

0.10.0-beta.33

4 years ago

0.10.0-beta.36

4 years ago

0.10.0-beta.35

4 years ago

0.10.0-beta.30

4 years ago

0.10.0-beta.32

4 years ago

0.10.0-beta.31

4 years ago

0.10.0-beta.40

4 years ago

0.10.0-beta.26

4 years ago

0.10.0-beta.23

4 years ago

0.10.0-beta.22

4 years ago

0.10.0-beta.25

4 years ago

0.10.0-beta.24

4 years ago

0.5.0-beta.11

4 years ago

0.5.0-beta.12

4 years ago

0.5.0-beta.10

4 years ago

0.5.0-beta.13

4 years ago

0.10.0-beta.21

4 years ago

0.10.0-beta.20

4 years ago

0.5.0-beta.9

4 years ago

0.5.0-beta.8

4 years ago

0.5.0-beta.7

4 years ago

0.5.0-beta.6

4 years ago

0.5.0-beta.5

4 years ago

0.5.0-beta.4

4 years ago

0.5.0-beta.3

4 years ago

0.5.0-beta.1

4 years ago

0.5.0-beta.2

4 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.5

5 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago