functional-models
    Preparing search index...

    Interface OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>

    A Model Instance with ORM functions attached.

    interface OrmModelInstance<
        TData extends DataDescription,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    > {
        delete: () => Promise<void>;
        get: PropertyGetters<TData>;
        getModel: () => ModelType<
            TData,
            Readonly<
                {
                    bulkInsert: <TData extends Readonly<{ [s: string]: any }>>(
                        instances: readonly OrmModelInstance<
                            TData,
                            TModelExtensions,
                            TModelInstanceExtensions,
                        >[],
                    ) => Promise<void>;
                    count: () => Promise<number>;
                    createAndSave: <TData extends Readonly<{ [s: string]: any }>>(
                        data: OrmModelInstance<
                            TData,
                            TModelExtensions,
                            TModelInstanceExtensions,
                        >,
                    ) => Promise<
                        OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                    >;
                    delete: (id: PrimaryKeyType) => Promise<void>;
                    retrieve: <TData extends Readonly<{ [s: string]: any }>>(
                        primaryKey: PrimaryKeyType,
                    ) => Promise<
                        Maybe<
                            OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                        >,
                    >;
                    save: <TData extends Readonly<{ [s: string]: any }>>(
                        instance: OrmModelInstance<
                            TData,
                            TModelExtensions,
                            TModelInstanceExtensions,
                        >,
                    ) => Promise<
                        OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                    >;
                    search: <TData extends Readonly<{ [s: string]: any }>>(
                        query: OrmSearch,
                    ) => Promise<
                        Readonly<
                            {
                                instances: readonly OrmModelInstance<
                                    TData,
                                    OrmModel<(...), (...), (...)>,
                                    object,
                                >[];
                                page?: any;
                            },
                        >,
                    >;
                    searchOne: <TData extends Readonly<{ [s: string]: any }>>(
                        query: Omit<OrmSearch, "take">,
                    ) => Promise<
                        | undefined
                        | OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                    >;
                },
            >,
            Readonly<
                {
                    delete: () => Promise<void>;
                    save: <TData extends Readonly<{ [s: string]: any }>>() => Promise<
                        OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                    >;
                },
            >,
        >;
        getPrimaryKey: () => PrimaryKeyType;
        getReferences: () => ModelReferenceFunctions;
        getValidators: () => Readonly<Record<string, PropertyValidator<TData>>>;
        save: <TData extends Readonly<{ [s: string]: any }>>() => Promise<
            OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
        >;
        toObj: ToObjectFunction<TData>;
        validate: (options?: object) => Promise<undefined | ModelErrors<TData>>;
    }

    Type Parameters

    • TData extends DataDescription
    • TModelExtensions extends object = object
    • TModelInstanceExtensions extends object = object
    Index

    Properties

    delete: () => Promise<void>

    Delete this model.

    Gets the value of individual properties on the instance. These are memoized.

    getModel: () => ModelType<
        TData,
        Readonly<
            {
                bulkInsert: <TData extends Readonly<{ [s: string]: any }>>(
                    instances: readonly OrmModelInstance<
                        TData,
                        TModelExtensions,
                        TModelInstanceExtensions,
                    >[],
                ) => Promise<void>;
                count: () => Promise<number>;
                createAndSave: <TData extends Readonly<{ [s: string]: any }>>(
                    data: OrmModelInstance<
                        TData,
                        TModelExtensions,
                        TModelInstanceExtensions,
                    >,
                ) => Promise<
                    OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                >;
                delete: (id: PrimaryKeyType) => Promise<void>;
                retrieve: <TData extends Readonly<{ [s: string]: any }>>(
                    primaryKey: PrimaryKeyType,
                ) => Promise<
                    Maybe<
                        OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                    >,
                >;
                save: <TData extends Readonly<{ [s: string]: any }>>(
                    instance: OrmModelInstance<
                        TData,
                        TModelExtensions,
                        TModelInstanceExtensions,
                    >,
                ) => Promise<
                    OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                >;
                search: <TData extends Readonly<{ [s: string]: any }>>(
                    query: OrmSearch,
                ) => Promise<
                    Readonly<
                        {
                            instances: readonly OrmModelInstance<
                                TData,
                                OrmModel<(...), (...), (...)>,
                                object,
                            >[];
                            page?: any;
                        },
                    >,
                >;
                searchOne: <TData extends Readonly<{ [s: string]: any }>>(
                    query: Omit<OrmSearch, "take">,
                ) => Promise<
                    | undefined
                    | OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                >;
            },
        >,
        Readonly<
            {
                delete: () => Promise<void>;
                save: <TData extends Readonly<{ [s: string]: any }>>() => Promise<
                    OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
                >;
            },
        >,
    >

    Gets the model that backs this instance.

    getPrimaryKey: () => PrimaryKeyType

    Gets the primary key of the instance (without having to know the primary key name).

    getReferences: () => ModelReferenceFunctions

    Gets all model references that this instance may have as record of property name to function getter.

    getValidators: () => Readonly<Record<string, PropertyValidator<TData>>>

    Gets the validators for this model instance.

    save: <TData extends Readonly<{ [s: string]: any }>>() => Promise<
        OrmModelInstance<TData, TModelExtensions, TModelInstanceExtensions>,
    >

    Save this model.

    Gets a basic representation of the data. This function is memoized.

    validate: (options?: object) => Promise<undefined | ModelErrors<TData>>

    Runs validation against this instance. This function is memoized.