@mayajs/sql
TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published

SQL Decorators and Modules

Installation

  • Install Mayajs Sql plugin
npm i @mayajs/sql
  • Install Sequelize. Mayajs uses sequelize as an ORM.
npm install --save sequelize

You'll also have to manually install the driver for your database of choice:

# One of the following:
$ npm install --save pg pg-hstore # Postgres
$ npm install --save mysql2
$ npm install --save mariadb
$ npm install --save sqlite3
$ npm install --save tedious # Microsoft SQL Server

Sql

This will creates a MySql Database that will be consume on AppModule class. It accepts an object of settings for mysql connection. This database will be consume by Mayajs in compilation and automatically connects the database when the start function is called.

Import

import { Sql } from "@mayajs/sql";

Implementation

Sql({
  name: "database-name",
  options: {
    database: "sql-database",
    username: "sql-username",
    password: "sql-password",
    options: {
      host: "localhost",
      dialect: "mysql" /* one of 'mariadb' | 'postgres' | 'mssql' */,
    },
  },
  schemas: [
    sample, // Sequelize Schema here
  ],
});

Adding Sql on App Decorator

import Sql from "./databases/sql";

@App({
  databases: [Sql],
})
export class AppModule {}

Schema

An interface for table fields. Can be used when creating tables for type checking. Every Schema is an object of fields. Each field has its type and options.

Import

import { Schema } from "@mayajs/sql";

Implementation

import { DataTypes } from "sequelize";
import { SqlModel } from "@mayajs/sql";

const schema = {
  name: {
    type: DataTypes.STRING,
    allowNull: false,
  },
};

export default SqlModel("User", schema, {});

Examples

Check out live examples for more info.

Collaborating

See collaborating guides here.

People

Author and maintainer Mac Ignacio

Package Sidebar

Install

npm i @mayajs/sql

Weekly Downloads

1

Version

0.4.0

License

MIT

Unpacked Size

11.4 kB

Total Files

10

Last publish

Collaborators

  • mack_ignacio