From 2de384297b70b9818ec8d62ce8d31be4822d95a4 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Wed, 28 Dec 2022 23:06:32 +0330 Subject: [PATCH] feat(type): add types --- core/fetch/src/type.ts | 54 ++-------------------------------------- core/type/package.json | 2 +- core/type/src/service.ts | 34 +++++++++++++++++++++++++ core/type/src/storage.ts | 23 +++++++++++++++++ core/type/src/type.ts | 5 ++++ 5 files changed, 65 insertions(+), 53 deletions(-) create mode 100644 core/type/src/service.ts create mode 100644 core/type/src/storage.ts create mode 100644 core/type/src/type.ts diff --git a/core/fetch/src/type.ts b/core/fetch/src/type.ts index df04e012b..71cd646f1 100644 --- a/core/fetch/src/type.ts +++ b/core/fetch/src/type.ts @@ -1,7 +1,7 @@ -export type Methods = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'TRACE' | 'OPTIONS' | 'PATCH'; +import type {Methods, QueryParameters} from '@alwatr/type/src'; + export type CacheStrategy = 'network_only' | 'network_first' | 'cache_only' | 'cache_first' | 'stale_while_revalidate'; export type CacheDuplicate = 'never' | 'always' | 'until_load' | 'auto'; -export type QueryParameters = Record; export interface FetchOptions extends RequestInit { /** @@ -90,53 +90,3 @@ export interface FetchOptions extends RequestInit { */ token?: string; } - -export type AlwatrDocumentObject = { - id: string; - meta?: { - rev: number; - created: number; - updated: number; - }; -}; - -export type AlwatrServiceResponseFailed = { - ok: false; - statusCode: number; - errorCode: string; - meta?: Record; - data?: never; -}; - -export type AlwatrServiceResponseSuccess> = { - ok: true; - statusCode?: number; - errorCode?: never; - meta?: never; - data: TData; -}; - -export type AlwatrServiceResponseSuccessWithMeta, TMeta = Record> = { - ok: true; - statusCode?: number; - errorCode?: never; - meta: TMeta; - data: TData; -}; - -export type AlwatrServiceResponse, TMeta = Record> = - | AlwatrServiceResponseSuccess - | AlwatrServiceResponseSuccessWithMeta - | AlwatrServiceResponseFailed; - -export type AlwatrDocumentMeta = { - formatVersion: number; - reversion: number; - lastUpdated: number; - lastAutoId: number; -}; - -export type AlwatrDocumentStorage = Omit< - AlwatrServiceResponseSuccessWithMeta, AlwatrDocumentMeta>, - 'statusCode' | 'errorCode' ->; diff --git a/core/type/package.json b/core/type/package.json index e198d3a60..e2aa16af2 100644 --- a/core/type/package.json +++ b/core/type/package.json @@ -2,7 +2,6 @@ "name": "@alwatr/type", "version": "0.26.0", "description": "Alwatr Types", - "private": true, "keywords": [ "type", "typescript", @@ -10,6 +9,7 @@ "alwatr" ], "type": "module", + "main": "type.js", "author": "S. Ali Mihandoost (https://ali.mihandoost.com)", "license": "MIT", "files": [ diff --git a/core/type/src/service.ts b/core/type/src/service.ts new file mode 100644 index 000000000..51f3de72c --- /dev/null +++ b/core/type/src/service.ts @@ -0,0 +1,34 @@ +export type Methods = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'TRACE' | 'OPTIONS' | 'PATCH'; + +export type QueryParameters = Record; +export type ParamKeyType = 'string' | 'number' | 'boolean'; +export type ParamValueType = string | number | boolean | null; + +export type AlwatrServiceResponseFailed = { + ok: false; + statusCode: number; + errorCode: string; + meta?: Record; + data?: never; +}; + +export type AlwatrServiceResponseSuccess> = { + ok: true; + statusCode?: number; + errorCode?: never; + meta?: never; + data: TData; +}; + +export type AlwatrServiceResponseSuccessWithMeta, TMeta = Record> = { + ok: true; + statusCode?: number; + errorCode?: never; + meta: TMeta; + data: TData; +}; + +export type AlwatrServiceResponse, TMeta = Record> = + | AlwatrServiceResponseSuccess + | AlwatrServiceResponseSuccessWithMeta + | AlwatrServiceResponseFailed; diff --git a/core/type/src/storage.ts b/core/type/src/storage.ts new file mode 100644 index 000000000..4185077c0 --- /dev/null +++ b/core/type/src/storage.ts @@ -0,0 +1,23 @@ +import type {AlwatrServiceResponseSuccessWithMeta} from './service.js'; + +export type AlwatrDocumentObject = { + id: string; + meta?: { + rev: number; + created: number; + updated: number; + }; +}; + +export type AlwatrDocumentMeta = { + formatVersion: number; + reversion: number; + lastUpdated: number; + lastAutoId: number; +}; + + +export type AlwatrDocumentStorage = Omit< + AlwatrServiceResponseSuccessWithMeta, AlwatrDocumentMeta>, + 'statusCode' | 'errorCode' +>; diff --git a/core/type/src/type.ts b/core/type/src/type.ts new file mode 100644 index 000000000..90b122ef3 --- /dev/null +++ b/core/type/src/type.ts @@ -0,0 +1,5 @@ +export * from './storage.js'; +export * from './service.js'; + +// FIXME: +export type MaybePromise = T | Promise