functional-models
    Preparing search index...

    Function ForeignKeyProperty

    • A property that represents a foreign key to another model in a database. By default it is a "uuid" type, but if you want to use an arbitrary string, or an integer type you can set the dataType property.

      Type Parameters

      • TValue extends string | number
      • TModel extends Readonly<{ [s: string]: any }>

      Parameters

      • model: MaybeFunction<ModelType<TModel>>
      • config: Readonly<
            Partial<
                {
                    autoNow: boolean;
                    choices: readonly ChoiceTypes[];
                    defaultValue: TValue;
                    fetcher: ModelInstanceFetcher;
                    isDenormalized: boolean;
                    lazyLoadMethod: <TData extends Readonly<{ [s: string]: any }>>(
                        value: TValue,
                        modelData: CreateParams<TData>,
                    ) => TValue;
                    lazyLoadMethodAtomic: <TData extends Readonly<{ [s: string]: any }>>(
                        value: TValue,
                        modelData: CreateParams<TData>,
                    ) => Promise<TValue>;
                    maxLength: number;
                    maxValue: number;
                    minLength: number;
                    minValue: number;
                    typeOverride: string;
                    validators: readonly PropertyValidatorComponent<any, object, object>[];
                    value: TValue;
                    valueSelector: (instanceValue: MaybePromise<TValue>) => TValue;
                },
            >,
        > & Readonly<
            {
                isArray?: boolean;
                isBoolean?: boolean;
                isInteger?: boolean;
                isNumber?: boolean;
                isString?: boolean;
                required?: boolean;
            },
        > & Readonly<{ dataType?: "string" | "integer" | "uuid" }> = {}

        Additional configurations.

      Returns (
          | Readonly<
              {
                  createGetter: (
                      value: string,
                      modelData: Readonly,
                      modelInstance: ModelInstance<
                          Readonly<{ [s: string]: any }>,
                          object,
                          object,
                      >,
                  ) => ValueGetter<string, Readonly<{ [s: string]: any }>, object, object>;
                  getChoices: () => readonly ChoiceTypes[];
                  getConfig: () => object;
                  getConstantValue: () => undefined | string;
                  getDefaultValue: () => undefined | string;
                  getPropertyType: () => string;
                  getValidator: (
                      valueGetter: ValueGetter<
                          string,
                          Readonly<{ [s: string]: any }>,
                          object,
                          object,
                      >,
                  ) => PropertyValidator<Readonly<{ [s: string]: any }>>;
              },
          >
          | Readonly<
              {
                  createGetter: (
                      value: number,
                      modelData: Readonly,
                      modelInstance: ModelInstance<
                          Readonly<{ [s: string]: any }>,
                          object,
                          object,
                      >,
                  ) => ValueGetter<number, Readonly<{ [s: string]: any }>, object, object>;
                  getChoices: () => readonly ChoiceTypes[];
                  getConfig: () => object;
                  getConstantValue: () => undefined | number;
                  getDefaultValue: () => undefined | number;
                  getPropertyType: () => string;
                  getValidator: (
                      valueGetter: ValueGetter<
                          number,
                          Readonly<{ [s: string]: any }>,
                          object,
                          object,
                      >,
                  ) => PropertyValidator<Readonly<{ [s: string]: any }>>;
              },
          >
      ) & {
          getReferencedId: (instanceValues: TValue) => TValue;
          getReferencedModel: () => ModelType<TModel>;
      }