UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

25 lines (23 loc) 911 B
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 }