diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2022-05-31 01:04:10 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2022-05-31 01:04:10 +0200 |
| commit | 852ee620f0a2f6a83cf83eba860ca951b66bb7e2 (patch) | |
| tree | 3b1db871625c89f08c3c6422c135f84ec116943b /src/lib/stores/response_builder.ts | |
| parent | d2cd7f1b4c318ac8587ab3dc1dec4a44b6d592fe (diff) | |
Use supabase
Diffstat (limited to 'src/lib/stores/response_builder.ts')
| -rw-r--r-- | src/lib/stores/response_builder.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/lib/stores/response_builder.ts b/src/lib/stores/response_builder.ts new file mode 100644 index 0000000..1e12243 --- /dev/null +++ b/src/lib/stores/response_builder.ts @@ -0,0 +1,37 @@ +/** + * Utilities to build responses + */ + +interface AnyError { + message: string +}; + +export type StoreState<Type> = { + loading: boolean; + data: Type | void; + error: AnyError | void; +}; + +export function initialResponse<T> (initialState: T): StoreState<T> { + return { + loading: true, + data: initialState, + error: undefined + }; +} + +export function errorResponse<T> (error: AnyError): StoreState<T> { + return { + loading: false, + data: undefined, + error + }; +} + +export function response<T> (data: T): StoreState<T> { + return { + loading: false, + data, + error: undefined + }; +} |