npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sequelize-models-validator

v2.1.1

Published

Package to checking sequelize models

Downloads

21

Readme

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:[email protected]: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.