create-elysiajs
Version:
Scaffolding your Elysia project with the environment with easy!
82 lines (69 loc) • 2.47 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPreloadFile = getPreloadFile;
exports.getTestsAPIFile = getTestsAPIFile;
exports.getTestsIndex = getTestsIndex;
exports.getTestSharedFile = getTestSharedFile;
const ts_dedent_1 = __importDefault(require("ts-dedent"));
const db_1 = require("./db");
const db_2 = require("./db");
function getPreloadFile({ redis, driver }) {
const imports = [];
const mocks = [];
if (redis) {
imports.push('import redis from "ioredis-mock"');
mocks.push("mock.module('ioredis', () => ({ Redis: redis, default: redis }))");
}
return (0, ts_dedent_1.default /* ts */) `import { mock } from "bun:test";
import { join } from "node:path";
import { PGlite } from "@electric-sql/pglite";
import { drizzle } from "drizzle-orm/pglite";
import { migrate } from "drizzle-orm/pglite/migrator";
${imports.join("\n")}
console.time("PGLite init");
const pglite = new PGlite();
export const db = drizzle(pglite);
mock.module("${db_1.driverNames[driver]}", () => ({ default: () => pglite }));
mock.module("drizzle-orm/${db_2.driverNamesToDrizzle[driver]}", () => ({ drizzle }));
${mocks.join("\n")}
await migrate(db, {
migrationsFolder: join(import.meta.dir, "..", "drizzle"),
});
console.timeEnd("PGLite init");
`;
}
function getTestsAPIFile({ redis, driver }) {
return (0, ts_dedent_1.default /* ts */) `import { treaty } from "@elysiajs/eden";
import { app } from "../src/server.ts";
export const api = treaty(app);`;
}
function getTestsIndex({ redis, driver }) {
return (0, ts_dedent_1.default /* ts */) `import { describe, it, expect } from "bun:test";
import { api } from "../api.ts";
describe("API - /", () => {
it("/ - should return hello world", async () => {
const response = await api.index.get();
expect(response.status).toBe(200);
expect(response.data).toBe("Hello World");
});
});
`;
}
function getTestSharedFile() {
return (0, ts_dedent_1.default /* ts */) `import { signInitData } from "@gramio/init-data";
export const BOT_TOKEN = "1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ";
export const INIT_DATA = signInitData(
{
user: {
id: 1,
first_name: "durov",
username: "durov",
},
},
BOT_TOKEN,
);
`;
}