repl.ts 932 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import type { REPLServer } from 'node:repl';
  2. import repl from 'node:repl';
  3. import mongoose from 'mongoose';
  4. import { getMongoUri, mongoOptions } from '~/server/util/mongoose-utils';
  5. const setupMongoose = async(replServer: REPLServer) => {
  6. mongoose.Promise = global.Promise;
  7. await mongoose.connect(getMongoUri(), mongoOptions)
  8. .then(() => {
  9. replServer.context.db = mongoose.connection.db;
  10. });
  11. replServer.context.mongoose = mongoose;
  12. };
  13. const setupModels = async(replServer: REPLServer) => { // eslint-disable-line @typescript-eslint/no-unused-vars
  14. const models = require('./models');
  15. Object.keys(models).forEach((modelName) => {
  16. global[modelName] = models[modelName];
  17. });
  18. };
  19. const start = async() => {
  20. const replServer = repl.start({
  21. prompt: `${process.env.NODE_ENV} > `,
  22. ignoreUndefined: true,
  23. });
  24. await setupMongoose(replServer);
  25. await setupModels(replServer);
  26. };
  27. start();