UNPKG

@puls-atlas/cli

Version:

The Puls Atlas CLI tool for managing Atlas projects

59 lines 1.62 kB
import chalk from 'chalk'; import inquirer from 'inquirer'; import { Firestore } from '@google-cloud/firestore'; import { logger, getFirebaserc } from './../../utils/index.js'; const DEFAULT_ROLES = [{ id: 'admin', data: { value: 'admin', label: { 'nl-BE': 'Beheerder', 'en-US': 'Administrator' } } }, { id: 'user', data: { value: 'user', label: { 'nl-BE': 'Gebruiker', 'en-US': 'User' } } }]; const confirmCreate = async projectId => { const { create } = await inquirer.prompt([{ type: 'confirm', name: 'create', default: true, message: 'Do you want to add the default `admin` and `user` role to the `roles` collection ' + `in project ${chalk.yellow(projectId)}?` }]); if (create) { const spinner = logger.spinner('Adding default roles...'); const firestore = new Firestore({ projectId }); const roles = firestore.collection('roles'); const batch = firestore.batch(); DEFAULT_ROLES.forEach(role => { batch.set(roles.doc(role.id), role.data); }); return batch.commit().then(() => { spinner.succeed('Default roles added successfully.'); }).catch(() => { spinner.fail('Failed to add default roles. You can add them manually.'); }); } return Promise.resolve(); }; export default async () => { const firebaserc = getFirebaserc(); if (!firebaserc.projects) { return Promise.reject('No projects found in .firebaserc'); } await confirmCreate(firebaserc.projects.development); await confirmCreate(firebaserc.projects.production); return Promise.resolve(); };