UNPKG

stackpress

Version:

Incept is a content management framework.

25 lines (24 loc) 916 B
import { sequence } from '../sql/helpers.js'; export default async function purge(server, database, cli) { const client = server.plugin('client') || {}; const models = Object.values(client.model); const queries = []; const order = sequence(models.map(model => model.config)); for (const model of order) { const exists = models.find(map => map.config.name === model.name); if (exists) { queries.push(database.dialect.truncate(model.snake, true)); } } if (queries.length) { cli?.verbose && cli.control.system('Purging database...'); await database.transaction(async (connection) => { for (const query of queries) { cli?.verbose && cli.control.info(query.query); await connection.query(query); } }); cli?.verbose && cli.control.success('Database Purged.'); } } ;