@avonjs/avonjs
Version:
A fluent Node.js API generator.
70 lines (69 loc) • 3.3 kB
TypeScript
import { type AbstractMixable, type AnyRecord, type Model, type PrimaryKey, type ResourceActionEvent, type ResourceActionEventForAction, type ResourceStoreActionEvent, type ResourceUpdateActionEvent } from '../Contracts';
import { Fluent } from '../Models';
import type { Repository } from '../Repositories';
declare const _default: <T extends AbstractMixable<Repository>>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
/**
* Store multiple model's into the storage.
*/
insert(models: Model[]): Promise<Model[]>;
/**
* Fill event model for successful resource store.
*/
forResourceStore(params: ResourceStoreActionEvent): Fluent;
/**
* Fill event model for successful resource update.
*/
forResourceUpdate(params: ResourceUpdateActionEvent): Fluent;
/**
* Fill event model for successful resource destroy.
*/
forResourceDelete(params: ResourceActionEvent): Fluent;
/**
* Fill event model for successful resource restore.
*/
forResourceRestore(params: ResourceActionEvent): Fluent;
/**
* Fill event model for successful action ran.
*/
forActionRan(params: ResourceActionEventForAction): Fluent;
/**
* Get the default attributes for creating a new action event.
*/
defaultAttributes(params: ResourceActionEvent): AnyRecord;
/**
* Delete resource events for ever.
*/
flush(resourceName: string, key: PrimaryKey): Promise<Model[]>;
/**
* Limit query to the given resource.
*/
scopeResource(resourceName: string, key: PrimaryKey): any;
wheres: import("../Contracts").Where[];
orders: import("../Contracts").Order[];
modifiers: import("../Contracts").QueryModifierCallback[];
_transaction?: import("../Contracts").Transaction;
transaction<V>(callback: import("../Contracts").TransactionCallback<V, any>): Promise<V>;
setTransaction(transaction?: import("../Contracts").Transaction): any;
getTransaction(): import("../Contracts").Transaction | undefined;
runningInTransaction(): boolean;
prepareTransaction(): Promise<import("../Contracts").Transaction>;
where(where: import("../Contracts").Where | import("../Contracts").Where[]): any;
setWheres(wheres: import("../Contracts").Where[]): any;
getWheres(): import("../Contracts").Where[];
order(order: import("../Contracts").Order | import("../Contracts").Order[]): any;
setOrders(orders: import("../Contracts").Order[]): any;
getOrders(): import("../Contracts").Order[];
modify<T_1>(modifier: import("../Contracts").QueryModifierCallback<T_1>): any;
find(key: PrimaryKey): Promise<import("../Contracts").Optional<Model>>;
whereKey(key: PrimaryKey): any;
whereKeys(keys: Array<PrimaryKey>): any;
fillModel(result: AnyRecord): Model;
search(search: string, page?: number, perPage?: number): Promise<import("../Contracts").SearchCollection>;
all(wheres?: import("../Contracts").Where[]): Promise<Model[]>;
first(wheres?: import("../Contracts").Where[]): Promise<import("../Contracts").Optional<Model>>;
store(model: Model): Promise<Model>;
update(model: Model): Promise<Model>;
delete(key: PrimaryKey): Promise<void>;
model(): Model;
}) & T;
export default _default;