lerna: split up bulk of packages

This commit is contained in:
41666 2019-04-02 23:10:45 -05:00
parent cb0b1d2410
commit 47a2e5694e
No known key found for this signature in database
GPG key ID: BC51D07640DC10AF
90 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,14 @@
// @flow
import type Sequelize, { DataTypes as DT } from 'sequelize'
export default (sql: Sequelize, DataTypes: DT) => {
return sql.define('auth_challenge', {
userId: DataTypes.TEXT,
issuedAt: DataTypes.DATE,
type: DataTypes.ENUM('dm', 'other'),
human: { type: DataTypes.TEXT, unique: true },
magic: { type: DataTypes.TEXT, unique: true }
}, {
indexes: [ { fields: ['userId'] } ]
})
}

View file

@ -0,0 +1,33 @@
// @flow
import type Sequelize, { DataTypes as DT } from 'sequelize'
export type Category = {
hidden: boolean,
name: string,
roles: string[],
_roles?: any,
type: 'single' | 'multi' | string
}
export type ServerModel = {
id: string,
categories: {
[uuid: string]: Category
},
message: string
}
export default (sql: Sequelize, DataTypes: DT) => {
return sql.define('server', {
id: { // discord snowflake
type: DataTypes.TEXT,
primaryKey: true
},
categories: {
type: DataTypes.JSON
},
message: {
type: DataTypes.TEXT
}
})
}

View file

@ -0,0 +1,7 @@
module.exports = (sequelize, DataTypes) => {
return sequelize.define('session', {
id: { type: DataTypes.TEXT, primaryKey: true },
maxAge: DataTypes.BIGINT,
data: DataTypes.JSONB
})
}

View file

@ -0,0 +1,47 @@
// @flow
import logger from '../logger'
import glob from 'glob'
import path from 'path'
import type Sequelize, { Model } from 'sequelize'
const log = logger(__filename)
export type Models = {
[modelName: string]: Model<any> & {
__associations: (models: Models) => void,
__instanceMethods: (model: Model<any>) => void,
}
}
export default (sql: Sequelize): Models => {
const models: Models = {}
const modelFiles = glob.sync('./models/**/!(index).js')
log.debug('found models', modelFiles)
modelFiles.forEach((v) => {
let name = path.basename(v).replace('.js', '')
if (v === './models/index.js') {
log.debug('index.js hit, skipped')
return
}
try {
log.debug('importing..', v.replace('models/', ''))
let model = sql.import(v.replace('models/', ''))
models[name] = model
} catch (err) {
log.fatal('error importing model ' + v, err)
process.exit(-1)
}
})
Object.keys(models).forEach((v) => {
if (models[v].hasOwnProperty('__associations')) {
models[v].__associations(models)
}
if (models[v].hasOwnProperty('__instanceMethods')) {
models[v].__instanceMethods(models[v])
}
})
return models
}