modern-valhalla
Version:
Private npm repository server
38 lines (35 loc) • 1.19 kB
JavaScript
module.exports = function packageModel(sequelize, DataTypes) {
const Package = sequelize.define('Package', {
// name limit is 128 since npm@2.1.0 + scope
name: DataTypes.STRING(191), // eslint-disable-line new-cap
description: DataTypes.STRING(512), // eslint-disable-line new-cap
author: DataTypes.STRING(512), // eslint-disable-line new-cap
readme: DataTypes.TEXT('MEDIUMTEXT'), // eslint-disable-line new-cap
_rev: DataTypes.STRING(64), // eslint-disable-line new-cap
local: {type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false},
}, {
indexes: [
{
unique: true,
fields: ['name'],
},
{
fields: [{attribute: 'description', length: 191}],
},
{
fields: [{attribute: 'readme', length: 191}],
},
{
fields: [{attribute: 'author', length: 191}],
},
],
underscoredAll: true,
charset: 'utf8mb4',
});
Package.associate = function(models) {
Package.hasMany(models.DistTag, {onDelete: 'CASCADE'});
Package.hasMany(models.Uplink, {onDelete: 'CASCADE'});
Package.hasMany(models.Version, {onDelete: 'CASCADE'});
};
return Package;
};