nuxt-directus-sdk 0.0.8 → 0.0.9

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/module.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
2
  import { Query } from '@directus/sdk';
3
- import { DirectusSchema } from '#build/types/directus';
3
+ import { DirectusSchema } from 'nuxt/app';
4
4
 
5
5
  interface ModuleOptions {
6
6
  /**
package/dist/module.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
2
  import { Query } from '@directus/sdk';
3
- import { DirectusSchema } from '#build/types/directus';
3
+ import { DirectusSchema } from 'nuxt/app';
4
4
 
5
5
  interface ModuleOptions {
6
6
  /**
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-directus-sdk",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "configKey": "directus",
5
5
  "compatibility": {
6
6
  "nuxt": "^3.0.0",
package/dist/module.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import { defu } from 'defu';
2
- import { useLogger, defineNuxtModule, tryResolveModule, createResolver, addPlugin, addImportsDir, addComponentsDir, addTypeTemplate, addImportsSources } from '@nuxt/kit';
2
+ import { useLogger, defineNuxtModule, tryResolveModule, createResolver, addPlugin, addImportsDir, addComponentsDir, addImportsSources, addTypeTemplate } from '@nuxt/kit';
3
3
  import { joinURL } from 'ufo';
4
4
  import { createDirectus, authentication, rest, readCollections, readFields, readRelations } from '@directus/sdk';
5
5
  import { pascalCase } from 'change-case';
6
6
 
7
7
  const name = "nuxt-directus-sdk";
8
- const version = "0.0.8";
8
+ const version = "0.0.9";
9
9
 
10
10
  function warn(message) {
11
11
  useLogger("nuxt-directus-sdk").warn(message);
@@ -41,18 +41,8 @@ async function generateTypes(options) {
41
41
  return item.startsWith("directus_users") || !item.startsWith("directus_");
42
42
  }));
43
43
  return `
44
- // This file is auto-generated by @nuxtjs/directus-sdk
45
- ${types}
46
-
47
- export interface AllDirectusCollections {
48
- ${allTypes}
49
- };
50
-
51
- export interface DirectusSchema {
52
- ${schemaTypes}
53
- };
54
-
55
- declare global {
44
+ // This file is auto-generated by nuxt-directus-sdk
45
+ declare module '#app' {
56
46
  ${types.replaceAll("export type", "type")}
57
47
 
58
48
  interface AllDirectusCollections {
@@ -63,7 +53,6 @@ async function generateTypes(options) {
63
53
  ${schemaTypes}
64
54
  };
65
55
  }
66
-
67
56
  export {};
68
57
  `;
69
58
  }
@@ -194,23 +183,80 @@ const module = defineNuxtModule({
194
183
  });
195
184
  nuxt.options.css.push("vue-toastification/dist/index.css");
196
185
  nuxt.options.build.transpile.push("vue-toastification");
186
+ const directusSdkImports = {
187
+ from: "@directus/sdk",
188
+ imports: [
189
+ "aggregate",
190
+ "generateUid",
191
+ "createComment",
192
+ "updateComment",
193
+ "deleteComment",
194
+ "createField",
195
+ "createItem",
196
+ "createItems",
197
+ "deleteField",
198
+ "deleteFile",
199
+ "deleteFiles",
200
+ "readActivities",
201
+ "readActivity",
202
+ "deleteItem",
203
+ "deleteItems",
204
+ "deleteUser",
205
+ "deleteUsers",
206
+ "importFile",
207
+ "readCollection",
208
+ "readCollections",
209
+ "createCollection",
210
+ "updateCollection",
211
+ "deleteCollection",
212
+ "readField",
213
+ "readFieldsByCollection",
214
+ "readFields",
215
+ "readFile",
216
+ "readFiles",
217
+ "readItem",
218
+ "readItems",
219
+ "readSingleton",
220
+ "readMe",
221
+ "createUser",
222
+ "createUsers",
223
+ "readUser",
224
+ "readUsers",
225
+ "updateField",
226
+ "updateFile",
227
+ "updateFiles",
228
+ "updateFolder",
229
+ "updateFolders",
230
+ "updateItem",
231
+ "updateItems",
232
+ "updateSingleton",
233
+ "updateMe",
234
+ "updateUser",
235
+ "updateUsers",
236
+ "withToken"
237
+ ]
238
+ };
239
+ addImportsSources(directusSdkImports);
197
240
  nuxt.hook("nitro:config", (nitroConfig) => {
198
241
  nitroConfig.alias = nitroConfig.alias || {};
199
242
  nitroConfig.externals = defu(typeof nitroConfig.externals === "object" ? nitroConfig.externals : {}, {
200
243
  inline: [resolver.resolve("./runtime")]
201
244
  });
202
- nitroConfig.alias[`#${configKey}`] = resolver.resolve("./runtime/server/services");
245
+ nitroConfig.imports = nitroConfig.imports || {};
246
+ nitroConfig.imports.presets = nitroConfig.imports.presets || [];
247
+ nitroConfig.imports.presets.push(directusSdkImports);
203
248
  });
204
249
  try {
205
250
  const typesPath = addTypeTemplate({
206
251
  filename: `types/${configKey}-server.d.ts`,
207
252
  getContents: () => [
208
- `declare module '#${configKey}' {`,
253
+ "declare global {",
209
254
  ` const useDirectus: typeof import('${resolver.resolve("./runtime/server/services")}').useDirectus`,
210
255
  ` const useAdminDirectus: typeof import('${resolver.resolve("./runtime/server/services")}').useAdminDirectus`,
211
256
  ` const useDirectusUrl: typeof import('${resolver.resolve("./runtime/server/services")}').useDirectusUrl`,
212
257
  ` const useDirectusAccessToken: typeof import('${resolver.resolve("./runtime/server/services")}').useDirectusAccessToken`,
213
- "}"
258
+ "}",
259
+ `export { useDirectus, useAdminDirectus, useDirectusUrl, useDirectusAccessToken } from '${resolver.resolve("./runtime/server/services")}';`
214
260
  ].join("\n")
215
261
  }).dst;
216
262
  nuxt.hook("prepare:types", (options2) => {
@@ -258,59 +304,6 @@ const module = defineNuxtModule({
258
304
  logger.info("Add DIRECTUS_ADMIN_TOKEN to the .env file to generate directus types");
259
305
  }
260
306
  }
261
- addImportsSources({
262
- from: "@directus/sdk",
263
- imports: [
264
- "aggregate",
265
- "generateUid",
266
- "createComment",
267
- "updateComment",
268
- "deleteComment",
269
- "createField",
270
- "createItem",
271
- "createItems",
272
- "deleteField",
273
- "deleteFile",
274
- "deleteFiles",
275
- "readActivities",
276
- "readActivity",
277
- "deleteItem",
278
- "deleteItems",
279
- "deleteUser",
280
- "deleteUsers",
281
- "importFile",
282
- "readCollection",
283
- "readCollections",
284
- "createCollection",
285
- "updateCollection",
286
- "deleteCollection",
287
- "readField",
288
- "readFieldsByCollection",
289
- "readFields",
290
- "readFile",
291
- "readFiles",
292
- "readItem",
293
- "readItems",
294
- "readSingleton",
295
- "readMe",
296
- "createUser",
297
- "createUsers",
298
- "readUser",
299
- "readUsers",
300
- "updateField",
301
- "updateFile",
302
- "updateFiles",
303
- "updateFolder",
304
- "updateFolders",
305
- "updateItem",
306
- "updateItems",
307
- "updateSingleton",
308
- "updateMe",
309
- "updateUser",
310
- "updateUsers",
311
- "withToken"
312
- ]
313
- });
314
307
  }
315
308
  });
316
309
 
@@ -1,5 +1,5 @@
1
+ import type { DirectusUsers } from 'nuxt/app';
1
2
  import type { ComputedRef, Ref } from '#imports';
2
- import type { DirectusUsers } from '#build/types/directus';
3
3
  export declare function useDirectusUser(): Ref<DirectusUsers | null>;
4
4
  export interface DirectusAuth {
5
5
  user: Ref<DirectusUsers | null>;
@@ -1,4 +1,4 @@
1
1
  import type { AuthenticationClient, DirectusClient, RestClient, WebSocketClient } from '@directus/sdk';
2
- import type { DirectusSchema } from '#build/types/directus';
2
+ import type { DirectusSchema } from 'nuxt/app';
3
3
  export declare function useDirectusUrl(): string;
4
4
  export declare function useDirectus(token?: string): DirectusClient<DirectusSchema> & AuthenticationClient<DirectusSchema> & RestClient<DirectusSchema> & WebSocketClient<DirectusSchema>;
@@ -1,5 +1,5 @@
1
1
  import type { Query } from '@directus/sdk';
2
- import type { AllDirectusCollections, DirectusFiles } from '#build/types/directus';
2
+ import type { AllDirectusCollections, DirectusFiles } from 'nuxt/app';
3
3
  export type DirectusThumbnailFormat = 'jpg' | 'png' | 'webp' | 'tiff';
4
4
  export type DirectusThumbnailFit = 'cover' | 'contain' | 'inside' | 'outside';
5
5
  export interface DirectusThumbnailOptions {
@@ -15,8 +15,8 @@ interface FileUpload {
15
15
  file: File;
16
16
  data?: Record<keyof DirectusFiles, string>;
17
17
  }
18
- export declare function uploadDirectusFile(file: FileUpload, query?: Query<AllDirectusCollections, AllDirectusCollections['directus_files']>): Promise<DirectusFiles | null>;
19
- export declare function uploadDirectusFiles(files: FileUpload[], query?: Query<AllDirectusCollections, AllDirectusCollections['directus_files']>): Promise<DirectusFiles[]>;
18
+ export declare function uploadDirectusFile(file: FileUpload, query?: Query<AllDirectusCollections, AllDirectusCollections['directus_files']>): Promise<any>;
19
+ export declare function uploadDirectusFiles(files: FileUpload[], query?: Query<AllDirectusCollections, AllDirectusCollections['directus_files']>): Promise<any>;
20
20
  export declare function getDirectusAssetUrl(fileId: string, options?: {
21
21
  token?: string | boolean;
22
22
  }): string;
@@ -3,15 +3,15 @@ import { useDirectus, useDirectusUrl } from "./directus.mjs";
3
3
  import { useDirectusTokens } from "./tokens.mjs";
4
4
  export async function uploadDirectusFile(file, query) {
5
5
  const result = await uploadDirectusFiles([file], query);
6
- return result[0] ?? null;
6
+ return Array.isArray(result) ? result[0] : result;
7
7
  }
8
8
  export async function uploadDirectusFiles(files, query) {
9
9
  const directus = useDirectus();
10
10
  const formData = new FormData();
11
- files.forEach(({ file, data }, i) => {
11
+ files.forEach(({ file, data }) => {
12
12
  if (data) {
13
13
  Object.entries(data).forEach(([key, value]) => {
14
- formData.set(`file_${i + 1}_${key}`, value);
14
+ formData.set(key, value);
15
15
  });
16
16
  }
17
17
  formData.set("file", file);
@@ -21,10 +21,13 @@ export async function uploadDirectusFiles(files, query) {
21
21
  export function getDirectusAssetUrl(fileId, options) {
22
22
  const url = new URL(`${useDirectusUrl()}assets/${fileId}`);
23
23
  if (options?.token) {
24
- if (typeof options.token === "string")
24
+ if (typeof options.token === "string") {
25
25
  url.searchParams.append("access_token", options.token);
26
- else
27
- url.searchParams.append("access_token", useDirectusTokens().accessToken.value ?? "");
26
+ } else if (typeof options.token === "boolean") {
27
+ const token = useDirectusTokens().accessToken.value;
28
+ if (token)
29
+ url.searchParams.append("access_token", token);
30
+ }
28
31
  }
29
32
  return url.href;
30
33
  }
@@ -1,6 +1,6 @@
1
1
  import type { AuthenticationClient, DirectusClient, RestClient } from '@directus/sdk';
2
2
  import type { H3Event } from 'h3';
3
- import type { DirectusSchema } from '#build/types/directus';
3
+ import type { DirectusSchema } from 'nuxt/app';
4
4
  export declare function useDirectusAccessToken(event: H3Event): string | undefined;
5
5
  export declare function useDirectusUrl(): string;
6
6
  export declare function useDirectus(token?: string): DirectusClient<DirectusSchema> & AuthenticationClient<DirectusSchema> & RestClient<DirectusSchema>;
@@ -35,18 +35,8 @@ export async function generateTypes(options) {
35
35
  return item.startsWith("directus_users") || !item.startsWith("directus_");
36
36
  }));
37
37
  return `
38
- // This file is auto-generated by @nuxtjs/directus-sdk
39
- ${types}
40
-
41
- export interface AllDirectusCollections {
42
- ${allTypes}
43
- };
44
-
45
- export interface DirectusSchema {
46
- ${schemaTypes}
47
- };
48
-
49
- declare global {
38
+ // This file is auto-generated by nuxt-directus-sdk
39
+ declare module '#app' {
50
40
  ${types.replaceAll("export type", "type")}
51
41
 
52
42
  interface AllDirectusCollections {
@@ -57,7 +47,6 @@ export async function generateTypes(options) {
57
47
  ${schemaTypes}
58
48
  };
59
49
  }
60
-
61
50
  export {};
62
51
  `;
63
52
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-directus-sdk",
3
3
  "type": "module",
4
- "version": "0.0.8",
4
+ "version": "0.0.9",
5
5
  "description": "A nuxt module that uses the directus SDK",
6
6
  "author": "Matthew Rollinson <matt@rolley.io>",
7
7
  "license": "MIT",