refactor: consolidate single-source routing and protocol helpers

This commit is contained in:
Cita
2026-03-22 21:27:09 +08:00
parent 96e7614835
commit 9290e51ecc
64 changed files with 3571 additions and 2681 deletions
+19 -2
View File
@@ -1,4 +1,4 @@
import { mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
import { existsSync, mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from 'node:os';
import { afterEach, describe, expect, it } from 'vitest';
@@ -16,15 +16,23 @@ afterEach(() => {
});
describe('copyRuntimeDbGeneratedAssets', () => {
it('copies generated runtime db artifacts into dist', () => {
it('copies generated runtime db artifacts and shared runtime modules into dist', () => {
const repoRoot = mkdtempSync(join(tmpdir(), 'metapi-runtime-db-assets-'));
tempDirs.push(repoRoot);
const sourceDir = join(repoRoot, 'src', 'server', 'db', 'generated');
const nestedDir = join(sourceDir, 'fixtures');
const sharedDir = join(repoRoot, 'src', 'shared');
const staleSharedDistDir = join(repoRoot, 'dist', 'shared');
mkdirSync(nestedDir, { recursive: true });
mkdirSync(sharedDir, { recursive: true });
mkdirSync(staleSharedDistDir, { recursive: true });
writeFileSync(join(sourceDir, 'mysql.bootstrap.sql'), 'create table demo ();');
writeFileSync(join(nestedDir, 'baseline.json'), '{"ok":true}');
writeFileSync(join(sharedDir, 'tokenRouteContract.d.ts'), 'export declare const demo: number;\n');
writeFileSync(join(sharedDir, 'tokenRouteContract.js'), 'export const demo = 1;\n');
writeFileSync(join(sharedDir, 'tokenRouteContract.test.ts'), 'throw new Error("should not ship");\n');
writeFileSync(join(staleSharedDistDir, 'tokenRouteContract.test.ts'), 'stale test artifact\n');
copyRuntimeDbGeneratedAssets(repoRoot);
@@ -34,5 +42,14 @@ describe('copyRuntimeDbGeneratedAssets', () => {
expect(
readFileSync(join(repoRoot, 'dist', 'server', 'db', 'generated', 'fixtures', 'baseline.json'), 'utf8'),
).toBe('{"ok":true}');
expect(
readFileSync(join(repoRoot, 'dist', 'shared', 'tokenRouteContract.js'), 'utf8'),
).toBe('export const demo = 1;\n');
expect(
readFileSync(join(repoRoot, 'dist', 'shared', 'tokenRouteContract.d.ts'), 'utf8'),
).toBe('export declare const demo: number;\n');
expect(
existsSync(join(repoRoot, 'dist', 'shared', 'tokenRouteContract.test.ts')),
).toBe(false);
});
});