@gameroom/cli
Version:
A command line tool for Gameroom
25 lines (23 loc) • 911 B
JavaScript
const pluralize = require('pluralize'),
{ models } = require('@gameroom/kit'),
getAll = require('./getAll'),
grGreen = require('./grGreen')
module.exports = async (object, spinner) => {
const resource = object.constructor.schema.resourceName
const relatables = {}
Object.keys(models).map(k => {
if (k === 'Changelog') return
const M = models[k]
for (const a of Object.keys(M.schema.attributes)) if (a.includes(`${resource}_id`) || a.includes('able_id')) return relatables[M.schema.resourceName] = { model: M, key: a }
})
const children = {}
for (const k of Object.keys(relatables)) {
const { model, key } = relatables[k]
const r = await getAll(model, { filter: { key, value: object.id } })
if (r.length > 0) {
children[k] = r
if (spinner) spinner.info(`has ${r.length} ${grGreen(r.length === 1 ? pluralize.singular(k) : k)}`)
}
}
return children
}