20 lines
594 B
TypeScript
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>;
|
|
}
|