| 70 | }); |
| 71 | |
| 72 | const start = async () => { |
| 73 | try { |
| 74 | // Run prisma generate and migrate commands before starting the server |
| 75 | await new Promise<void>((resolve, reject) => { |
| 76 | exec("npx prisma migrate deploy", (err, stdout, stderr) => { |
| 77 | if (err) { |
| 78 | console.error(err); |
| 79 | reject(err); |
| 80 | } |
| 81 | console.log(stdout); |
| 82 | console.error(stderr); |
| 83 | |
| 84 | exec("npx prisma generate", (err, stdout, stderr) => { |
| 85 | if (err) { |
| 86 | console.error(err); |
| 87 | reject(err); |
| 88 | } |
| 89 | console.log(stdout); |
| 90 | console.error(stderr); |
| 91 | }); |
| 92 | |
| 93 | exec("npx prisma db seed", (err, stdout, stderr) => { |
| 94 | if (err) { |
| 95 | console.error(err); |
| 96 | reject(err); |
| 97 | } |
| 98 | console.log(stdout); |
| 99 | console.error(stderr); |
| 100 | resolve(); |
| 101 | }); |
| 102 | }); |
| 103 | }); |
| 104 | |
| 105 | // connect to database |
| 106 | await prisma.$connect(); |
| 107 | server.log.info("Connected to Prisma"); |
| 108 | |
| 109 | const port = 5003; |
| 110 | |
| 111 | server.listen( |
| 112 | { port: Number(port), host: "0.0.0.0" }, |
| 113 | async (err, address) => { |
| 114 | if (err) { |
| 115 | console.error(err); |
| 116 | process.exit(1); |
| 117 | } |
| 118 | |
| 119 | const client = track(); |
| 120 | |
| 121 | client.capture({ |
| 122 | event: "server_started", |
| 123 | distinctId: "uuid", |
| 124 | }); |
| 125 | |
| 126 | client.shutdownAsync(); |
| 127 | console.info(`Server listening on ${address}`); |
| 128 | } |
| 129 | ); |