[fabric/domain] Rename StoreQuery

This commit is contained in:
Pablo Baleztena 2024-10-16 16:21:03 -03:00
parent 558ee2b9bc
commit 307a82d83c
7 changed files with 36 additions and 5 deletions

View File

@ -1,5 +1,5 @@
export * from "./fields/index.ts";
export * from "./model-schema.ts";
export * from "./model.ts";
export * from "./query/index.ts";
export * from "./state-store.ts";
export * from "./store-query/index.ts";

View File

@ -2,7 +2,7 @@ import type { AsyncResult } from "@fabric/core";
import type { StoreQueryError } from "../errors/query-error.ts";
import type { ModelSchemaFromModels } from "./model-schema.ts";
import type { Model, ModelToType } from "./model.ts";
import type { StoreQuery } from "./query/query.ts";
import type { StoreQuery } from "./store-query/store-query.ts";
export interface ReadonlyStateStore<TModel extends Model> {
from<T extends keyof ModelSchemaFromModels<TModel>>(

View File

@ -1,3 +1,3 @@
export * from "./filter-options.ts";
export * from "./order-by-options.ts";
export * from "./query.ts";
export * from "./store-query.ts";

View File

@ -1,5 +1,10 @@
// deno-lint-ignore-file no-explicit-any
import type { AsyncResult, Keyof, Optional } from "@fabric/core";
import {
type AsyncResult,
type Keyof,
type Optional,
TaggedError,
} from "@fabric/core";
import type { StoreQueryError } from "../../errors/query-error.ts";
import type { FilterOptions } from "./filter-options.ts";
import type { OrderByOptions } from "./order-by-options.ts";
@ -18,6 +23,11 @@ export interface StoreQuery<T> {
selectOne<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Optional<Pick<T, K>>, StoreQueryError>;
selectOneOrFail(): AsyncResult<T, StoreQueryError | NotFoundError>;
selectOneOrFail<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Pick<T, K>, StoreQueryError | NotFoundError>;
}
export interface StoreSortableQuery<T> {
@ -33,6 +43,11 @@ export interface StoreSortableQuery<T> {
selectOne<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Optional<Pick<T, K>>, StoreQueryError>;
selectOneOrFail(): AsyncResult<T, StoreQueryError | NotFoundError>;
selectOneOrFail<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Pick<T, K>, StoreQueryError | NotFoundError>;
}
export interface StoreLimitableQuery<T> {
@ -47,6 +62,11 @@ export interface StoreLimitableQuery<T> {
selectOne<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Optional<Pick<T, K>>, StoreQueryError>;
selectOneOrFail(): AsyncResult<T, StoreQueryError | NotFoundError>;
selectOneOrFail<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Pick<T, K>, StoreQueryError | NotFoundError>;
}
export interface SelectableQuery<T> {
@ -59,9 +79,14 @@ export interface SelectableQuery<T> {
selectOne<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Optional<Pick<T, K>>, StoreQueryError>;
selectOneOrFail(): AsyncResult<T, StoreQueryError | NotFoundError>;
selectOneOrFail<K extends Keyof<T>>(
keys: K[],
): AsyncResult<Pick<T, K>, StoreQueryError | NotFoundError>;
}
export interface QueryDefinition<K extends string = string> {
export interface StoreQueryDefinition<K extends string = string> {
from: K;
where?: FilterOptions<any>;
orderBy?: OrderByOptions<any>;
@ -69,3 +94,9 @@ export interface QueryDefinition<K extends string = string> {
offset?: number;
keys?: string[];
}
export class NotFoundError extends TaggedError<"NotFoundError"> {
constructor() {
super("NotFoundError");
}
}