schwifty
Version:
A hapi plugin integrating Objection ORM
24 lines (17 loc) • 600 B
JavaScript
;
const Joi = require('@hapi/joi');
const internals = {};
internals.model = Joi.func().class();
internals.configBase = Joi.object({
knex: [Joi.object(), Joi.func()], // Either a knex config (object) or a knex instance (func)
migrationsDir: Joi.string(),
models: Joi.array().items(internals.model)
});
exports.plugin = internals.configBase.keys({
teardownOnStop: Joi.boolean(),
migrateOnStart: Joi.boolean().truthy('latest').allow('rollback')
});
exports.schwifty = Joi.alternatives([
Joi.array().items(internals.model).single(),
internals.configBase
]);