1.2.2 • Published 11 months ago

sequelize-models-validator v1.2.2

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

sequelize-models-validator

An npm package for validating models.

Special thanks to Robert Stanislavovich.

Installation

The package is connected via npm.

npm i sequelize-models-validator

Or yarn:

yarn add sequelize-models-validator

Config

To get connection data, the Config package is used.
Available config options:

Separated (user):

{
  "db": {
    "dialect": "postgres",
    "host": "example.com",
    "port": 5432,
    "user": "user",
    "password": "pass",
    "database": "dbname"
  }
}

Separated (username):

{
  "db": {
    "dialect": "postgres",
    "host": "example.com",
    "port": 5432,
    "username": "user",
    "password": "pass",
    "database": "dbname"
  }
}

URI:

{
  "db": {
    "uri": "postgres://user:pass@example.com:5432/dbname"
  }
}

.sqlite file (sqlite only)

{
  "db": {
    "dialect": "sqlite",
    "storage": "path/to/database.sqlite"
  }
}

Usage

After installation you can use the command to check models:

npx validate-models ./src/models

The path to the folder with models is passed as an argument. It is important that this path must be relative to the location where the script is run from.
Also this command supports both js models and ts.

Examples of using:
image image

Check modules

The model goes through several checks, and each of them, if it finds an error, will display it in the console.
All checks and possible messages will be listed below.

  • Timestamps
    • [WARN timestamps] Model '${name}' doesn't contain '${column}'. - the model does not contain the specified column.
  • Paranoid
    • [ERROR paranoid] ${name}: paranoid is true, but timestamps not enabled. - paranoid option requires timestamps.
    • [WARN paranoid] Model '${name}' doesn't contain '${column}'. - the model does not contain the specified column.
  • Underscore
    • [WARN underscore] Model '${name}' contains field '${column}'. - the model contains a field containing _. This field does not have to be in the model itself. It may be that some other model, referring to this field by a foreign key, accesses it through snake_case.
  • Columns
    Checks if the fields in the model match the columns in the database.
    • [ERROR column] Model '${name}' miss column '${column}'. - this column is in the database, but not in the model.
    • [ERROR column] Model '${name}' has excess column '${column}'. - there is no such column in the database.
  • ServiceTables
    Checks if the table name matches the service table name (attributes, sequences, foreign_tables, etc).
    • [ERROR service-tables] Table with name ${name} is service table in database. - the specified name of the table is service.
  • DataType
    • [ERROR dataType] DataType of field ${model}/${column} is defined incorrectly. Database: ${type}. Model: ${type}. Correct type: ${type} - column types in the database and in the model don't match. Try set correct type in model.
1.2.0

11 months ago

1.1.8

11 months ago

1.2.2

11 months ago

1.2.1

11 months ago

2.0.1

11 months ago

1.1.7

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago