functional-models
    Preparing search index...

    Interface DatastoreAdapter

    An interface that describes a datastore. By implementing this interface, databases can be swapped.

    interface DatastoreAdapter {
        bulkInsert?: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
            instances: readonly ModelInstance<
                TData,
                TModelExtensions,
                TModelInstanceExtensions,
            >[],
        ) => Promise<void>;
        count?: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
        ) => Promise<number>;
        createAndSave?: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            instance: ModelInstance<
                TData,
                TModelExtensions,
                TModelInstanceExtensions,
            >,
        ) => Promise<ToObjectResult<TData>>;
        delete: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
            id: PrimaryKeyType,
        ) => Promise<void>;
        retrieve: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
            primaryKey: PrimaryKeyType,
        ) => Promise<Maybe<ToObjectResult<TData>>>;
        save: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            instance: ModelInstance<
                TData,
                TModelExtensions,
                TModelInstanceExtensions,
            >,
        ) => Promise<ToObjectResult<TData>>;
        search: <
            TData extends Readonly<{ [s: string]: any }>,
            TModelExtensions extends object = object,
            TModelInstanceExtensions extends object = object,
        >(
            model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
            query: OrmSearch,
        ) => Promise<
            Readonly<{ instances: readonly ToObjectResult<TData>[]; page?: any }>,
        >;
    }
    Index

    Properties

    bulkInsert?: <
        TData extends Readonly<{ [s: string]: any }>,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    >(
        model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
        instances: readonly ModelInstance<
            TData,
            TModelExtensions,
            TModelInstanceExtensions,
        >[],
    ) => Promise<void>

    Optional: An optimized bulkInsert function. (Highly recommended)

    count?: <
        TData extends Readonly<{ [s: string]: any }>,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    >(
        model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
    ) => Promise<number>

    Optional: An optimized counting function. Highly recommended.

    createAndSave?: <
        TData extends Readonly<{ [s: string]: any }>,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    >(
        instance: ModelInstance<
            TData,
            TModelExtensions,
            TModelInstanceExtensions,
        >,
    ) => Promise<ToObjectResult<TData>>

    Optional: An optimized createAndSave function.

    delete: <
        TData extends Readonly<{ [s: string]: any }>,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    >(
        model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
        id: PrimaryKeyType,
    ) => Promise<void>

    Deleting an instance.

    retrieve: <
        TData extends Readonly<{ [s: string]: any }>,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    >(
        model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
        primaryKey: PrimaryKeyType,
    ) => Promise<Maybe<ToObjectResult<TData>>>

    Attempts to retrieves an instance.

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

    Saving a model.

    search: <
        TData extends Readonly<{ [s: string]: any }>,
        TModelExtensions extends object = object,
        TModelInstanceExtensions extends object = object,
    >(
        model: OrmModel<TData, TModelExtensions, TModelInstanceExtensions>,
        query: OrmSearch,
    ) => Promise<
        Readonly<{ instances: readonly ToObjectResult<TData>[]; page?: any }>,
    >

    Searches for instances by a query.