From 5346efa8338d8cb8ba1d7c740a914ebbe49786b1 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Sun, 27 Nov 2022 16:55:13 +0330 Subject: [PATCH] refactor: document object and service response data type --- packages/core/fetch/src/fetch.ts | 18 +++++++++++++++--- packages/core/fetch/src/type.ts | 31 ++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/packages/core/fetch/src/fetch.ts b/packages/core/fetch/src/fetch.ts index fa62c81bb..804adf832 100644 --- a/packages/core/fetch/src/fetch.ts +++ b/packages/core/fetch/src/fetch.ts @@ -1,8 +1,20 @@ import {createLogger, alwatrRegisteredList} from '@alwatr/logger'; -import type {FetchOptions, CacheDuplicate, CacheStrategy} from './type'; - -export {FetchOptions, CacheDuplicate, CacheStrategy}; +import type { + FetchOptions, + CacheDuplicate, + CacheStrategy, + AlwatrDocumentObject, + AlwatrServiceResponse, +} from './type'; + +export { + FetchOptions, + CacheDuplicate, + CacheStrategy, + AlwatrDocumentObject, + AlwatrServiceResponse, +}; const logger = createLogger('alwatr/fetch'); diff --git a/packages/core/fetch/src/type.ts b/packages/core/fetch/src/type.ts index 629df643d..1f12d05ba 100644 --- a/packages/core/fetch/src/type.ts +++ b/packages/core/fetch/src/type.ts @@ -1,4 +1,3 @@ - export type CacheStrategy = 'network_only' | 'network_first' | 'cache_only' | 'cache_first' | 'stale_while_revalidate'; export type CacheDuplicate = 'never' | 'always' | 'until_load' | 'auto'; @@ -87,3 +86,33 @@ export interface FetchOptions extends RequestInit { */ token?: string; } + +export type AlwatrDocumentObject = { + [key: string]: unknown; + id: string; + _meta?: { + rev: number; + created: number; + updated: number; + }; +}; + +export type AlwatrServiceResponseFailed = { + ok: false; + errorCode: string; + _meta?: Record; +}; + +export type AlwatrServiceResponseSuccess< + TData extends Record, + TMeta extends Record = never +> = { + ok: true; + _meta?: TMeta; + data: TData; +}; + +export type AlwatrServiceResponse< + TData extends Record, + TMeta extends Record = never +> = AlwatrServiceResponseSuccess | AlwatrServiceResponseFailed;