MCPcopy Create free account
hub / github.com/clientdb/clientdb / assertDataMatchDefinition

Function assertDataMatchDefinition

core/entity.ts:42–65  ·  view source on GitHub ↗
(
  data: D,
  definition: EntityDefinition<D, any>
)

Source from the content-addressed store, hash-verified

40}
41
42function assertDataMatchDefinition<D>(
43 data: D,
44 definition: EntityDefinition<D, any>
45) {
46 const rawDataKeys = new Set(typedKeys(data));
47
48 for (const requiredKey of definition.config.fields) {
49 assert(
50 rawDataKeys.has(requiredKey),
51 `Required field "${
52 requiredKey as string
53 }" is missing when creating new entity ${definition.config.name}`
54 );
55
56 rawDataKeys.delete(requiredKey);
57 }
58
59 if (rawDataKeys.size > 0) {
60 const missingFields = Array.from(rawDataKeys).join(", ");
61 throw new Error(
62 `Unknown fields "${missingFields}" found when creating new entity "${definition.config.name}"`
63 );
64 }
65}
66
67function fillDataDefaults<D>(data: Partial<D>, store: EntityStore<D, any>): D {
68 const { definition, db } = store;

Callers 1

createEntityFunction · 0.85

Calls 2

typedKeysFunction · 0.90
assertFunction · 0.90

Tested by

no test coverage detected