MCPcopy Create free account
hub / github.com/zenstackhq/zenstack / getUniqueFields

Function getUniqueFields

packages/orm/src/client/query-utils.ts:216–241  ·  view source on GitHub ↗
(schema: SchemaDef, model: string)

Source from the content-addressed store, hash-verified

214}
215
216export function getUniqueFields(schema: SchemaDef, model: string) {
217 const modelDef = requireModel(schema, model);
218 const result: Array<
219 // single field unique
220 | { name: string; def: FieldDef }
221 // multi-field unique
222 | { name: string; defs: Record<string, FieldDef> }
223 > = [];
224 for (const [key, value] of Object.entries(modelDef.uniqueFields)) {
225 if (typeof value !== 'object') {
226 throw createInternalError(`Invalid unique field definition for "${key}"`, model);
227 }
228
229 if (typeof value.type === 'string') {
230 // singular unique field
231 result.push({ name: key, def: requireField(schema, model, key) });
232 } else {
233 // compound unique field
234 result.push({
235 name: key,
236 defs: Object.fromEntries(Object.keys(value).map((k) => [k, requireField(schema, model, k)])),
237 });
238 }
239 }
240 return result;
241}
242
243export function getIdValues(schema: SchemaDef, model: string, data: any): Record<string, any> {
244 const idFields = getIdFields(schema, model);

Callers 2

makeWhereSchemaMethod · 0.90

Calls 4

createInternalErrorFunction · 0.90
pushMethod · 0.80
requireModelFunction · 0.70
requireFieldFunction · 0.70

Tested by

no test coverage detected