1
0
mirror of synced 2025-12-19 18:11:23 -05:00
Files
blitz/packages/cli/src/commands/console.ts
Justin Hall b3814fc7c0 Standardize prettier options across all Blitz code bases (#703)
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-06-19 09:33:57 +07:00

41 lines
1.2 KiB
TypeScript

import {runRepl} from "@blitzjs/repl"
import {Command} from "@oclif/command"
import path from "path"
import fs from "fs"
import pkgDir from "pkg-dir"
import {log} from "@blitzjs/display"
import chalk from "chalk"
import {setupTsnode} from "../utils/setup-ts-node"
import {runPrismaGeneration} from "./db"
const projectRoot = pkgDir.sync() || process.cwd()
const isTypescript = fs.existsSync(path.join(projectRoot, "tsconfig.json"))
export class Console extends Command {
static description = "Run the Blitz console REPL"
static aliases = ["c"]
static replOptions = {
prompt: "⚡️ > ",
useColors: true,
}
async run() {
log.branded("You have entered the Blitz console")
console.log(chalk.yellow("Tips: - Exit by typing .exit or pressing Ctrl-D"))
console.log(chalk.yellow(" - Use your db like this: await db.project.findMany()"))
console.log(chalk.yellow(" - Use your queries/mutations like this: await getProjects({})"))
const spinner = log.spinner("Loading your code").start()
if (isTypescript) {
setupTsnode()
}
await runPrismaGeneration({silent: true})
spinner.succeed()
runRepl(Console.replOptions)
}
}