UNPKG

schemaghost

Version:

Instant mock API server from database schema

38 lines (37 loc) 1.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.serve = serve; // server/index.ts const express_1 = __importDefault(require("express")); const routes_1 = require("./routes"); const loader_1 = require("../schema/loader"); async function serve(options) { const app = (0, express_1.default)(); app.use(express_1.default.json()); // parse JSON bodies // Load schema or use pre-generated mock data let schemaData; if (options.data) { schemaData = options.data; // MockData from CLI } else { schemaData = await (0, loader_1.loadSchema)(options.schemaPath); // SchemaData } // Example: safely access raw Prisma schema string only if it exists if (isSchemaData(schemaData)) { console.log("✅ Loaded schema string length:", schemaData.raw.length); } // Create Express router dynamically based on schema or mock data const router = (0, routes_1.createRouter)(schemaData); app.use("/api", router); // Start server app.listen(options.port, () => { console.log(`🚀 SchemaGhost server running at http://localhost:${options.port}/api`); }); } /** Type guard to detect SchemaData */ function isSchemaData(data) { return data.raw !== undefined; }