@lavalogic/scoria 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Components/Table/Types/DataRepository/RemoteTableDataRepository.svelte.d.ts +5 -2
- package/dist/Components/Table/Types/DataRepository/RemoteTableDataRepository.svelte.js +7 -7
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +1 -1
- package/package.json +1 -1
|
@@ -16,6 +16,9 @@ export interface RemoteTableDataRepositoryOptions<httpResponseSchema extends obj
|
|
|
16
16
|
tableName: string;
|
|
17
17
|
service: FloService;
|
|
18
18
|
defaultFilters: Map<string, string>;
|
|
19
|
+
getUserId: () => string | undefined;
|
|
20
|
+
httpGetter: (service: FloService, uri: string) => Promise<IResponse<httpResponseSchema[]>>;
|
|
21
|
+
httpGetterPaginated: (service: FloService, uri: string) => Promise<IPaginatedResponse<httpResponseSchema[]>>;
|
|
19
22
|
schema?: TSchema;
|
|
20
23
|
pageSize?: number;
|
|
21
24
|
fetchImmediately?: boolean;
|
|
@@ -24,10 +27,10 @@ export interface RemoteTableDataRepositoryOptions<httpResponseSchema extends obj
|
|
|
24
27
|
}
|
|
25
28
|
export declare class RemoteTableDataRepository<T extends object = object, R extends object = T> extends TableDataRepository<R> implements IRemoteDataRepository<R> {
|
|
26
29
|
options: RemoteTableDataRepositoryOptions<T, R>;
|
|
30
|
+
static readonly memoise: <T extends object, K extends keyof T, ResponseType>(getter: (item: T) => Promise<ResponseType>, key: K) => (item: T) => Promise<ResponseType>;
|
|
27
31
|
private httpGetter;
|
|
28
32
|
private httpGetterPaginated;
|
|
29
|
-
|
|
30
|
-
constructor(options: RemoteTableDataRepositoryOptions<T, R>, getUserId: () => string | undefined, httpGetter: (service: FloService, uri: string) => Promise<IResponse<T[]>>, httpGetterPaginated: (service: FloService, uri: string) => Promise<IPaginatedResponse<T[]>>);
|
|
33
|
+
constructor(options: RemoteTableDataRepositoryOptions<T, R>);
|
|
31
34
|
private _latestFetchId;
|
|
32
35
|
private _data;
|
|
33
36
|
get data(): R[];
|
|
@@ -11,8 +11,6 @@ function isProxyFilter(filter) {
|
|
|
11
11
|
}
|
|
12
12
|
export class RemoteTableDataRepository extends TableDataRepository {
|
|
13
13
|
options;
|
|
14
|
-
httpGetter;
|
|
15
|
-
httpGetterPaginated;
|
|
16
14
|
static memoise = (getter, key) => {
|
|
17
15
|
const cache = new Map();
|
|
18
16
|
return async (item) => {
|
|
@@ -29,13 +27,15 @@ export class RemoteTableDataRepository extends TableDataRepository {
|
|
|
29
27
|
return response;
|
|
30
28
|
};
|
|
31
29
|
};
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
httpGetter;
|
|
31
|
+
httpGetterPaginated;
|
|
32
|
+
constructor(options) {
|
|
33
|
+
super(options.tableName, options.getUserId);
|
|
34
34
|
this.options = options;
|
|
35
|
-
this.httpGetter = httpGetter;
|
|
36
|
-
this.httpGetterPaginated = httpGetterPaginated;
|
|
35
|
+
this.httpGetter = options.httpGetter;
|
|
36
|
+
this.httpGetterPaginated = options.httpGetterPaginated;
|
|
37
37
|
if (browser) {
|
|
38
|
-
const userId = getUserId();
|
|
38
|
+
const userId = this.getUserId();
|
|
39
39
|
const savedPageSize = localStorage.getItem(`${userId}-${options.tableName}-page-size`);
|
|
40
40
|
if (savedPageSize) {
|
|
41
41
|
const saved = JSON.parse(savedPageSize);
|
|
@@ -11,7 +11,7 @@ export interface ReadonlyPaginationState extends PaginationState {
|
|
|
11
11
|
}
|
|
12
12
|
export declare abstract class TableDataRepository<T extends object> implements IDataRepository<T> {
|
|
13
13
|
private tableName;
|
|
14
|
-
|
|
14
|
+
protected getUserId: () => string | undefined;
|
|
15
15
|
abstract paginationType: 'Remote' | 'Local';
|
|
16
16
|
abstract filterType: FilterType;
|
|
17
17
|
abstract totalRows: number;
|