From 307a82d83caa884595e0001675579a72c51ffc6b Mon Sep 17 00:00:00 2001 From: Pablo Baleztena Date: Wed, 16 Oct 2024 16:21:03 -0300 Subject: [PATCH] [fabric/domain] Rename StoreQuery --- packages/fabric/domain/models/index.ts | 2 +- packages/fabric/domain/models/state-store.ts | 2 +- .../aggregate-options.ts | 0 .../{query => store-query}/filter-options.ts | 0 .../models/{query => store-query}/index.ts | 2 +- .../order-by-options.ts | 0 .../query.ts => store-query/store-query.ts} | 35 +++++++++++++++++-- 7 files changed, 36 insertions(+), 5 deletions(-) rename packages/fabric/domain/models/{query => store-query}/aggregate-options.ts (100%) rename packages/fabric/domain/models/{query => store-query}/filter-options.ts (100%) rename packages/fabric/domain/models/{query => store-query}/index.ts (69%) rename packages/fabric/domain/models/{query => store-query}/order-by-options.ts (100%) rename packages/fabric/domain/models/{query/query.ts => store-query/store-query.ts} (67%) diff --git a/packages/fabric/domain/models/index.ts b/packages/fabric/domain/models/index.ts index 576733f..1a39e2b 100644 --- a/packages/fabric/domain/models/index.ts +++ b/packages/fabric/domain/models/index.ts @@ -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"; diff --git a/packages/fabric/domain/models/state-store.ts b/packages/fabric/domain/models/state-store.ts index 6f9959d..8c67d90 100644 --- a/packages/fabric/domain/models/state-store.ts +++ b/packages/fabric/domain/models/state-store.ts @@ -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 { from>( diff --git a/packages/fabric/domain/models/query/aggregate-options.ts b/packages/fabric/domain/models/store-query/aggregate-options.ts similarity index 100% rename from packages/fabric/domain/models/query/aggregate-options.ts rename to packages/fabric/domain/models/store-query/aggregate-options.ts diff --git a/packages/fabric/domain/models/query/filter-options.ts b/packages/fabric/domain/models/store-query/filter-options.ts similarity index 100% rename from packages/fabric/domain/models/query/filter-options.ts rename to packages/fabric/domain/models/store-query/filter-options.ts diff --git a/packages/fabric/domain/models/query/index.ts b/packages/fabric/domain/models/store-query/index.ts similarity index 69% rename from packages/fabric/domain/models/query/index.ts rename to packages/fabric/domain/models/store-query/index.ts index cd0f265..1defb5c 100644 --- a/packages/fabric/domain/models/query/index.ts +++ b/packages/fabric/domain/models/store-query/index.ts @@ -1,3 +1,3 @@ export * from "./filter-options.ts"; export * from "./order-by-options.ts"; -export * from "./query.ts"; +export * from "./store-query.ts"; diff --git a/packages/fabric/domain/models/query/order-by-options.ts b/packages/fabric/domain/models/store-query/order-by-options.ts similarity index 100% rename from packages/fabric/domain/models/query/order-by-options.ts rename to packages/fabric/domain/models/store-query/order-by-options.ts diff --git a/packages/fabric/domain/models/query/query.ts b/packages/fabric/domain/models/store-query/store-query.ts similarity index 67% rename from packages/fabric/domain/models/query/query.ts rename to packages/fabric/domain/models/store-query/store-query.ts index 63ed2f1..972e057 100644 --- a/packages/fabric/domain/models/query/query.ts +++ b/packages/fabric/domain/models/store-query/store-query.ts @@ -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 { selectOne>( keys: K[], ): AsyncResult>, StoreQueryError>; + + selectOneOrFail(): AsyncResult; + selectOneOrFail>( + keys: K[], + ): AsyncResult, StoreQueryError | NotFoundError>; } export interface StoreSortableQuery { @@ -33,6 +43,11 @@ export interface StoreSortableQuery { selectOne>( keys: K[], ): AsyncResult>, StoreQueryError>; + + selectOneOrFail(): AsyncResult; + selectOneOrFail>( + keys: K[], + ): AsyncResult, StoreQueryError | NotFoundError>; } export interface StoreLimitableQuery { @@ -47,6 +62,11 @@ export interface StoreLimitableQuery { selectOne>( keys: K[], ): AsyncResult>, StoreQueryError>; + + selectOneOrFail(): AsyncResult; + selectOneOrFail>( + keys: K[], + ): AsyncResult, StoreQueryError | NotFoundError>; } export interface SelectableQuery { @@ -59,9 +79,14 @@ export interface SelectableQuery { selectOne>( keys: K[], ): AsyncResult>, StoreQueryError>; + + selectOneOrFail(): AsyncResult; + selectOneOrFail>( + keys: K[], + ): AsyncResult, StoreQueryError | NotFoundError>; } -export interface QueryDefinition { +export interface StoreQueryDefinition { from: K; where?: FilterOptions; orderBy?: OrderByOptions; @@ -69,3 +94,9 @@ export interface QueryDefinition { offset?: number; keys?: string[]; } + +export class NotFoundError extends TaggedError<"NotFoundError"> { + constructor() { + super("NotFoundError"); + } +}