@devite/nuxt-sanity 2.19.0 → 2.19.1
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.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/composables/query.d.ts +2 -7
- package/dist/runtime/composables/query.js +26 -17
- package/package.json +28 -13
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -6,11 +6,6 @@ export interface UseSanityQueryOptions<T> extends AsyncDataOptions<T> {
|
|
|
6
6
|
client?: 'default' | 'minimal';
|
|
7
7
|
perspective?: 'drafts' | 'preview-drafts' | 'published' | 'raw';
|
|
8
8
|
}
|
|
9
|
-
export interface SanityQueryResponse<T> {
|
|
10
|
-
data: T;
|
|
11
|
-
sourceMap?: ContentSourceMap;
|
|
12
|
-
encodeDataAttribute?: EncodeDataAttributeFunction;
|
|
13
|
-
}
|
|
14
9
|
export type AsyncSanityData<T, E> = _AsyncSanityData<T, E> & Promise<_AsyncSanityData<T, E>>;
|
|
15
10
|
interface AsyncDataExecuteOptions {
|
|
16
11
|
_initial?: boolean;
|
|
@@ -26,6 +21,6 @@ export interface _AsyncSanityData<T, E> {
|
|
|
26
21
|
error: Ref<E | null>;
|
|
27
22
|
status: Ref<AsyncDataRequestStatus>;
|
|
28
23
|
}
|
|
29
|
-
export declare function useLazySanityQuery<T = unknown, E = Error>(query: string, params?: QueryParams, options?: UseSanityQueryOptions<
|
|
30
|
-
export declare function useSanityQuery<T = unknown, E = Error>(query: string, _params?: QueryParams, options?: UseSanityQueryOptions<
|
|
24
|
+
export declare function useLazySanityQuery<T = unknown, E = Error>(query: string, params?: QueryParams, options?: UseSanityQueryOptions<T | null>): AsyncSanityData<T | null, E>;
|
|
25
|
+
export declare function useSanityQuery<T = unknown, E = Error>(query: string, _params?: QueryParams, options?: UseSanityQueryOptions<T | null>, lazy?: boolean): AsyncSanityData<T | null, E>;
|
|
31
26
|
export {};
|
|
@@ -4,6 +4,7 @@ import { reactive, ref } from "vue";
|
|
|
4
4
|
import defu from "defu";
|
|
5
5
|
import useSanityClient from "../utils/useSanityClient.js";
|
|
6
6
|
import { useSanityVisualEditingState } from "./visual_editing_state.js";
|
|
7
|
+
import { useNuxtApp } from "#imports";
|
|
7
8
|
import { useRuntimeConfig } from "#imports";
|
|
8
9
|
export function useLazySanityQuery(query, params = {}, options = {}) {
|
|
9
10
|
return useSanityQuery(query, params, options, true);
|
|
@@ -19,37 +20,45 @@ export function useSanityQuery(query, _params = {}, options = {}, lazy = false)
|
|
|
19
20
|
options.watch ||= [];
|
|
20
21
|
options.watch.push(reactiveParams);
|
|
21
22
|
}
|
|
22
|
-
const data = ref(null);
|
|
23
23
|
const sourceMap = ref(null);
|
|
24
24
|
const encodeDataAttribute = ref(() => {
|
|
25
25
|
});
|
|
26
26
|
function updateRefs(resultData, resultSourceMap, resultEncodeDataAttribute) {
|
|
27
|
-
data.value = resultData;
|
|
27
|
+
pendingData.data.value = resultData;
|
|
28
28
|
sourceMap.value = resultSourceMap || null;
|
|
29
29
|
if (resultEncodeDataAttribute) encodeDataAttribute.value = resultEncodeDataAttribute;
|
|
30
30
|
}
|
|
31
|
-
const fetchFunc = () =>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
const fetchFunc = () => {
|
|
32
|
+
const sanityFetchPromises = useNuxtApp()._sanityFetchPromises ||= /* @__PURE__ */ new Map();
|
|
33
|
+
if (sanityFetchPromises.has(key)) {
|
|
34
|
+
return sanityFetchPromises.get(key);
|
|
35
|
+
}
|
|
36
|
+
const fetchPromise = new Promise((resolve) => {
|
|
37
|
+
(visualEditingEnabled ? import("../utils/visualEditing/fetchSanityData") : import("../utils/default/fetchSanityData")).then(async ({ fetchSanityData }) => {
|
|
38
|
+
const client = import.meta.server ? (await import("../server/utils/useSanityClient.js")).default(clientType, sanityConfig) : await useSanityClient(visualEditingEnabled, clientType, sanityConfig);
|
|
39
|
+
function onDataUpdate(resultData, resultSourceMap, resultEncodeDataAttribute) {
|
|
40
|
+
updateRefs(resultData, resultSourceMap, resultEncodeDataAttribute);
|
|
41
|
+
resolve(resultData);
|
|
42
|
+
sanityFetchPromises.delete(key);
|
|
43
|
+
}
|
|
44
|
+
const fetchSanityDataFunc = fetchSanityData;
|
|
45
|
+
fetchSanityDataFunc(query, reactiveParams, client, perspective, onDataUpdate);
|
|
46
|
+
});
|
|
41
47
|
});
|
|
42
|
-
|
|
48
|
+
sanityFetchPromises.set(key, fetchPromise);
|
|
49
|
+
return fetchPromise;
|
|
50
|
+
};
|
|
43
51
|
const key = "sanity-" + hash(query + (reactiveParams ? JSON.stringify(reactiveParams) : ""));
|
|
44
52
|
const pendingData = lazy ? useLazyAsyncData(key, fetchFunc, options) : useAsyncData(key, fetchFunc, options);
|
|
53
|
+
Object.assign(
|
|
54
|
+
pendingData,
|
|
55
|
+
{ sourceMap, encodeDataAttribute }
|
|
56
|
+
);
|
|
45
57
|
if (visualEditingEnabled && import.meta.client) {
|
|
46
58
|
import("../utils/visualEditing/subscribeToChanges.js").then(async ({ subscribeToChanges }) => {
|
|
47
59
|
const client = await useSanityClient(visualEditingEnabled, clientType, sanityConfig);
|
|
48
60
|
subscribeToChanges(query, reactiveParams, client, updateRefs);
|
|
49
61
|
});
|
|
50
62
|
}
|
|
51
|
-
return
|
|
52
|
-
updateRefs(value.data, value.sourceMap);
|
|
53
|
-
resolve({ ...pendingData, data, sourceMap, encodeDataAttribute });
|
|
54
|
-
})), { ...pendingData, data, sourceMap, encodeDataAttribute });
|
|
63
|
+
return pendingData;
|
|
55
64
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devite/nuxt-sanity",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.1",
|
|
4
4
|
"description": "Advanced Sanity integration for Nuxt.js.",
|
|
5
5
|
"repository": "devite-io/nuxt-sanity",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,6 +26,18 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"prepack": "nuxt-module-build build",
|
|
31
|
+
"dev": "nuxi dev playground",
|
|
32
|
+
"dev:cms": "cd playground/cms && pnpm dev",
|
|
33
|
+
"dev:build": "nuxi build playground",
|
|
34
|
+
"dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
|
|
35
|
+
"release": "pnpm lint && pnpm test && pnpm prepack && git push && changelogen --release && pnpm publish --access=public && git push --follow-tags",
|
|
36
|
+
"lint": "eslint --fix .",
|
|
37
|
+
"test": "vitest run --passWithNoTests",
|
|
38
|
+
"test:watch": "vitest watch",
|
|
39
|
+
"test:types": "vue-tsc --noEmit"
|
|
40
|
+
},
|
|
29
41
|
"dependencies": {
|
|
30
42
|
"@nuxt/image": "^2.0.0",
|
|
31
43
|
"@portabletext/vue": "^1.0.14",
|
|
@@ -58,6 +70,20 @@
|
|
|
58
70
|
"vue-router": "^4.6.4",
|
|
59
71
|
"vue-tsc": "^3.2.4"
|
|
60
72
|
},
|
|
73
|
+
"pnpm": {
|
|
74
|
+
"overrides": {
|
|
75
|
+
"sharp": "0.34.4",
|
|
76
|
+
"css-tree": "2.2.1"
|
|
77
|
+
},
|
|
78
|
+
"onlyBuiltDependencies": [
|
|
79
|
+
"@parcel/watcher",
|
|
80
|
+
"@swc/core",
|
|
81
|
+
"esbuild",
|
|
82
|
+
"scrollmirror",
|
|
83
|
+
"sharp",
|
|
84
|
+
"yarn"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
61
87
|
"resolutions": {
|
|
62
88
|
"@devite/nuxt-sanity": "link:."
|
|
63
89
|
},
|
|
@@ -65,16 +91,5 @@
|
|
|
65
91
|
"externals": [
|
|
66
92
|
"@sanity/client"
|
|
67
93
|
]
|
|
68
|
-
},
|
|
69
|
-
"scripts": {
|
|
70
|
-
"dev": "nuxi dev playground",
|
|
71
|
-
"dev:cms": "cd playground/cms && pnpm dev",
|
|
72
|
-
"dev:build": "nuxi build playground",
|
|
73
|
-
"dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
|
|
74
|
-
"release": "pnpm lint && pnpm test && pnpm prepack && git push && changelogen --release && pnpm publish --access=public && git push --follow-tags",
|
|
75
|
-
"lint": "eslint --fix .",
|
|
76
|
-
"test": "vitest run --passWithNoTests",
|
|
77
|
-
"test:watch": "vitest watch",
|
|
78
|
-
"test:types": "vue-tsc --noEmit"
|
|
79
94
|
}
|
|
80
|
-
}
|
|
95
|
+
}
|