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

tabla-model

v1.4.0

Published

crear representaciones de tablas sql en modelos de datos

Downloads

3

Readme

tabla-model

NPM Version NPM Downloads Node.js Version

Tabla de contenidos

install

tabla-model es un modulo de Node.js valido registrado en npm registry.

Para instalar use npm install command:

$ npm install tabla-model

introduccion

tabla-model crear representaciones de tablas sql en modelos de datos javasript y viseversa.

uso

para usar tabla-model solo es neseario instancear un objeto de la clase principal y agregar los datos

Ejemplo:

// file ./model/test1.js
const model=require("tabla-model")
const test1=new model("test3",[
    {
        name:"id",
        type:"int",
        primary:true,
        autoincrement:true
    },
    {
        name:"row1",
        type:"text"
    },
    {
        name:"row2",
        type:"int",
    },
    {
        name:"row3",
        type:"date",
    }
])
test1.foreingKey({ // se agrega las claves foraneas
    key:"row2",
    reference:"test4",
    keyReference:"id_key2",
    onUpdate:'CASCADE',
    onDelete:'NO ACTION',
    // match: ' '
})
console.log(test1.sql())

sqlModel#constructor(tabla,config)

Constructor de la clase

  • tabla {string}: nombre de la tabla o sentencia sql para crear una tabla y se usaran los campos y claves foraneas de la sentencia
  • config {object|array}: si el primer parametro es el nombre de una tabla este sera los datos de el modelo {colums:Array, foreingKey:Array} si es un array se tomara como las columnas en caso de que el primer parametro sea un sentencia sql CREATE TABLE este sera el caracter de escape sql
const model=require("tabla-model")
const test1=new model("test3",{
    colums:[
        {
            name:"id",
            type:"int",
            primary:true,
            autoincrement:true
        },
        {
            name:"row1",
            type:"text"
        },
        {
            name:"row2",
            type:"int",
        },
        {
            name:"row3",
            type:"date",
        }
    ],
    foreingKey:[
        { // se agrega las claves foraneas
            key:"row2",
            reference:"test4",
            keyReference:"id_key2",
            onUpdate:'CASCADE',
            onDelete:'NO ACTION',
            // match: ' '
        }
    ]
})
const model=require("tabla-model")
const test1=new model(`create table test1(
    id int not null AUTO_INCREMENT,
    row1 text,
    row2 int,
    row3 date,
    primary key (id),
    foreing key row2 references test4(id_key2)
    on update cascade
    on delete no action
    )`)

sqlModel#colum(coll)

Agrega una columna al modelo

  • coll {object}: objeto con los datos de la columna, este objeto debe contar con los siguientes atributos
{
    name:String,//nombre de la columna
    type:String,// tipo de dato de la columna segun el motor de base de datos
    defaultNull:Boolean,//(opcional) true si el valor por defecto puede ser null
    primary:Boolean,//(opcional) true si es una clave primaria
    unique:Boolean,//(opcional) true si es una indice unico
    defaul:String//(opcional)  valor por defecto
}

sqlModel#foreingKey(key)

Agrega una clave foraanea a el modelo

  • key {object}: objeto con los datos clave foranea, este objeto debe contar con los siguientes atributos
{
    key:String|Array,// nombre del campo para la clave foranea  
    reference:String,// nombre de la tabla a la que hace referencia
    keyReference:String|Array,//nombre del campo en la table de referencia
    match:String,//
    onDelete:String,//indica que acciones se deben realizar en la tabla actual
    // si se borra una fila en la tabla referenciada
    onUpdate:String//indica que acciones se deben realizar en la tabla actual
    // si se edita una fila en la tabla referenciada
}

sqlModel#insert(...params)

Agrega datos a para la inicializacion de la tabla

  • ...params: se pueden agregar parametro a parametro o en un array en un unico parametro

sqlModel#method(name,callback)

Agrega un metodo al modelo de la tabla

  • name {string}: nombre del metodo
  • callback {function}: funcion correspondiente

sqlModel#getData()

Retorna un objeto con todos los datos agregados al modelo en el formato *

{
    tabla:String,// nombre de la tabla
    colums:Array,// columnas de la tabla
    foreingKey:Array,// claves foranes de la tabla
    init:Array,// datos de inicializacion
    methods:Object// metodos agregados al modelo
}

sqlModel#sql(config)

Retorna el sql nesesario para crear la tabla del modelo

  • config {object}: configuracion para el helper {escapeChar:String, reserveIdentifiers:Array, ar_aliased_tables:String, dbprefix:String, escapeString:String}
const model=require("tabla-model")
const test1=new model("test3",{
    colums:[
        {
            name:"id",
            type:"int",
            primary:true,
            autoincrement:true
        },
        {
            name:"row1",
            type:"text"
        },
        {
            name:"row2",
            type:"int",
        },
        {
            name:"row3",
            type:"date",
        }
    ],
    foreingKey:[
        { // se agrega las claves foraneas
            key:"row2",
            reference:"test4",
            keyReference:"id_key2",
            onUpdate:'CASCADE',
            onDelete:'NO ACTION',
            // match: ' '
        }
    ]
})
console.log(test1.sql({escapeString:"`"}))

sqlModel#saveModel(file)

Crea un archivo javascript con los datos del modelo para ser usado

  • file: Nombre del fichero donde sera guardado el modelo