UNPKG

@blitzjs/cli

Version:
97 lines (96 loc) 3.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Db = exports.getDbName = void 0; const tslib_1 = require("tslib"); const command_1 = require("@oclif/command"); const logging_1 = require("next/dist/server/lib/logging"); function getDbName(connectionString) { const dbUrlParts = connectionString.split("/"); const dbName = dbUrlParts[dbUrlParts.length - 1]; return dbName; } exports.getDbName = getDbName; function runSeed(seedBasePath) { return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { require("../utils/setup-ts-node").setupTsnode(); const projectRoot = require("next/dist/server/lib/utils").getProjectRootSync(); const seedPath = require("path").join(projectRoot, seedBasePath); const dbPath = require("path").join(projectRoot, "db/index"); logging_1.log.branded("Seeding database"); let spinner = logging_1.log.spinner("Loading seeds\n").start(); let seeds; try { seeds = require(seedPath).default; if (seeds === undefined) { throw new Error(`Couldn't find default export from ${seedBasePath}`); } } catch (err) { (0, logging_1.baseLogger)({ displayDateTime: false }).error(`Couldn't import default from ${seedBasePath}`); throw err; } spinner.succeed(); try { console.log("\n" + logging_1.log.withCaret("Seeding...")); seeds && (yield seeds()); } catch (err) { (0, logging_1.baseLogger)().prettyError(err); (0, logging_1.baseLogger)({ displayDateTime: false }).error(`Couldn't run imported function, are you sure it's a function?`); throw err; } const db = require(dbPath).default; yield db.$disconnect(); logging_1.log.success("Done seeding"); }); } class Db extends command_1.Command { run() { return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { process.env.CLI_COMMAND_DB = "true"; const { args, flags } = this.parse(Db); const command = args["command"]; if (command === "help") { return Db.run(["--help"]); } if (command === "seed") { try { return yield runSeed(flags.file); } catch (err) { (0, logging_1.baseLogger)({ displayDateTime: false }).error("Could not seed database:"); (0, logging_1.baseLogger)().prettyError(err); process.exit(1); } } this.log("\nThat command is no longer available.."); this.log("For any prisma related commands, use the `blitz prisma` command instead:"); this.log("\n `blitz prisma COMMAND`\n"); }); } } exports.Db = Db; Db.description = `Run database commands ${require("chalk").bold("seed")} Generates seeded data in database via Prisma. `; Db.args = [ { name: "command", description: "Run specific db command", required: true, default: "help", }, ]; Db.flags = { help: command_1.flags.help({ char: "h" }), file: command_1.flags.string({ default: "db/seeds", char: "f", description: `Path to the seeds file, relative to the project root folder. Examples: db/seeds, db/seeds.ts, db/seeds/index.ts, db/my-seeds`, }), env: command_1.flags.string({ char: "e", description: "Set app environment name", }), }; Db.strict = false;