MCPcopy Create free account
hub / github.com/loopbackio/loopback-next / defineModelClass

Function defineModelClass

packages/repository/src/define-model-class.ts:47–68  ·  view source on GitHub ↗
(
  base: BaseCtor /* Model or Entity */,
  definition: ModelDefinition,
)

Source from the content-addressed store, hash-verified

45 * e.g. `{title: string}` or `AnyObject & {id: number}`.
46 */
47export function defineModelClass<
48 BaseCtor extends typeof Model,
49 Props extends object = {},
50>(
51 base: BaseCtor /* Model or Entity */,
52 definition: ModelDefinition,
53): DynamicModelCtor<BaseCtor, Props> {
54 const modelName = definition.name;
55 const defineNamedModelClass = new Function(
56 base.name,
57 `return class ${modelName} extends ${base.name} {}`,
58 );
59 const modelClass = defineNamedModelClass(base) as DynamicModelCtor<
60 BaseCtor,
61 Props
62 >;
63 assert.equal(modelClass.name, modelName);
64
65 // Apply `@model(definition)` to the generated class
66 model(definition)(modelClass);
67 return modelClass;
68}
69
70/**
71 * A type describing a model class created via `defineModelClass`.

Calls 2

modelFunction · 0.90
equalMethod · 0.65

Tested by

no test coverage detected