Skip to content

Commit

Permalink
fix: missing type & incorrect usage
Browse files Browse the repository at this point in the history
fix: missing type & incorrect usage
  • Loading branch information
Intevel committed Apr 26, 2023
2 parents c38dba6 + e40e72e commit bf04ac3
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 14 deletions.
4 changes: 2 additions & 2 deletions src/runtime/composables/useDirectus.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { FetchOptions } from "ohmyfetch";
import type { NitroFetchOptions } from 'nitropack';
import { useRuntimeConfig, createError } from "#app";
import { useDirectusUrl } from "./useDirectusUrl";
import { useDirectusToken } from "./useDirectusToken";
Expand All @@ -10,7 +10,7 @@ export const useDirectus = () => {

return async <T>(
url: string,
fetchOptions: FetchOptions = {},
fetchOptions: NitroFetchOptions<string> = {},
useStaticToken = true
): Promise<T> => {
const headers: HeadersInit = {};
Expand Down
7 changes: 4 additions & 3 deletions src/runtime/composables/useDirectusAuth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export const useDirectusAuth = () => {
}, useStaticToken)
setUser(res.data)
} else {
const res = await directus<{ data: DirectusUser }>('/users/me', useStaticToken)
const res = await directus<{ data: DirectusUser }>('/users/me', {}, useStaticToken)
setUser(res.data)
}
} catch (e) {
Expand Down Expand Up @@ -90,9 +90,10 @@ export const useDirectusAuth = () => {
const user = await fetchUser()

return {
user,
user: user.value,
access_token: response.data.access_token,
expires: response.data.expires
expires: response.data.expires,
refresh_token: response.data.refresh_token
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/runtime/composables/useDirectusFiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export const useDirectusFiles = () => {
const config = useRuntimeConfig()
const directusUrl = useDirectusUrl()
const directus = useDirectus()
const token = useDirectusToken()
const { token } = useDirectusToken()

const getFiles = async <T>(data: DirectusFileRequest): Promise<T[]> => {
if (data.params?.filter) {
Expand Down
12 changes: 7 additions & 5 deletions src/runtime/composables/useDirectusItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,29 @@ import {
DirectusItemRequest,
DirectusItemCreation,
DirectusItemDeletion,
DirectusItemUpdate
DirectusItemUpdate,
DirectusItems,
DirectusItem
} from '../types'
import { useDirectus } from './useDirectus'

export const useDirectusItems = () => {
const directus = useDirectus()

const getItems = async <T>(data: DirectusItemRequest): Promise<T> => {
const getItems = async <T>(data: DirectusItemRequest): Promise<DirectusItems<T> | T[]> => {
if (data.params?.filter) {
(data.params.filter as unknown) = JSON.stringify(data.params.filter)
}
if (data.params?.deep) {
(data.params.deep as unknown) = JSON.stringify(data.params.deep)
}
const items = await directus(`/items/${data.collection}`, {
const items = await directus<DirectusItems<T>>(`/items/${data.collection}`, {
method: 'GET',
params: data.params
})

if (items.meta) {
return { meta: items.meta, data: items.data }
return items;
} else {
return items.data
}
Expand All @@ -49,7 +51,7 @@ export const useDirectusItems = () => {
if (data.params?.deep) {
(data.params.deep as unknown) = JSON.stringify(data.params.deep)
}
const items = await directus<{ data: T[] }>(
const items = await directus<DirectusItem<T>>(
`/items/${data.collection}/${data.id}`,
{
method: 'GET',
Expand Down
8 changes: 5 additions & 3 deletions src/runtime/composables/useDirectusUsers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,23 @@ import {
DirectusUserRequest,
DirectusUserCreation,
DirectusUserUpdate,
DirectusUserDeletion
DirectusUserDeletion,
DirectusItems,
DirectusUser
} from '../types'
import { useDirectus } from './useDirectus'

export const useDirectusUsers = () => {
const directus = useDirectus()

const getUsers = async <T>(data?: DirectusUserRequest): Promise<T> => {
const getUsers = async <T extends DirectusUser>(data?: DirectusUserRequest): Promise<DirectusItems<T> | T[]> => {
if (data?.params?.filter) {
(data.params.filter as unknown) = JSON.stringify(data.params.filter)
}
if (data?.params?.deep) {
(data.params.deep as unknown) = JSON.stringify(data.params.deep)
}
const users = await directus('/users', {
const users = await directus<DirectusItems<T>>('/users', {
method: 'GET',
params: data?.params
})
Expand Down
14 changes: 14 additions & 0 deletions src/runtime/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,17 @@ export interface DirectusRevision {
delta?: Object;
parent?: any;
}

export interface DirectusItemMetadata {
total_count?: number;
filter_count?: number;
};

export interface DirectusItems<T> {
data: NonNullable<T[]>;
meta?: DirectusItemMetadata;
};

export interface DirectusItem<T> {
data: NonNullable<T>;
};

0 comments on commit bf04ac3

Please sign in to comment.