waveorb
Version:
Waveorb Javascript web app development framework
35 lines (31 loc) • 846 B
JavaScript
const lodash = require('lodash')
const validate = require('./validate.js')
const i18n = require('./i18n.js')
module.exports = function validator({ app, db, lang }) {
if (!app) {
app = global.app || global._?.app || {}
}
if (!db) {
db = app.objects?.db || global.db || global._?.db || {}
}
if (!lang) {
lang = app.config?.env?.lang || 'en'
}
const locales = lodash.get(app, 'locales') || {}
const t = i18n.t({ locales, lang })
return async function (validation, data) {
const $ = { app, db, lang, t, params: {}, data: {} }
if (typeof data.query == 'object') {
$.params.query = data.query
}
if (typeof data.values == 'object') {
$.params.values = data.values
}
try {
await validate($)(validation, data)
} catch (e) {
return e.data || {}
}
return {}
}
}