Files
Ekklesia/packages/module-sdk/src/define-module-schema.ts
T
ekklesia 80b56b72b1
CI / verify (pull_request) Successful in 24s
CI / infrastructure-smoke (pull_request) Successful in 20s
feat: add module schema discovery and validation
2026-07-13 21:35:21 -05:00

20 lines
594 B
TypeScript

import {
type ModuleId,
type ModuleSchemaDefinition,
moduleTableName,
moduleTablePrefix,
parseModuleSchemaDefinition,
} from "@ekklesia/contracts";
import { pgTableCreator } from "drizzle-orm/pg-core";
export function createModuleTable(moduleId: ModuleId) {
moduleTablePrefix(moduleId);
return pgTableCreator((localName) => moduleTableName(moduleId, localName));
}
export function defineModuleSchema<const Definition extends ModuleSchemaDefinition>(
definition: Definition,
): Readonly<Definition> {
return parseModuleSchemaDefinition(definition) as Readonly<Definition>;
}