@enfyra/sdk-nuxt 0.3.12 → 0.3.14

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.
@@ -52,13 +52,52 @@ export function useEnfyraApi(path, opts = {}) {
52
52
  ...opts.headers
53
53
  }
54
54
  };
55
- if (key) {
55
+ if (key !== void 0) {
56
56
  fetchOptions.key = key;
57
57
  }
58
- if (opts.default) {
58
+ if (opts.default !== void 0) {
59
59
  fetchOptions.default = opts.default;
60
60
  }
61
- return useFetch(finalUrl, fetchOptions);
61
+ if (opts.server !== void 0) {
62
+ fetchOptions.server = opts.server;
63
+ }
64
+ if (opts.lazy !== void 0) {
65
+ fetchOptions.lazy = opts.lazy;
66
+ }
67
+ if (opts.immediate !== void 0) {
68
+ fetchOptions.immediate = opts.immediate;
69
+ }
70
+ if (opts.transform !== void 0) {
71
+ fetchOptions.transform = opts.transform;
72
+ }
73
+ if (opts.pick !== void 0) {
74
+ fetchOptions.pick = opts.pick;
75
+ }
76
+ if (opts.watch !== void 0) {
77
+ fetchOptions.watch = opts.watch;
78
+ }
79
+ if (opts.deep !== void 0) {
80
+ fetchOptions.deep = opts.deep;
81
+ }
82
+ if (opts.getCachedData !== void 0) {
83
+ fetchOptions.getCachedData = opts.getCachedData;
84
+ }
85
+ if (opts.refresh !== void 0) {
86
+ fetchOptions.refresh = opts.refresh;
87
+ }
88
+ if (opts.refreshInterval !== void 0) {
89
+ fetchOptions.refreshInterval = opts.refreshInterval;
90
+ }
91
+ if (opts.dedupe !== void 0) {
92
+ fetchOptions.dedupe = opts.dedupe;
93
+ }
94
+ const result = useFetch(finalUrl, fetchOptions);
95
+ return {
96
+ ...result,
97
+ loading: result.pending,
98
+ pending: result.pending
99
+ // Keep for backward compatibility
100
+ };
62
101
  }
63
102
  const data = ref(null);
64
103
  const error = ref(null);
package/dist/index.d.ts CHANGED
@@ -51,6 +51,28 @@ interface BaseApiOptions<T> {
51
51
  ssr?: boolean;
52
52
  /** Unique key for useFetch caching */
53
53
  key?: string;
54
+ /** Whether to fetch on server (default: true) - Only applies when ssr: true */
55
+ server?: boolean;
56
+ /** Don't block navigation (default: false) - Only applies when ssr: true */
57
+ lazy?: boolean;
58
+ /** Execute immediately (default: true) - Only applies when ssr: true */
59
+ immediate?: boolean;
60
+ /** Transform the response data - Only applies when ssr: true */
61
+ transform?: (data: any) => T;
62
+ /** Pick specific fields from response - Only applies when ssr: true */
63
+ pick?: string[];
64
+ /** Watch reactive sources and refetch when they change - Only applies when ssr: true */
65
+ watch?: any[];
66
+ /** Deep watch (default: false) - Only applies when ssr: true */
67
+ deep?: boolean;
68
+ /** Custom cache data retrieval function - Only applies when ssr: true */
69
+ getCachedData?: (key: string) => T | null;
70
+ /** Enable refresh (default: true) - Only applies when ssr: true */
71
+ refresh?: boolean;
72
+ /** Auto refresh interval in milliseconds - Only applies when ssr: true */
73
+ refreshInterval?: number;
74
+ /** Deduplication key - Only applies when ssr: true */
75
+ dedupe?: string;
54
76
  }
55
77
  interface BatchApiOptions {
56
78
  /** Batch size for chunking large operations (default: no limit) - Only available for batch operations */
@@ -85,11 +107,12 @@ export interface BackendErrorExtended extends BackendError {
85
107
  }
86
108
  import type { Ref } from 'vue';
87
109
  import type { AsyncData } from 'nuxt/app';
88
- export interface UseEnfyraApiSSRReturn<T> extends AsyncData<T | null, ApiError> {
110
+ export interface UseEnfyraApiSSRReturn<T> extends Omit<AsyncData<T | null, ApiError>, 'pending' | 'error'> {
89
111
  data: Ref<T | null>;
90
- pending: Ref<boolean>;
112
+ loading: Ref<boolean>;
91
113
  error: Ref<ApiError | null>;
92
114
  refresh: () => Promise<void>;
115
+ pending?: Ref<boolean>;
93
116
  }
94
117
  interface BaseExecuteOptions {
95
118
  body?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@enfyra/sdk-nuxt",
3
3
  "configKey": "enfyraSDK",
4
- "version": "0.3.12",
4
+ "version": "0.3.14",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "0.8.4",
7
7
  "unbuild": "2.0.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enfyra/sdk-nuxt",
3
- "version": "0.3.12",
3
+ "version": "0.3.14",
4
4
  "description": "Nuxt SDK for Enfyra CMS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -92,14 +92,56 @@ export function useEnfyraApi<T = any>(
92
92
  },
93
93
  };
94
94
 
95
- if (key) {
95
+ // Pass all useFetch-specific options
96
+ if (key !== undefined) {
96
97
  fetchOptions.key = key;
97
98
  }
98
- if (opts.default) {
99
+ if (opts.default !== undefined) {
99
100
  fetchOptions.default = opts.default;
100
101
  }
102
+ if (opts.server !== undefined) {
103
+ fetchOptions.server = opts.server;
104
+ }
105
+ if (opts.lazy !== undefined) {
106
+ fetchOptions.lazy = opts.lazy;
107
+ }
108
+ if (opts.immediate !== undefined) {
109
+ fetchOptions.immediate = opts.immediate;
110
+ }
111
+ if (opts.transform !== undefined) {
112
+ fetchOptions.transform = opts.transform;
113
+ }
114
+ if (opts.pick !== undefined) {
115
+ fetchOptions.pick = opts.pick;
116
+ }
117
+ if (opts.watch !== undefined) {
118
+ fetchOptions.watch = opts.watch;
119
+ }
120
+ if (opts.deep !== undefined) {
121
+ fetchOptions.deep = opts.deep;
122
+ }
123
+ if (opts.getCachedData !== undefined) {
124
+ fetchOptions.getCachedData = opts.getCachedData;
125
+ }
126
+ if (opts.refresh !== undefined) {
127
+ fetchOptions.refresh = opts.refresh;
128
+ }
129
+ if (opts.refreshInterval !== undefined) {
130
+ fetchOptions.refreshInterval = opts.refreshInterval;
131
+ }
132
+ if (opts.dedupe !== undefined) {
133
+ fetchOptions.dedupe = opts.dedupe;
134
+ }
101
135
 
102
- return useFetch<T>(finalUrl, fetchOptions) as UseEnfyraApiSSRReturn<T>;
136
+ const result = useFetch<T>(finalUrl, fetchOptions);
137
+
138
+ // Map pending to loading for better naming
139
+ // useFetch returns AsyncData with 'pending', but UseEnfyraApiSSRReturn uses 'loading'
140
+ return {
141
+ ...result,
142
+ loading: result.pending,
143
+ pending: result.pending, // Keep for backward compatibility
144
+ } as UseEnfyraApiSSRReturn<T>;
103
145
  }
104
146
  const data = ref<T | null>(null);
105
147
  const error = ref<ApiError | null>(null);
@@ -54,6 +54,28 @@ interface BaseApiOptions<T> {
54
54
  ssr?: boolean;
55
55
  /** Unique key for useFetch caching */
56
56
  key?: string;
57
+ /** Whether to fetch on server (default: true) - Only applies when ssr: true */
58
+ server?: boolean;
59
+ /** Don't block navigation (default: false) - Only applies when ssr: true */
60
+ lazy?: boolean;
61
+ /** Execute immediately (default: true) - Only applies when ssr: true */
62
+ immediate?: boolean;
63
+ /** Transform the response data - Only applies when ssr: true */
64
+ transform?: (data: any) => T;
65
+ /** Pick specific fields from response - Only applies when ssr: true */
66
+ pick?: string[];
67
+ /** Watch reactive sources and refetch when they change - Only applies when ssr: true */
68
+ watch?: any[];
69
+ /** Deep watch (default: false) - Only applies when ssr: true */
70
+ deep?: boolean;
71
+ /** Custom cache data retrieval function - Only applies when ssr: true */
72
+ getCachedData?: (key: string) => T | null;
73
+ /** Enable refresh (default: true) - Only applies when ssr: true */
74
+ refresh?: boolean;
75
+ /** Auto refresh interval in milliseconds - Only applies when ssr: true */
76
+ refreshInterval?: number;
77
+ /** Deduplication key - Only applies when ssr: true */
78
+ dedupe?: string;
57
79
  }
58
80
 
59
81
  interface BatchApiOptions {
@@ -95,11 +117,13 @@ export interface BackendErrorExtended extends BackendError {
95
117
  import type { Ref } from 'vue';
96
118
  import type { AsyncData } from 'nuxt/app';
97
119
 
98
- export interface UseEnfyraApiSSRReturn<T> extends AsyncData<T | null, ApiError> {
120
+ export interface UseEnfyraApiSSRReturn<T> extends Omit<AsyncData<T | null, ApiError>, 'pending' | 'error'> {
99
121
  data: Ref<T | null>;
100
- pending: Ref<boolean>;
101
- error: Ref<ApiError | null>;
122
+ loading: Ref<boolean>;
123
+ error: Ref<ApiError | null>; // Use null instead of undefined for consistency
102
124
  refresh: () => Promise<void>;
125
+ // Keep pending for backward compatibility, but it's an alias of loading
126
+ pending?: Ref<boolean>;
103
127
  }
104
128
 
105
129
  interface BaseExecuteOptions {