blob: 804141f903e8ce8d4e8e3231ab15e6a2cc4d4f21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import { readable } from 'svelte/store';
import { initialResponse, errorResponse, response } from './response_builder';
import type { Readable } from 'svelte/store';
import type { PostgrestFilterBuilder } from '@supabase/postgrest-js';
import type { StoreState } from './response_builder';
export function collection<T> (query: PostgrestFilterBuilder<T>, initialValue: T[]): Readable<StoreState<T[]>> {
return readable(initialResponse<T[]>(initialValue), (set) => {
(async function() {
const { data, error } = await query;
if (error) {
return set(errorResponse<T[]>(error));
}
set(response<T[]>(data));
})()
});
}
export function single<T> (query: PostgrestFilterBuilder<T>, initialValue: T): Readable<StoreState<T>> {
return readable(initialResponse<T>(initialValue), (set) => {
(async function() {
const { data, error } = await query.single();
if (error) {
return set(errorResponse<T>(error));
}
set(response<T>(data));
})()
});
}
|