mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-06 07:28:53 -05:00
cleanup: Remove old mock server-related files and Drizzle ORM configuration
This commit is contained in:
parent
039e593e8e
commit
11d57a1215
4
frontend-tools/video-editor/.gitignore
vendored
4
frontend-tools/video-editor/.gitignore
vendored
@ -6,3 +6,7 @@ vite.config.ts.*
|
|||||||
*.tar.gz
|
*.tar.gz
|
||||||
yt.readme.md
|
yt.readme.md
|
||||||
client/public/videos/sample-video.mp4
|
client/public/videos/sample-video.mp4
|
||||||
|
client/public/videos/sample-video-30s.mp4
|
||||||
|
client/public/videos/sample-video-37s.mp4
|
||||||
|
videos/sample-video-37s.mp4
|
||||||
|
client/public/videos/sample-video-30s.mp4
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
import { defineConfig } from "drizzle-kit";
|
|
||||||
|
|
||||||
if (!process.env.DATABASE_URL) {
|
|
||||||
throw new Error("DATABASE_URL, ensure the database is provisioned");
|
|
||||||
}
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
out: "./migrations",
|
|
||||||
schema: "./shared/schema.ts",
|
|
||||||
dialect: "postgresql",
|
|
||||||
dbCredentials: {
|
|
||||||
url: process.env.DATABASE_URL,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@ -4,20 +4,14 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "tsx server/index.ts",
|
"dev": "vite",
|
||||||
"dev:frontend": "vite",
|
|
||||||
"build": "vite build && esbuild server/index.ts --platform=node --packages=external --bundle --format=esm --outdir=dist",
|
|
||||||
"start": "NODE_ENV=production node dist/index.js",
|
"start": "NODE_ENV=production node dist/index.js",
|
||||||
"check": "tsc",
|
"check": "tsc",
|
||||||
"db:push": "drizzle-kit push",
|
|
||||||
"build:django": "vite build --config vite.video-editor.config.ts --outDir ../../../static/video_editor"
|
"build:django": "vite build --config vite.video-editor.config.ts --outDir ../../../static/video_editor"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@neondatabase/serverless": "^0.10.4",
|
|
||||||
"@tanstack/react-query": "^5.74.4",
|
"@tanstack/react-query": "^5.74.4",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"drizzle-orm": "^0.39.1",
|
|
||||||
"drizzle-zod": "^0.7.0",
|
|
||||||
"express": "^4.21.2",
|
"express": "^4.21.2",
|
||||||
"express-session": "^1.18.1",
|
"express-session": "^1.18.1",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
@ -39,7 +33,6 @@
|
|||||||
"@types/ws": "^8.5.13",
|
"@types/ws": "^8.5.13",
|
||||||
"@vitejs/plugin-react": "^4.4.1",
|
"@vitejs/plugin-react": "^4.4.1",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"drizzle-kit": "^0.30.6",
|
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.47",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
|
|||||||
@ -1,70 +0,0 @@
|
|||||||
import express, { type Request, Response, NextFunction } from "express";
|
|
||||||
import { registerRoutes } from "./routes";
|
|
||||||
import { setupVite, serveStatic, log } from "./vite";
|
|
||||||
|
|
||||||
const app = express();
|
|
||||||
app.use(express.json());
|
|
||||||
app.use(express.urlencoded({ extended: false }));
|
|
||||||
|
|
||||||
app.use((req, res, next) => {
|
|
||||||
const start = Date.now();
|
|
||||||
const path = req.path;
|
|
||||||
let capturedJsonResponse: Record<string, any> | undefined = undefined;
|
|
||||||
|
|
||||||
const originalResJson = res.json;
|
|
||||||
res.json = function (bodyJson, ...args) {
|
|
||||||
capturedJsonResponse = bodyJson;
|
|
||||||
return originalResJson.apply(res, [bodyJson, ...args]);
|
|
||||||
};
|
|
||||||
|
|
||||||
res.on("finish", () => {
|
|
||||||
const duration = Date.now() - start;
|
|
||||||
if (path.startsWith("/api")) {
|
|
||||||
let logLine = `${req.method} ${path} ${res.statusCode} in ${duration}ms`;
|
|
||||||
if (capturedJsonResponse) {
|
|
||||||
logLine += ` :: ${JSON.stringify(capturedJsonResponse)}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (logLine.length > 80) {
|
|
||||||
logLine = logLine.slice(0, 79) + "…";
|
|
||||||
}
|
|
||||||
|
|
||||||
log(logLine);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
const server = await registerRoutes(app);
|
|
||||||
|
|
||||||
app.use((err: any, _req: Request, res: Response, _next: NextFunction) => {
|
|
||||||
const status = err.status || err.statusCode || 500;
|
|
||||||
const message = err.message || "Internal Server Error";
|
|
||||||
|
|
||||||
res.status(status).json({ message });
|
|
||||||
throw err;
|
|
||||||
});
|
|
||||||
|
|
||||||
// importantly only setup vite in development and after
|
|
||||||
// setting up all the other routes so the catch-all route
|
|
||||||
// doesn't interfere with the other routes
|
|
||||||
if (app.get("env") === "development") {
|
|
||||||
await setupVite(app, server);
|
|
||||||
} else {
|
|
||||||
serveStatic(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ALWAYS serve the app on port 5000
|
|
||||||
// this serves both the API and the client.
|
|
||||||
// It is the only port that is not firewalled.
|
|
||||||
const port = 5000;
|
|
||||||
server.listen({
|
|
||||||
port,
|
|
||||||
host: "0.0.0.0",
|
|
||||||
reusePort: true,
|
|
||||||
}, () => {
|
|
||||||
log(`serving on port ${port}`);
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
import type { Express } from "express";
|
|
||||||
import { createServer, type Server } from "http";
|
|
||||||
import { storage } from "./storage";
|
|
||||||
|
|
||||||
export async function registerRoutes(app: Express): Promise<Server> {
|
|
||||||
// put application routes here
|
|
||||||
// prefix all routes with /api
|
|
||||||
|
|
||||||
// use storage to perform CRUD operations on the storage interface
|
|
||||||
// e.g. storage.insertUser(user) or storage.getUserByUsername(username)
|
|
||||||
|
|
||||||
const httpServer = createServer(app);
|
|
||||||
|
|
||||||
return httpServer;
|
|
||||||
}
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
import { users, type User, type InsertUser } from "@shared/schema";
|
|
||||||
|
|
||||||
// modify the interface with any CRUD methods
|
|
||||||
// you might need
|
|
||||||
|
|
||||||
export interface IStorage {
|
|
||||||
getUser(id: number): Promise<User | undefined>;
|
|
||||||
getUserByUsername(username: string): Promise<User | undefined>;
|
|
||||||
createUser(user: InsertUser): Promise<User>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class MemStorage implements IStorage {
|
|
||||||
private users: Map<number, User>;
|
|
||||||
currentId: number;
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
this.users = new Map();
|
|
||||||
this.currentId = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
async getUser(id: number): Promise<User | undefined> {
|
|
||||||
return this.users.get(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
async getUserByUsername(username: string): Promise<User | undefined> {
|
|
||||||
return Array.from(this.users.values()).find(
|
|
||||||
(user) => user.username === username,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async createUser(insertUser: InsertUser): Promise<User> {
|
|
||||||
const id = this.currentId++;
|
|
||||||
const user: User = { ...insertUser, id };
|
|
||||||
this.users.set(id, user);
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const storage = new MemStorage();
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
import express, { type Express } from "express";
|
|
||||||
import fs from "fs";
|
|
||||||
import path from "path";
|
|
||||||
import { createServer as createViteServer, createLogger } from "vite";
|
|
||||||
import { type Server } from "http";
|
|
||||||
import viteConfig from "../vite.config";
|
|
||||||
import { nanoid } from "nanoid";
|
|
||||||
|
|
||||||
const viteLogger = createLogger();
|
|
||||||
|
|
||||||
export function log(message: string, source = "express") {
|
|
||||||
const formattedTime = new Date().toLocaleTimeString("en-US", {
|
|
||||||
hour: "numeric",
|
|
||||||
minute: "2-digit",
|
|
||||||
second: "2-digit",
|
|
||||||
hour12: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(`${formattedTime} [${source}] ${message}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function setupVite(app: Express, server: Server) {
|
|
||||||
const serverOptions = {
|
|
||||||
middlewareMode: true,
|
|
||||||
hmr: { server },
|
|
||||||
allowedHosts: true,
|
|
||||||
};
|
|
||||||
|
|
||||||
const vite = await createViteServer({
|
|
||||||
...viteConfig,
|
|
||||||
configFile: false,
|
|
||||||
customLogger: {
|
|
||||||
...viteLogger,
|
|
||||||
error: (msg, options) => {
|
|
||||||
viteLogger.error(msg, options);
|
|
||||||
process.exit(1);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
server: serverOptions,
|
|
||||||
appType: "custom",
|
|
||||||
});
|
|
||||||
|
|
||||||
app.use(vite.middlewares);
|
|
||||||
app.use("*", async (req, res, next) => {
|
|
||||||
const url = req.originalUrl;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const clientTemplate = path.resolve(
|
|
||||||
import.meta.dirname,
|
|
||||||
"..",
|
|
||||||
"client",
|
|
||||||
"index.html",
|
|
||||||
);
|
|
||||||
|
|
||||||
// always reload the index.html file from disk incase it changes
|
|
||||||
let template = await fs.promises.readFile(clientTemplate, "utf-8");
|
|
||||||
template = template.replace(
|
|
||||||
`src="/src/main.tsx"`,
|
|
||||||
`src="/src/main.tsx?v=${nanoid()}"`,
|
|
||||||
);
|
|
||||||
const page = await vite.transformIndexHtml(url, template);
|
|
||||||
res.status(200).set({ "Content-Type": "text/html" }).end(page);
|
|
||||||
} catch (e) {
|
|
||||||
vite.ssrFixStacktrace(e as Error);
|
|
||||||
next(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function serveStatic(app: Express) {
|
|
||||||
const distPath = path.resolve(import.meta.dirname, "public");
|
|
||||||
|
|
||||||
if (!fs.existsSync(distPath)) {
|
|
||||||
throw new Error(
|
|
||||||
`Could not find the build directory: ${distPath}, make sure to build the client first`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
app.use(express.static(distPath));
|
|
||||||
|
|
||||||
// fall through to index.html if the file doesn't exist
|
|
||||||
app.use("*", (_req, res) => {
|
|
||||||
res.sendFile(path.resolve(distPath, "index.html"));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@ -1,17 +1,9 @@
|
|||||||
import { pgTable, text, serial, integer, boolean } from "drizzle-orm/pg-core";
|
|
||||||
import { createInsertSchema } from "drizzle-zod";
|
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
export const users = pgTable("users", {
|
export const insertUserSchema = z.object({
|
||||||
id: serial("id").primaryKey(),
|
username: z.string(),
|
||||||
username: text("username").notNull().unique(),
|
password: z.string(),
|
||||||
password: text("password").notNull(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const insertUserSchema = createInsertSchema(users).pick({
|
|
||||||
username: true,
|
|
||||||
password: true,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export type InsertUser = z.infer<typeof insertUserSchema>;
|
export type InsertUser = z.infer<typeof insertUserSchema>;
|
||||||
export type User = typeof users.$inferSelect;
|
export type User = InsertUser & { id: number };
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"include": ["client/src/**/*", "shared/**/*", "server/**/*"],
|
"include": ["client/src/**/*"],
|
||||||
"exclude": ["node_modules", "build", "dist", "**/*.test.ts"],
|
"exclude": ["node_modules", "build", "dist", "**/*.test.ts"],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
@ -17,7 +17,6 @@
|
|||||||
"types": ["node", "vite/client"],
|
"types": ["node", "vite/client"],
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["./client/src/*"],
|
"@/*": ["./client/src/*"],
|
||||||
"@shared/*": ["./shared/*"]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,6 @@ export default defineConfig({
|
|||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
"@": path.resolve(__dirname, "client", "src"),
|
"@": path.resolve(__dirname, "client", "src"),
|
||||||
"@shared": path.resolve(__dirname, "shared"),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
root: path.resolve(__dirname, "client"),
|
root: path.resolve(__dirname, "client"),
|
||||||
|
|||||||
@ -13,7 +13,6 @@ export default defineConfig({
|
|||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
"@": path.resolve(__dirname, "client", "src"),
|
"@": path.resolve(__dirname, "client", "src"),
|
||||||
"@shared": path.resolve(__dirname, "shared"),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
root: path.resolve(__dirname, "client"),
|
root: path.resolve(__dirname, "client"),
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user