MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / schema

Function schema

packages/core/fumadb/src/schema/create.ts:728–771  ·  view source on GitHub ↗
(config: {
  version: Version;
  tables: Tables;

  up?: CustomMigrationFn;
  down?: CustomMigrationFn;
  relations?: RM;
})

Source from the content-addressed store, hash-verified

726}
727
728export function schema<
729 Version extends string,
730 Tables extends Record<string, AnyTable>,
731 RM extends RelationsMap<Tables>,
732>(config: {
733 version: Version;
734 tables: Tables;
735
736 up?: CustomMigrationFn;
737 down?: CustomMigrationFn;
738 relations?: RM;
739}): Schema<Version, CreateSchemaTables<Tables, RM>> {
740 const { tables, relations } = config;
741
742 for (const k in tables) {
743 if (!tables[k]) {
744 delete tables[k];
745 continue;
746 }
747
748 tables[k].ormName = k;
749 }
750
751 if (relations) setRelations(tables, relations);
752 const out: Schema<Version, CreateSchemaTables<Tables, RM>> = {
753 ...config,
754 tables: config.tables as unknown as CreateSchemaTables<Tables, RM>,
755 clone() {
756 const cloneTables: Record<string, AnyTable> = {};
757
758 for (const [k, v] of Object.entries(tables)) {
759 cloneTables[k] = v.clone();
760 }
761
762 return schema({
763 ...config,
764 tables: cloneTables as Tables,
765 });
766 },
767 };
768
769 validateSchema(out);
770 return out;
771}
772
773function setRelations<Tables extends Record<string, AnyTable>>(
774 tables: Tables,

Callers 12

uuid.test.tsFile · 0.90
generate.test.tsFile · 0.90
migrate.test.tsFile · 0.90
cli.tsFile · 0.90
variants.schema.tsFile · 0.90
query.schema.tsFile · 0.90
createMigratorFunction · 0.90
introspectSchemaFunction · 0.90
cloneFunction · 0.85
variantSchemaFunction · 0.85

Calls 2

validateSchemaFunction · 0.90
setRelationsFunction · 0.85

Tested by

no test coverage detected