@tanglemedia/svelte-starter-directus-api 2.0.3 → 2.1.0
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AllCollections, type DirectusClient, type RegularCollections, type RestClient } from '@directus/sdk';
|
|
2
|
-
import { ApiAdapterAbstract, type AnyObject, type ApiAdapterRequestConfig, type ApiCreateManyQuery, type ApiDeleteManyQuery, type ApiFindQuery, type ApiId, type ApiResponse, type ApiUpdateManyQuery, type BaseApiMethods } from '@tanglemedia/svelte-starter-core';
|
|
2
|
+
import { ApiAdapterAbstract, type AnyObject, type ApiAdapterRequestConfig, type ApiAggregateQuery, type ApiCreateManyQuery, type ApiDeleteManyQuery, type ApiFindQuery, type ApiId, type ApiResponse, type ApiUpdateManyQuery, type BaseApiMethods } from '@tanglemedia/svelte-starter-core';
|
|
3
3
|
import type { DirectusConfig, SchemaShape } from '../types/adapter.types';
|
|
4
4
|
export type AdapterClient<Schema extends SchemaShape = SchemaShape> = DirectusClient<Schema> & RestClient<Schema>;
|
|
5
5
|
/**
|
|
@@ -27,7 +27,7 @@ export declare class DirectusApiAdapter<Schema extends SchemaShape = SchemaShape
|
|
|
27
27
|
request<T>(method: BaseApiMethods, url: string, query?: Record<string, unknown>): Promise<T>;
|
|
28
28
|
find<T, Q = T, R = T>(collection: Path, query: ApiFindQuery<Q>): Promise<ApiResponse<R[]>>;
|
|
29
29
|
findOne<T>(collection: Path, key?: ApiId, query?: Record<string, unknown>): Promise<ApiResponse<T>>;
|
|
30
|
-
aggregate<T>(collection: Path, query
|
|
30
|
+
aggregate<T, Q = T, R = T>(collection: Path, query: ApiAggregateQuery<Q>): Promise<ApiResponse<R>>;
|
|
31
31
|
patch<T>(collection: Path, key: ApiId, query?: Record<string, unknown>): Promise<ApiResponse<T>>;
|
|
32
32
|
post<T>(collection: Path, data: AnyObject, query?: Record<string, unknown>): Promise<ApiResponse<T>>;
|
|
33
33
|
delete<T>(collection: Path, key?: ApiId): Promise<ApiResponse<T>>;
|
|
@@ -36,7 +36,10 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
|
|
|
36
36
|
const { filter, search } = query || {};
|
|
37
37
|
const data = await this.directus.request(aggregate(collection, {
|
|
38
38
|
aggregate: { count: '*' },
|
|
39
|
-
query: {
|
|
39
|
+
query: {
|
|
40
|
+
...(filter ? { filter } : {}),
|
|
41
|
+
...(search ? { search } : {}),
|
|
42
|
+
}
|
|
40
43
|
}));
|
|
41
44
|
if (data && data.length === 1) {
|
|
42
45
|
return Number(data[0].count);
|
|
@@ -91,11 +94,12 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
|
|
|
91
94
|
return this.transformResponse({ data });
|
|
92
95
|
}
|
|
93
96
|
async aggregate(collection, query) {
|
|
97
|
+
const { aggregate: aggregate_, ...rest } = (query || {});
|
|
94
98
|
const data = await this.directus.request(aggregate(collection, {
|
|
95
|
-
aggregate: {
|
|
99
|
+
aggregate: aggregate_ ? aggregate_ : {
|
|
96
100
|
count: 'id'
|
|
97
101
|
},
|
|
98
|
-
query
|
|
102
|
+
query: rest
|
|
99
103
|
}));
|
|
100
104
|
return this.transformResponse({ data });
|
|
101
105
|
}
|
package/dist/services/auth.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { AuthenticationClient } from '@directus/sdk';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
declare class DirectusAuthServices extends ServiceAdapterAbstract {
|
|
1
|
+
import type { AuthenticationClient, DirectusClient, RestClient } from '@directus/sdk';
|
|
2
|
+
import { ServiceAbstract } from '@tanglemedia/svelte-starter-core';
|
|
3
|
+
declare class DirectusAuthServices extends ServiceAbstract {
|
|
5
4
|
getDirectus(): Promise<DirectusClient<object> & RestClient<object> & AuthenticationClient<object>>;
|
|
6
5
|
refresh(): Promise<import("@directus/sdk").AuthenticationData>;
|
|
7
6
|
getToken(): Promise<string | null>;
|
package/dist/services/auth.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFiles, readMe, updateMe } from '@directus/sdk';
|
|
2
|
-
import {
|
|
3
|
-
class DirectusAuthServices extends
|
|
2
|
+
import { ServiceAbstract } from '@tanglemedia/svelte-starter-core';
|
|
3
|
+
class DirectusAuthServices extends ServiceAbstract {
|
|
4
4
|
getDirectus() {
|
|
5
5
|
return this.getAdapterClient();
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanglemedia/svelte-starter-directus-api",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "src/index.ts",
|
|
5
5
|
"types": "src/index.ts",
|
|
6
6
|
"description": "directus API wrapper for all the directus sdk functionality",
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
"vite": "^5.4.2",
|
|
37
37
|
"vitest": "^2.0.5",
|
|
38
38
|
"@internal/eslint-config": "0.0.0",
|
|
39
|
-
"@tanglemedia/svelte-starter-core": "0.2.
|
|
39
|
+
"@tanglemedia/svelte-starter-core": "0.2.2"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@directus/sdk": "^17.0.
|
|
42
|
+
"@directus/sdk": "^17.0.1",
|
|
43
43
|
"@types/js-cookie": "^3.0.6",
|
|
44
44
|
"esm-env": "^1.0.0",
|
|
45
45
|
"js-cookie": "^3.0.5"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"@sveltejs/kit": ">=2 <3",
|
|
49
|
-
"@tanglemedia/svelte-starter-core": ">=0.2.
|
|
49
|
+
"@tanglemedia/svelte-starter-core": ">=0.2.2",
|
|
50
50
|
"svelte": ">=4 <5"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
ApiAdapterAbstract,
|
|
19
19
|
type AnyObject,
|
|
20
20
|
type ApiAdapterRequestConfig,
|
|
21
|
+
type ApiAggregateQuery,
|
|
21
22
|
type ApiCreateManyQuery,
|
|
22
23
|
type ApiDeleteManyQuery,
|
|
23
24
|
type ApiFindQuery,
|
|
@@ -79,7 +80,10 @@ export class DirectusApiAdapter<
|
|
|
79
80
|
|
|
80
81
|
const data = await this.directus.request(aggregate(collection, {
|
|
81
82
|
aggregate: { count: '*' },
|
|
82
|
-
query: {
|
|
83
|
+
query: {
|
|
84
|
+
...(filter ? { filter } : {}),
|
|
85
|
+
...(search ? { search } : {}),
|
|
86
|
+
}
|
|
83
87
|
}));
|
|
84
88
|
|
|
85
89
|
if (data && data.length === 1) {
|
|
@@ -157,18 +161,21 @@ export class DirectusApiAdapter<
|
|
|
157
161
|
return this.transformResponse({ data });
|
|
158
162
|
}
|
|
159
163
|
|
|
160
|
-
public async aggregate<T>(
|
|
164
|
+
public async aggregate<T, Q = T, R = T>(
|
|
161
165
|
collection: Path,
|
|
162
|
-
query
|
|
163
|
-
): Promise<ApiResponse<
|
|
166
|
+
query: ApiAggregateQuery<Q>
|
|
167
|
+
): Promise<ApiResponse<R>> {
|
|
168
|
+
const { aggregate: aggregate_, ...rest } = (query || {});
|
|
169
|
+
|
|
164
170
|
const data = await this.directus.request<T>(
|
|
165
171
|
aggregate(collection, {
|
|
166
|
-
aggregate: {
|
|
172
|
+
aggregate: aggregate_ ? aggregate_ : {
|
|
167
173
|
count: 'id'
|
|
168
174
|
},
|
|
169
|
-
query
|
|
175
|
+
query: rest
|
|
170
176
|
})
|
|
171
177
|
);
|
|
178
|
+
|
|
172
179
|
return this.transformResponse({ data });
|
|
173
180
|
}
|
|
174
181
|
|
package/src/services/auth.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { AuthenticationClient } from '@directus/sdk';
|
|
1
|
+
import type { AuthenticationClient, DirectusClient, RestClient } from '@directus/sdk';
|
|
2
2
|
import { readFiles, readMe, updateMe } from '@directus/sdk';
|
|
3
|
-
import
|
|
4
|
-
import { ServiceAdapterAbstract } from '@tanglemedia/svelte-starter-core';
|
|
3
|
+
import { ServiceAbstract } from '@tanglemedia/svelte-starter-core';
|
|
5
4
|
|
|
6
|
-
class DirectusAuthServices extends
|
|
5
|
+
class DirectusAuthServices extends ServiceAbstract {
|
|
7
6
|
public getDirectus() {
|
|
8
7
|
return this.getAdapterClient<
|
|
9
8
|
DirectusClient<object> & RestClient<object> & AuthenticationClient<object>
|