next-sanity 0.4.0 → 0.4.1-beta.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.
package/README.md CHANGED
@@ -71,7 +71,7 @@ export const config = {
71
71
  **/
72
72
  dataset: process.env.NEXT_PUBLIC_SANITY_DATASET || 'production',
73
73
  projectId: process.env.NEXT_PUBLIC_SANITY_PROJECT_ID,
74
- apiVersion: '2021-03-25',
74
+ apiVersion: '2021-10-21', // Learn more: https://www.sanity.io/docs/api-versioning
75
75
  /**
76
76
  * Set useCdn to `false` if your application require the freshest possible
77
77
  * data always (potentially slightly slower and a bit more expensive).
@@ -100,6 +100,7 @@ var EMPTY_PARAMS = {};
100
100
  function createPreviewSubscriptionHook(_ref) {
101
101
  var projectId = _ref.projectId,
102
102
  dataset = _ref.dataset,
103
+ useGroqBeta = _ref.useGroqBeta,
103
104
  _ref$documentLimit = _ref.documentLimit,
104
105
  documentLimit = _ref$documentLimit === void 0 ? 3000 : _ref$documentLimit;
105
106
  // Only construct/setup the store when `getStore()` is called
@@ -132,6 +133,7 @@ function createPreviewSubscriptionHook(_ref) {
132
133
  projectId: projectId,
133
134
  dataset: dataset,
134
135
  documentLimit: documentLimit,
136
+ useGroqBeta: useGroqBeta,
135
137
  listen: true,
136
138
  overlayDrafts: true,
137
139
  subscriptionThrottleMs: 10
@@ -1 +1 @@
1
- {"version":3,"file":"next-sanity.cjs.development.js","sources":["../src/client.ts","../src/imageUrlBuilder.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/portableText.tsx"],"sourcesContent":["import sanityClient from '@sanity/client'\nimport {ClientConfig} from './types'\n\nexport function createClient(config: ClientConfig) {\n return sanityClient(config)\n}\n","import getImageUrlBuilder from '@sanity/image-url'\nimport {ProjectConfig} from './types'\n\nexport function createImageUrlBuilder({projectId, dataset}: ProjectConfig) {\n return getImageUrlBuilder({projectId, dataset})\n}\n","export interface Aborter {\n abort(): void\n signal?: AbortSignal\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? {signal: undefined, abort: noop}\n : new AbortController()\n}\n\nfunction noop() {\n // intentional noop\n}\n","import {useEffect, useState} from 'react'\nimport {CurrentUser} from './types'\nimport {getAborter, Aborter} from './aborter'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(projectId: string, abort?: Aborter): Promise<CurrentUser | null> {\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort?.signal,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\n .catch((err: Error) => (err.name === 'AbortError' ? null : Promise.reject(err)))\n}\n\nfunction useCurrentUser(projectId: string) {\n const [data, setUser] = useState<CurrentUser | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n const aborter = getAborter()\n getCurrentUser(projectId, aborter).then(setUser).catch(setError)\n return () => aborter.abort()\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {useState} from 'react'\nimport {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useDeepCompareEffectNoCheck as useDeepCompareEffect} from 'use-deep-compare-effect'\nimport {ProjectConfig} from './types'\nimport {getCurrentUser} from './currentUser'\nimport {getAborter} from './aborter'\n\nconst EMPTY_PARAMS = {}\n\ninterface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Record<string, unknown>\n initialData?: R\n}\n\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n documentLimit = 3000,\n}: ProjectConfig & {documentLimit?: number}) {\n // Only construct/setup the store when `getStore()` is called\n let store: Promise<GroqStore>\n\n return function usePreviewSubscription<R = any>(\n query: string,\n options: SubscriptionOptions<R> = {}\n ) {\n const {params = EMPTY_PARAMS, initialData, enabled} = options\n return useQuerySubscription<R>({\n getStore,\n projectId,\n query,\n params,\n initialData: initialData as any,\n enabled: enabled ? typeof window !== 'undefined' : false,\n })\n }\n\n function getStore() {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) =>\n groqStore({\n projectId,\n dataset,\n documentLimit,\n listen: true,\n overlayDrafts: true,\n subscriptionThrottleMs: 10,\n })\n )\n }\n return store\n }\n}\n\nfunction useQuerySubscription<R = any>(options: {\n getStore: () => Promise<GroqStore>\n projectId: string\n query: string\n params: Record<string, unknown>\n initialData: R\n enabled: boolean\n}) {\n const {getStore, projectId, query, params, initialData, enabled = false} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n\n // Use \"deep\" dependency comparison because params are often not _referentially_ equal,\n // but contains the same shallow properties, eg `{\"slug\": \"some-slug\"}`\n useDeepCompareEffect(() => {\n if (!enabled) {\n return () => {\n /* intentional noop */\n }\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter)\n .then((user) => {\n if (user) {\n return\n }\n\n // eslint-disable-next-line no-console\n console.warn('Not authenticated - preview not available')\n throw new Error('Not authenticated - preview not available')\n })\n .then(getStore)\n .then((store) => {\n subscription = store.subscribe(query, params, (err, result) => {\n if (err) {\n setError(err)\n } else {\n setData(result)\n }\n })\n })\n .catch(setError)\n .finally(() => setLoading(false))\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n","import React from 'react'\nimport SanityPortableText, {\n PortableTextProps,\n PortableTextSerializers,\n} from '@sanity/block-content-to-react'\nimport {ProjectConfig} from './types'\n\nexport function createPortableTextComponent({\n projectId,\n dataset,\n serializers,\n}: ProjectConfig & {serializers?: PortableTextSerializers}) {\n return function PortableText(props: PortableTextProps) {\n return (\n <SanityPortableText\n projectId={projectId}\n dataset={dataset}\n serializers={serializers}\n {...props}\n />\n )\n }\n}\n"],"names":["createClient","config","sanityClient","createImageUrlBuilder","projectId","dataset","getImageUrlBuilder","getAborter","AbortController","signal","undefined","abort","noop","createCurrentUserHook","useCurrentUser","getCurrentUser","fetch","credentials","then","res","json","id","catch","err","name","Promise","reject","useState","data","setUser","error","setError","useEffect","aborter","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useDeepCompareEffect","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","createPortableTextComponent","serializers","PortableText","props","React","SanityPortableText"],"mappings":"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"}
1
+ {"version":3,"file":"next-sanity.cjs.development.js","sources":["../src/client.ts","../src/imageUrlBuilder.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/portableText.tsx"],"sourcesContent":["import sanityClient from '@sanity/client'\nimport {ClientConfig} from './types'\n\nexport function createClient(config: ClientConfig) {\n return sanityClient(config)\n}\n","import getImageUrlBuilder from '@sanity/image-url'\nimport {ProjectConfig} from './types'\n\nexport function createImageUrlBuilder({projectId, dataset}: ProjectConfig) {\n return getImageUrlBuilder({projectId, dataset})\n}\n","export interface Aborter {\n abort(): void\n signal?: AbortSignal\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? {signal: undefined, abort: noop}\n : new AbortController()\n}\n\nfunction noop() {\n // intentional noop\n}\n","import {useEffect, useState} from 'react'\nimport {CurrentUser} from './types'\nimport {getAborter, Aborter} from './aborter'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(projectId: string, abort?: Aborter): Promise<CurrentUser | null> {\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort?.signal,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\n .catch((err: Error) => (err.name === 'AbortError' ? null : Promise.reject(err)))\n}\n\nfunction useCurrentUser(projectId: string) {\n const [data, setUser] = useState<CurrentUser | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n const aborter = getAborter()\n getCurrentUser(projectId, aborter).then(setUser).catch(setError)\n return () => aborter.abort()\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {useState} from 'react'\nimport {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useDeepCompareEffectNoCheck as useDeepCompareEffect} from 'use-deep-compare-effect'\nimport {ProjectConfig} from './types'\nimport {getCurrentUser} from './currentUser'\nimport {getAborter} from './aborter'\n\nconst EMPTY_PARAMS = {}\n\ninterface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Record<string, unknown>\n initialData?: R\n}\n\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n useGroqBeta,\n documentLimit = 3000,\n}: ProjectConfig & {documentLimit?: number; useGroqBeta?: boolean}) {\n // Only construct/setup the store when `getStore()` is called\n let store: Promise<GroqStore>\n\n return function usePreviewSubscription<R = any>(\n query: string,\n options: SubscriptionOptions<R> = {}\n ) {\n const {params = EMPTY_PARAMS, initialData, enabled} = options\n return useQuerySubscription<R>({\n getStore,\n projectId,\n query,\n params,\n initialData: initialData as any,\n enabled: enabled ? typeof window !== 'undefined' : false,\n })\n }\n\n function getStore() {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) =>\n groqStore({\n projectId,\n dataset,\n documentLimit,\n useGroqBeta,\n listen: true,\n overlayDrafts: true,\n subscriptionThrottleMs: 10,\n })\n )\n }\n return store\n }\n}\n\nfunction useQuerySubscription<R = any>(options: {\n getStore: () => Promise<GroqStore>\n projectId: string\n query: string\n params: Record<string, unknown>\n initialData: R\n enabled: boolean\n}) {\n const {getStore, projectId, query, params, initialData, enabled = false} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n\n // Use \"deep\" dependency comparison because params are often not _referentially_ equal,\n // but contains the same shallow properties, eg `{\"slug\": \"some-slug\"}`\n useDeepCompareEffect(() => {\n if (!enabled) {\n return () => {\n /* intentional noop */\n }\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter)\n .then((user) => {\n if (user) {\n return\n }\n\n // eslint-disable-next-line no-console\n console.warn('Not authenticated - preview not available')\n throw new Error('Not authenticated - preview not available')\n })\n .then(getStore)\n .then((store) => {\n subscription = store.subscribe(query, params, (err, result) => {\n if (err) {\n setError(err)\n } else {\n setData(result)\n }\n })\n })\n .catch(setError)\n .finally(() => setLoading(false))\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n","import React from 'react'\nimport SanityPortableText, {\n PortableTextProps,\n PortableTextSerializers,\n} from '@sanity/block-content-to-react'\nimport {ProjectConfig} from './types'\n\nexport function createPortableTextComponent({\n projectId,\n dataset,\n serializers,\n}: ProjectConfig & {serializers?: PortableTextSerializers}) {\n return function PortableText(props: PortableTextProps) {\n return (\n <SanityPortableText\n projectId={projectId}\n dataset={dataset}\n serializers={serializers}\n {...props}\n />\n )\n }\n}\n"],"names":["createClient","config","sanityClient","createImageUrlBuilder","projectId","dataset","getImageUrlBuilder","getAborter","AbortController","signal","undefined","abort","noop","createCurrentUserHook","useCurrentUser","getCurrentUser","fetch","credentials","then","res","json","id","catch","err","name","Promise","reject","useState","data","setUser","error","setError","useEffect","aborter","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","useGroqBeta","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useDeepCompareEffect","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","createPortableTextComponent","serializers","PortableText","props","React","SanityPortableText"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@sanity/client")),r=e(require("@sanity/image-url")),n=require("react"),o=e(n),i=require("use-deep-compare-effect"),a=e(require("@sanity/block-content-to-react")),u=e(require("groq"));function c(){return"undefined"==typeof AbortController?{signal:void 0,abort:s}:new AbortController}function s(){}function f(e,t){return fetch("https://"+e+".api.sanity.io/v1/users/me",{credentials:"include",signal:null==t?void 0:t.signal}).then((function(e){return e.json()})).then((function(e){return null!=e&&e.id?e:null})).catch((function(e){return"AbortError"===e.name?null:Promise.reject(e)}))}var l={};exports.groq=u,exports.createClient=function(e){return t(e)},exports.createCurrentUserHook=function(e){var t=e.projectId;return function(){return function(e){var t=n.useState(),r=t[0],o=t[1],i=n.useState(),a=i[0],u=i[1];return n.useEffect((function(){var t=c();return f(e,t).then(o).catch(u),function(){return t.abort()}}),[e]),{data:r,error:a,loading:null!==r||!a}}(t)}},exports.createImageUrlBuilder=function(e){return r({projectId:e.projectId,dataset:e.dataset})},exports.createPortableTextComponent=function(e){var t=e.projectId,r=e.dataset,n=e.serializers;return function(e){return o.createElement(a,Object.assign({projectId:t,dataset:r,serializers:n},e))}},exports.createPreviewSubscriptionHook=function(e){var t,r=e.projectId,o=e.dataset,a=e.documentLimit,u=void 0===a?3e3:a;return function(e,t){void 0===t&&(t={});var o=t.params;return function(e){var t=e.getStore,r=e.projectId,o=e.query,a=e.params,u=e.initialData,s=e.enabled,l=void 0!==s&&s,d=n.useState(),p=d[0],v=d[1],b=n.useState(!1),h=b[0],m=b[1],g=n.useState(),j=g[0],y=g[1];return i.useDeepCompareEffectNoCheck((function(){if(!l)return function(){};m(!0);var e,n=c();return f(r,n).then((function(e){if(!e)throw console.warn("Not authenticated - preview not available"),new Error("Not authenticated - preview not available")})).then(t).then((function(t){e=t.subscribe(o,a,(function(e,t){e?v(e):y(t)}))})).catch(v).finally((function(){return m(!1)})),function(){e&&e.unsubscribe(),n.abort()}}),[t,o,a,l]),{data:void 0===j?u:j,loading:h,error:p}}({getStore:s,projectId:r,query:e,params:void 0===o?l:o,initialData:t.initialData,enabled:!!t.enabled&&"undefined"!=typeof window})};function s(){return t||(t=new Promise((function(e){e(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t.default=e,t}(require("@sanity/groq-store")))})).then((function(e){return(0,e.groqStore)({projectId:r,dataset:o,documentLimit:u,listen:!0,overlayDrafts:!0,subscriptionThrottleMs:10})}))),t}};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@sanity/client")),r=e(require("@sanity/image-url")),n=require("react"),o=e(n),i=require("use-deep-compare-effect"),a=e(require("@sanity/block-content-to-react")),u=e(require("groq"));function c(){return"undefined"==typeof AbortController?{signal:void 0,abort:s}:new AbortController}function s(){}function f(e,t){return fetch("https://"+e+".api.sanity.io/v1/users/me",{credentials:"include",signal:null==t?void 0:t.signal}).then((function(e){return e.json()})).then((function(e){return null!=e&&e.id?e:null})).catch((function(e){return"AbortError"===e.name?null:Promise.reject(e)}))}var l={};exports.groq=u,exports.createClient=function(e){return t(e)},exports.createCurrentUserHook=function(e){var t=e.projectId;return function(){return function(e){var t=n.useState(),r=t[0],o=t[1],i=n.useState(),a=i[0],u=i[1];return n.useEffect((function(){var t=c();return f(e,t).then(o).catch(u),function(){return t.abort()}}),[e]),{data:r,error:a,loading:null!==r||!a}}(t)}},exports.createImageUrlBuilder=function(e){return r({projectId:e.projectId,dataset:e.dataset})},exports.createPortableTextComponent=function(e){var t=e.projectId,r=e.dataset,n=e.serializers;return function(e){return o.createElement(a,Object.assign({projectId:t,dataset:r,serializers:n},e))}},exports.createPreviewSubscriptionHook=function(e){var t,r=e.projectId,o=e.dataset,a=e.useGroqBeta,u=e.documentLimit,s=void 0===u?3e3:u;return function(e,t){void 0===t&&(t={});var o=t.params;return function(e){var t=e.getStore,r=e.projectId,o=e.query,a=e.params,u=e.initialData,s=e.enabled,l=void 0!==s&&s,d=n.useState(),p=d[0],v=d[1],b=n.useState(!1),h=b[0],m=b[1],g=n.useState(),j=g[0],y=g[1];return i.useDeepCompareEffectNoCheck((function(){if(!l)return function(){};m(!0);var e,n=c();return f(r,n).then((function(e){if(!e)throw console.warn("Not authenticated - preview not available"),new Error("Not authenticated - preview not available")})).then(t).then((function(t){e=t.subscribe(o,a,(function(e,t){e?v(e):y(t)}))})).catch(v).finally((function(){return m(!1)})),function(){e&&e.unsubscribe(),n.abort()}}),[t,o,a,l]),{data:void 0===j?u:j,loading:h,error:p}}({getStore:d,projectId:r,query:e,params:void 0===o?l:o,initialData:t.initialData,enabled:!!t.enabled&&"undefined"!=typeof window})};function d(){return t||(t=new Promise((function(e){e(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t.default=e,t}(require("@sanity/groq-store")))})).then((function(e){return(0,e.groqStore)({projectId:r,dataset:o,documentLimit:s,useGroqBeta:a,listen:!0,overlayDrafts:!0,subscriptionThrottleMs:10})}))),t}};
2
2
  //# sourceMappingURL=next-sanity.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"next-sanity.cjs.production.min.js","sources":["../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/client.ts","../src/imageUrlBuilder.ts","../src/portableText.tsx"],"sourcesContent":["export interface Aborter {\n abort(): void\n signal?: AbortSignal\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? {signal: undefined, abort: noop}\n : new AbortController()\n}\n\nfunction noop() {\n // intentional noop\n}\n","import {useEffect, useState} from 'react'\nimport {CurrentUser} from './types'\nimport {getAborter, Aborter} from './aborter'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(projectId: string, abort?: Aborter): Promise<CurrentUser | null> {\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort?.signal,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\n .catch((err: Error) => (err.name === 'AbortError' ? null : Promise.reject(err)))\n}\n\nfunction useCurrentUser(projectId: string) {\n const [data, setUser] = useState<CurrentUser | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n const aborter = getAborter()\n getCurrentUser(projectId, aborter).then(setUser).catch(setError)\n return () => aborter.abort()\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {useState} from 'react'\nimport {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useDeepCompareEffectNoCheck as useDeepCompareEffect} from 'use-deep-compare-effect'\nimport {ProjectConfig} from './types'\nimport {getCurrentUser} from './currentUser'\nimport {getAborter} from './aborter'\n\nconst EMPTY_PARAMS = {}\n\ninterface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Record<string, unknown>\n initialData?: R\n}\n\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n documentLimit = 3000,\n}: ProjectConfig & {documentLimit?: number}) {\n // Only construct/setup the store when `getStore()` is called\n let store: Promise<GroqStore>\n\n return function usePreviewSubscription<R = any>(\n query: string,\n options: SubscriptionOptions<R> = {}\n ) {\n const {params = EMPTY_PARAMS, initialData, enabled} = options\n return useQuerySubscription<R>({\n getStore,\n projectId,\n query,\n params,\n initialData: initialData as any,\n enabled: enabled ? typeof window !== 'undefined' : false,\n })\n }\n\n function getStore() {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) =>\n groqStore({\n projectId,\n dataset,\n documentLimit,\n listen: true,\n overlayDrafts: true,\n subscriptionThrottleMs: 10,\n })\n )\n }\n return store\n }\n}\n\nfunction useQuerySubscription<R = any>(options: {\n getStore: () => Promise<GroqStore>\n projectId: string\n query: string\n params: Record<string, unknown>\n initialData: R\n enabled: boolean\n}) {\n const {getStore, projectId, query, params, initialData, enabled = false} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n\n // Use \"deep\" dependency comparison because params are often not _referentially_ equal,\n // but contains the same shallow properties, eg `{\"slug\": \"some-slug\"}`\n useDeepCompareEffect(() => {\n if (!enabled) {\n return () => {\n /* intentional noop */\n }\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter)\n .then((user) => {\n if (user) {\n return\n }\n\n // eslint-disable-next-line no-console\n console.warn('Not authenticated - preview not available')\n throw new Error('Not authenticated - preview not available')\n })\n .then(getStore)\n .then((store) => {\n subscription = store.subscribe(query, params, (err, result) => {\n if (err) {\n setError(err)\n } else {\n setData(result)\n }\n })\n })\n .catch(setError)\n .finally(() => setLoading(false))\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n","import sanityClient from '@sanity/client'\nimport {ClientConfig} from './types'\n\nexport function createClient(config: ClientConfig) {\n return sanityClient(config)\n}\n","import getImageUrlBuilder from '@sanity/image-url'\nimport {ProjectConfig} from './types'\n\nexport function createImageUrlBuilder({projectId, dataset}: ProjectConfig) {\n return getImageUrlBuilder({projectId, dataset})\n}\n","import React from 'react'\nimport SanityPortableText, {\n PortableTextProps,\n PortableTextSerializers,\n} from '@sanity/block-content-to-react'\nimport {ProjectConfig} from './types'\n\nexport function createPortableTextComponent({\n projectId,\n dataset,\n serializers,\n}: ProjectConfig & {serializers?: PortableTextSerializers}) {\n return function PortableText(props: PortableTextProps) {\n return (\n <SanityPortableText\n projectId={projectId}\n dataset={dataset}\n serializers={serializers}\n {...props}\n />\n )\n }\n}\n"],"names":["getAborter","AbortController","signal","undefined","abort","noop","getCurrentUser","projectId","fetch","credentials","then","res","json","id","catch","err","name","Promise","reject","EMPTY_PARAMS","config","sanityClient","useState","data","setUser","error","setError","useEffect","aborter","loading","useCurrentUser","getImageUrlBuilder","dataset","serializers","props","React","SanityPortableText","store","documentLimit","query","options","params","getStore","initialData","enabled","setLoading","setData","useDeepCompareEffect","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","useQuerySubscription","window","groqStore","listen","overlayDrafts","subscriptionThrottleMs"],"mappings":"2VAKgBA,UACoB,oBAApBC,gBACV,CAACC,YAAQC,EAAWC,MAAOC,GAC3B,IAAIJ,gBAGV,SAASI,cCHOC,EAAeC,EAAmBH,UACzCI,iBAAiBD,+BAAuC,CAC7DE,YAAa,UACbP,aAAQE,SAAAA,EAAOF,SAEdQ,MAAK,SAACC,UAAQA,EAAIC,UAClBF,MAAK,SAACC,gBAASA,GAAAA,EAAKE,GAAKF,EAAM,QAC/BG,OAAM,SAACC,SAA6B,eAAbA,EAAIC,KAAwB,KAAOC,QAAQC,OAAOH,MCR9E,IAAMI,EAAe,gDCJQC,UACpBC,EAAaD,kDFAiBb,IAAAA,iBAC9B,kBAaT,SAAwBA,SACEe,aAAjBC,OAAMC,SACaF,aAAnBG,OAAOC,cAEdC,aAAU,eACFC,EAAU5B,WAChBM,EAAeC,EAAWqB,GAASlB,KAAKc,GAASV,MAAMY,GAChD,kBAAME,EAAQxB,WACpB,CAACG,IAEG,CAACgB,KAAAA,EAAME,MAAAA,EAAOI,QAAkB,OAATN,IAAkBE,GAvBnCK,CAAevB,sDGDrBwB,EAAmB,CAACxB,YADUA,UACCyB,UADUA,+DCKhDzB,IAAAA,UACAyB,IAAAA,QACAC,IAAAA,mBAEO,SAAsBC,UAEzBC,gBAACC,iBACC7B,UAAWA,EACXyB,QAASA,EACTC,YAAaA,GACTC,4DHGNG,EALJ9B,IAAAA,UACAyB,IAAAA,YACAM,cAAAA,aAAgB,aAKT,SACLC,EACAC,YAAAA,IAAAA,EAAkC,UAEoBA,EAA/CC,cA4BX,SAAuCD,OAQ9BE,EAAoEF,EAApEE,SAAUnC,EAA0DiC,EAA1DjC,UAAWgC,EAA+CC,EAA/CD,MAAOE,EAAwCD,EAAxCC,OAAQE,EAAgCH,EAAhCG,cAAgCH,EAAnBI,QAAAA,kBAC9BtB,aAAnBG,OAAOC,SACgBJ,YAAS,GAAhCO,OAASgB,SACQvB,aAAjBC,OAAMuB,cAIbC,+BAAqB,eACdH,SACI,aAKTC,GAAW,OAGPG,EADEpB,EAAU5B,WAEhBM,EAAeC,EAAWqB,GACvBlB,MAAK,SAACuC,OACDA,QAKJC,QAAQC,KAAK,6CACP,IAAIC,MAAM,gDAEjB1C,KAAKgC,GACLhC,MAAK,SAAC2B,GACLW,EAAeX,EAAMgB,UAAUd,EAAOE,GAAQ,SAAC1B,EAAKuC,GAC9CvC,EACFW,EAASX,GAET+B,EAAQQ,SAIbxC,MAAMY,GACN6B,SAAQ,kBAAMV,GAAW,MAErB,WACDG,GACFA,EAAaQ,cAGf5B,EAAQxB,WAET,CAACsC,EAAUH,EAAOE,EAAQG,IAEtB,CACLrB,UAAsB,IAATA,EAAuBoB,EAAcpB,EAClDM,QAAAA,EACAJ,MAAAA,GAxFOgC,CAAwB,CAC7Bf,SAAAA,EACAnC,UAAAA,EACAgC,MAAAA,EACAE,kBALctB,IAMdwB,YANoDH,EAAxBG,YAO5BC,UAPoDJ,EAAXI,SAOJ,oBAAXc,mBAIrBhB,WACFL,IACHA,EAAQ,8QAAO,2BAAsB3B,MAAK,mBACxCiD,IAD0CA,WAChC,CACRpD,UAAAA,EACAyB,QAAAA,EACAM,cAAAA,EACAsB,QAAQ,EACRC,eAAe,EACfC,uBAAwB,SAIvBzB"}
1
+ {"version":3,"file":"next-sanity.cjs.production.min.js","sources":["../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/client.ts","../src/imageUrlBuilder.ts","../src/portableText.tsx"],"sourcesContent":["export interface Aborter {\n abort(): void\n signal?: AbortSignal\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? {signal: undefined, abort: noop}\n : new AbortController()\n}\n\nfunction noop() {\n // intentional noop\n}\n","import {useEffect, useState} from 'react'\nimport {CurrentUser} from './types'\nimport {getAborter, Aborter} from './aborter'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(projectId: string, abort?: Aborter): Promise<CurrentUser | null> {\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort?.signal,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\n .catch((err: Error) => (err.name === 'AbortError' ? null : Promise.reject(err)))\n}\n\nfunction useCurrentUser(projectId: string) {\n const [data, setUser] = useState<CurrentUser | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n const aborter = getAborter()\n getCurrentUser(projectId, aborter).then(setUser).catch(setError)\n return () => aborter.abort()\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {useState} from 'react'\nimport {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useDeepCompareEffectNoCheck as useDeepCompareEffect} from 'use-deep-compare-effect'\nimport {ProjectConfig} from './types'\nimport {getCurrentUser} from './currentUser'\nimport {getAborter} from './aborter'\n\nconst EMPTY_PARAMS = {}\n\ninterface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Record<string, unknown>\n initialData?: R\n}\n\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n useGroqBeta,\n documentLimit = 3000,\n}: ProjectConfig & {documentLimit?: number; useGroqBeta?: boolean}) {\n // Only construct/setup the store when `getStore()` is called\n let store: Promise<GroqStore>\n\n return function usePreviewSubscription<R = any>(\n query: string,\n options: SubscriptionOptions<R> = {}\n ) {\n const {params = EMPTY_PARAMS, initialData, enabled} = options\n return useQuerySubscription<R>({\n getStore,\n projectId,\n query,\n params,\n initialData: initialData as any,\n enabled: enabled ? typeof window !== 'undefined' : false,\n })\n }\n\n function getStore() {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) =>\n groqStore({\n projectId,\n dataset,\n documentLimit,\n useGroqBeta,\n listen: true,\n overlayDrafts: true,\n subscriptionThrottleMs: 10,\n })\n )\n }\n return store\n }\n}\n\nfunction useQuerySubscription<R = any>(options: {\n getStore: () => Promise<GroqStore>\n projectId: string\n query: string\n params: Record<string, unknown>\n initialData: R\n enabled: boolean\n}) {\n const {getStore, projectId, query, params, initialData, enabled = false} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n\n // Use \"deep\" dependency comparison because params are often not _referentially_ equal,\n // but contains the same shallow properties, eg `{\"slug\": \"some-slug\"}`\n useDeepCompareEffect(() => {\n if (!enabled) {\n return () => {\n /* intentional noop */\n }\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter)\n .then((user) => {\n if (user) {\n return\n }\n\n // eslint-disable-next-line no-console\n console.warn('Not authenticated - preview not available')\n throw new Error('Not authenticated - preview not available')\n })\n .then(getStore)\n .then((store) => {\n subscription = store.subscribe(query, params, (err, result) => {\n if (err) {\n setError(err)\n } else {\n setData(result)\n }\n })\n })\n .catch(setError)\n .finally(() => setLoading(false))\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n","import sanityClient from '@sanity/client'\nimport {ClientConfig} from './types'\n\nexport function createClient(config: ClientConfig) {\n return sanityClient(config)\n}\n","import getImageUrlBuilder from '@sanity/image-url'\nimport {ProjectConfig} from './types'\n\nexport function createImageUrlBuilder({projectId, dataset}: ProjectConfig) {\n return getImageUrlBuilder({projectId, dataset})\n}\n","import React from 'react'\nimport SanityPortableText, {\n PortableTextProps,\n PortableTextSerializers,\n} from '@sanity/block-content-to-react'\nimport {ProjectConfig} from './types'\n\nexport function createPortableTextComponent({\n projectId,\n dataset,\n serializers,\n}: ProjectConfig & {serializers?: PortableTextSerializers}) {\n return function PortableText(props: PortableTextProps) {\n return (\n <SanityPortableText\n projectId={projectId}\n dataset={dataset}\n serializers={serializers}\n {...props}\n />\n )\n }\n}\n"],"names":["getAborter","AbortController","signal","undefined","abort","noop","getCurrentUser","projectId","fetch","credentials","then","res","json","id","catch","err","name","Promise","reject","EMPTY_PARAMS","config","sanityClient","useState","data","setUser","error","setError","useEffect","aborter","loading","useCurrentUser","getImageUrlBuilder","dataset","serializers","props","React","SanityPortableText","store","useGroqBeta","documentLimit","query","options","params","getStore","initialData","enabled","setLoading","setData","useDeepCompareEffect","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","useQuerySubscription","window","groqStore","listen","overlayDrafts","subscriptionThrottleMs"],"mappings":"2VAKgBA,UACoB,oBAApBC,gBACV,CAACC,YAAQC,EAAWC,MAAOC,GAC3B,IAAIJ,gBAGV,SAASI,cCHOC,EAAeC,EAAmBH,UACzCI,iBAAiBD,+BAAuC,CAC7DE,YAAa,UACbP,aAAQE,SAAAA,EAAOF,SAEdQ,MAAK,SAACC,UAAQA,EAAIC,UAClBF,MAAK,SAACC,gBAASA,GAAAA,EAAKE,GAAKF,EAAM,QAC/BG,OAAM,SAACC,SAA6B,eAAbA,EAAIC,KAAwB,KAAOC,QAAQC,OAAOH,MCR9E,IAAMI,EAAe,gDCJQC,UACpBC,EAAaD,kDFAiBb,IAAAA,iBAC9B,kBAaT,SAAwBA,SACEe,aAAjBC,OAAMC,SACaF,aAAnBG,OAAOC,cAEdC,aAAU,eACFC,EAAU5B,WAChBM,EAAeC,EAAWqB,GAASlB,KAAKc,GAASV,MAAMY,GAChD,kBAAME,EAAQxB,WACpB,CAACG,IAEG,CAACgB,KAAAA,EAAME,MAAAA,EAAOI,QAAkB,OAATN,IAAkBE,GAvBnCK,CAAevB,sDGDrBwB,EAAmB,CAACxB,YADUA,UACCyB,UADUA,+DCKhDzB,IAAAA,UACAyB,IAAAA,QACAC,IAAAA,mBAEO,SAAsBC,UAEzBC,gBAACC,iBACC7B,UAAWA,EACXyB,QAASA,EACTC,YAAaA,GACTC,4DHING,EANJ9B,IAAAA,UACAyB,IAAAA,QACAM,IAAAA,gBACAC,cAAAA,aAAgB,aAKT,SACLC,EACAC,YAAAA,IAAAA,EAAkC,UAEoBA,EAA/CC,cA6BX,SAAuCD,OAQ9BE,EAAoEF,EAApEE,SAAUpC,EAA0DkC,EAA1DlC,UAAWiC,EAA+CC,EAA/CD,MAAOE,EAAwCD,EAAxCC,OAAQE,EAAgCH,EAAhCG,cAAgCH,EAAnBI,QAAAA,kBAC9BvB,aAAnBG,OAAOC,SACgBJ,YAAS,GAAhCO,OAASiB,SACQxB,aAAjBC,OAAMwB,cAIbC,+BAAqB,eACdH,SACI,aAKTC,GAAW,OAGPG,EADErB,EAAU5B,WAEhBM,EAAeC,EAAWqB,GACvBlB,MAAK,SAACwC,OACDA,QAKJC,QAAQC,KAAK,6CACP,IAAIC,MAAM,gDAEjB3C,KAAKiC,GACLjC,MAAK,SAAC2B,GACLY,EAAeZ,EAAMiB,UAAUd,EAAOE,GAAQ,SAAC3B,EAAKwC,GAC9CxC,EACFW,EAASX,GAETgC,EAAQQ,SAIbzC,MAAMY,GACN8B,SAAQ,kBAAMV,GAAW,MAErB,WACDG,GACFA,EAAaQ,cAGf7B,EAAQxB,WAET,CAACuC,EAAUH,EAAOE,EAAQG,IAEtB,CACLtB,UAAsB,IAATA,EAAuBqB,EAAcrB,EAClDM,QAAAA,EACAJ,MAAAA,GAzFOiC,CAAwB,CAC7Bf,SAAAA,EACApC,UAAAA,EACAiC,MAAAA,EACAE,kBALcvB,IAMdyB,YANoDH,EAAxBG,YAO5BC,UAPoDJ,EAAXI,SAOJ,oBAAXc,mBAIrBhB,WACFN,IACHA,EAAQ,8QAAO,2BAAsB3B,MAAK,mBACxCkD,IAD0CA,WAChC,CACRrD,UAAAA,EACAyB,QAAAA,EACAO,cAAAA,EACAD,YAAAA,EACAuB,QAAQ,EACRC,eAAe,EACfC,uBAAwB,SAIvB1B"}
@@ -74,6 +74,7 @@ var EMPTY_PARAMS = {};
74
74
  function createPreviewSubscriptionHook(_ref) {
75
75
  var projectId = _ref.projectId,
76
76
  dataset = _ref.dataset,
77
+ useGroqBeta = _ref.useGroqBeta,
77
78
  _ref$documentLimit = _ref.documentLimit,
78
79
  documentLimit = _ref$documentLimit === void 0 ? 3000 : _ref$documentLimit;
79
80
  // Only construct/setup the store when `getStore()` is called
@@ -106,6 +107,7 @@ function createPreviewSubscriptionHook(_ref) {
106
107
  projectId: projectId,
107
108
  dataset: dataset,
108
109
  documentLimit: documentLimit,
110
+ useGroqBeta: useGroqBeta,
109
111
  listen: true,
110
112
  overlayDrafts: true,
111
113
  subscriptionThrottleMs: 10
@@ -1 +1 @@
1
- {"version":3,"file":"next-sanity.esm.js","sources":["../src/client.ts","../src/imageUrlBuilder.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/portableText.tsx"],"sourcesContent":["import sanityClient from '@sanity/client'\nimport {ClientConfig} from './types'\n\nexport function createClient(config: ClientConfig) {\n return sanityClient(config)\n}\n","import getImageUrlBuilder from '@sanity/image-url'\nimport {ProjectConfig} from './types'\n\nexport function createImageUrlBuilder({projectId, dataset}: ProjectConfig) {\n return getImageUrlBuilder({projectId, dataset})\n}\n","export interface Aborter {\n abort(): void\n signal?: AbortSignal\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? {signal: undefined, abort: noop}\n : new AbortController()\n}\n\nfunction noop() {\n // intentional noop\n}\n","import {useEffect, useState} from 'react'\nimport {CurrentUser} from './types'\nimport {getAborter, Aborter} from './aborter'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(projectId: string, abort?: Aborter): Promise<CurrentUser | null> {\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort?.signal,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\n .catch((err: Error) => (err.name === 'AbortError' ? null : Promise.reject(err)))\n}\n\nfunction useCurrentUser(projectId: string) {\n const [data, setUser] = useState<CurrentUser | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n const aborter = getAborter()\n getCurrentUser(projectId, aborter).then(setUser).catch(setError)\n return () => aborter.abort()\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {useState} from 'react'\nimport {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useDeepCompareEffectNoCheck as useDeepCompareEffect} from 'use-deep-compare-effect'\nimport {ProjectConfig} from './types'\nimport {getCurrentUser} from './currentUser'\nimport {getAborter} from './aborter'\n\nconst EMPTY_PARAMS = {}\n\ninterface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Record<string, unknown>\n initialData?: R\n}\n\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n documentLimit = 3000,\n}: ProjectConfig & {documentLimit?: number}) {\n // Only construct/setup the store when `getStore()` is called\n let store: Promise<GroqStore>\n\n return function usePreviewSubscription<R = any>(\n query: string,\n options: SubscriptionOptions<R> = {}\n ) {\n const {params = EMPTY_PARAMS, initialData, enabled} = options\n return useQuerySubscription<R>({\n getStore,\n projectId,\n query,\n params,\n initialData: initialData as any,\n enabled: enabled ? typeof window !== 'undefined' : false,\n })\n }\n\n function getStore() {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) =>\n groqStore({\n projectId,\n dataset,\n documentLimit,\n listen: true,\n overlayDrafts: true,\n subscriptionThrottleMs: 10,\n })\n )\n }\n return store\n }\n}\n\nfunction useQuerySubscription<R = any>(options: {\n getStore: () => Promise<GroqStore>\n projectId: string\n query: string\n params: Record<string, unknown>\n initialData: R\n enabled: boolean\n}) {\n const {getStore, projectId, query, params, initialData, enabled = false} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n\n // Use \"deep\" dependency comparison because params are often not _referentially_ equal,\n // but contains the same shallow properties, eg `{\"slug\": \"some-slug\"}`\n useDeepCompareEffect(() => {\n if (!enabled) {\n return () => {\n /* intentional noop */\n }\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter)\n .then((user) => {\n if (user) {\n return\n }\n\n // eslint-disable-next-line no-console\n console.warn('Not authenticated - preview not available')\n throw new Error('Not authenticated - preview not available')\n })\n .then(getStore)\n .then((store) => {\n subscription = store.subscribe(query, params, (err, result) => {\n if (err) {\n setError(err)\n } else {\n setData(result)\n }\n })\n })\n .catch(setError)\n .finally(() => setLoading(false))\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n","import React from 'react'\nimport SanityPortableText, {\n PortableTextProps,\n PortableTextSerializers,\n} from '@sanity/block-content-to-react'\nimport {ProjectConfig} from './types'\n\nexport function createPortableTextComponent({\n projectId,\n dataset,\n serializers,\n}: ProjectConfig & {serializers?: PortableTextSerializers}) {\n return function PortableText(props: PortableTextProps) {\n return (\n <SanityPortableText\n projectId={projectId}\n dataset={dataset}\n serializers={serializers}\n {...props}\n />\n )\n }\n}\n"],"names":["createClient","config","sanityClient","createImageUrlBuilder","projectId","dataset","getImageUrlBuilder","getAborter","AbortController","signal","undefined","abort","noop","createCurrentUserHook","useCurrentUser","getCurrentUser","fetch","credentials","then","res","json","id","catch","err","name","Promise","reject","useState","data","setUser","error","setError","useEffect","aborter","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useDeepCompareEffect","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","createPortableTextComponent","serializers","PortableText","props","React","SanityPortableText"],"mappings":"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"}
1
+ {"version":3,"file":"next-sanity.esm.js","sources":["../src/client.ts","../src/imageUrlBuilder.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/portableText.tsx"],"sourcesContent":["import sanityClient from '@sanity/client'\nimport {ClientConfig} from './types'\n\nexport function createClient(config: ClientConfig) {\n return sanityClient(config)\n}\n","import getImageUrlBuilder from '@sanity/image-url'\nimport {ProjectConfig} from './types'\n\nexport function createImageUrlBuilder({projectId, dataset}: ProjectConfig) {\n return getImageUrlBuilder({projectId, dataset})\n}\n","export interface Aborter {\n abort(): void\n signal?: AbortSignal\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? {signal: undefined, abort: noop}\n : new AbortController()\n}\n\nfunction noop() {\n // intentional noop\n}\n","import {useEffect, useState} from 'react'\nimport {CurrentUser} from './types'\nimport {getAborter, Aborter} from './aborter'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(projectId: string, abort?: Aborter): Promise<CurrentUser | null> {\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort?.signal,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\n .catch((err: Error) => (err.name === 'AbortError' ? null : Promise.reject(err)))\n}\n\nfunction useCurrentUser(projectId: string) {\n const [data, setUser] = useState<CurrentUser | null>()\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n const aborter = getAborter()\n getCurrentUser(projectId, aborter).then(setUser).catch(setError)\n return () => aborter.abort()\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {useState} from 'react'\nimport {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useDeepCompareEffectNoCheck as useDeepCompareEffect} from 'use-deep-compare-effect'\nimport {ProjectConfig} from './types'\nimport {getCurrentUser} from './currentUser'\nimport {getAborter} from './aborter'\n\nconst EMPTY_PARAMS = {}\n\ninterface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Record<string, unknown>\n initialData?: R\n}\n\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n useGroqBeta,\n documentLimit = 3000,\n}: ProjectConfig & {documentLimit?: number; useGroqBeta?: boolean}) {\n // Only construct/setup the store when `getStore()` is called\n let store: Promise<GroqStore>\n\n return function usePreviewSubscription<R = any>(\n query: string,\n options: SubscriptionOptions<R> = {}\n ) {\n const {params = EMPTY_PARAMS, initialData, enabled} = options\n return useQuerySubscription<R>({\n getStore,\n projectId,\n query,\n params,\n initialData: initialData as any,\n enabled: enabled ? typeof window !== 'undefined' : false,\n })\n }\n\n function getStore() {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) =>\n groqStore({\n projectId,\n dataset,\n documentLimit,\n useGroqBeta,\n listen: true,\n overlayDrafts: true,\n subscriptionThrottleMs: 10,\n })\n )\n }\n return store\n }\n}\n\nfunction useQuerySubscription<R = any>(options: {\n getStore: () => Promise<GroqStore>\n projectId: string\n query: string\n params: Record<string, unknown>\n initialData: R\n enabled: boolean\n}) {\n const {getStore, projectId, query, params, initialData, enabled = false} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n\n // Use \"deep\" dependency comparison because params are often not _referentially_ equal,\n // but contains the same shallow properties, eg `{\"slug\": \"some-slug\"}`\n useDeepCompareEffect(() => {\n if (!enabled) {\n return () => {\n /* intentional noop */\n }\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter)\n .then((user) => {\n if (user) {\n return\n }\n\n // eslint-disable-next-line no-console\n console.warn('Not authenticated - preview not available')\n throw new Error('Not authenticated - preview not available')\n })\n .then(getStore)\n .then((store) => {\n subscription = store.subscribe(query, params, (err, result) => {\n if (err) {\n setError(err)\n } else {\n setData(result)\n }\n })\n })\n .catch(setError)\n .finally(() => setLoading(false))\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n","import React from 'react'\nimport SanityPortableText, {\n PortableTextProps,\n PortableTextSerializers,\n} from '@sanity/block-content-to-react'\nimport {ProjectConfig} from './types'\n\nexport function createPortableTextComponent({\n projectId,\n dataset,\n serializers,\n}: ProjectConfig & {serializers?: PortableTextSerializers}) {\n return function PortableText(props: PortableTextProps) {\n return (\n <SanityPortableText\n projectId={projectId}\n dataset={dataset}\n serializers={serializers}\n {...props}\n />\n )\n }\n}\n"],"names":["createClient","config","sanityClient","createImageUrlBuilder","projectId","dataset","getImageUrlBuilder","getAborter","AbortController","signal","undefined","abort","noop","createCurrentUserHook","useCurrentUser","getCurrentUser","fetch","credentials","then","res","json","id","catch","err","name","Promise","reject","useState","data","setUser","error","setError","useEffect","aborter","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","useGroqBeta","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useDeepCompareEffect","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","createPortableTextComponent","serializers","PortableText","props","React","SanityPortableText"],"mappings":"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"}
@@ -4,8 +4,9 @@ interface SubscriptionOptions<R = any> {
4
4
  params?: Record<string, unknown>;
5
5
  initialData?: R;
6
6
  }
7
- export declare function createPreviewSubscriptionHook({ projectId, dataset, documentLimit, }: ProjectConfig & {
7
+ export declare function createPreviewSubscriptionHook({ projectId, dataset, useGroqBeta, documentLimit, }: ProjectConfig & {
8
8
  documentLimit?: number;
9
+ useGroqBeta?: boolean;
9
10
  }): <R = any>(query: string, options?: SubscriptionOptions<R>) => {
10
11
  data: R;
11
12
  loading: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "next-sanity",
3
3
  "description": "Sanity.io toolkit for Next.js",
4
- "version": "0.4.0",
4
+ "version": "0.4.1-beta.0",
5
5
  "author": "Sanity.io <hello@sanity.io>",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
@@ -26,10 +26,10 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@sanity/block-content-to-react": "^3.0.0",
29
- "@sanity/client": "^2.14.0",
30
- "@sanity/groq-store": "^0.2.1",
31
- "@sanity/image-url": "^0.140.22",
32
- "groq": "^2.14.0",
29
+ "@sanity/client": "^2.23.1",
30
+ "@sanity/groq-store": "^0.3.0-beta.0",
31
+ "@sanity/image-url": "^1.0.1",
32
+ "groq": "^2.15.0",
33
33
  "use-deep-compare-effect": "^1.6.1"
34
34
  },
35
35
  "devDependencies": {
@@ -16,8 +16,9 @@ interface SubscriptionOptions<R = any> {
16
16
  export function createPreviewSubscriptionHook({
17
17
  projectId,
18
18
  dataset,
19
+ useGroqBeta,
19
20
  documentLimit = 3000,
20
- }: ProjectConfig & {documentLimit?: number}) {
21
+ }: ProjectConfig & {documentLimit?: number; useGroqBeta?: boolean}) {
21
22
  // Only construct/setup the store when `getStore()` is called
22
23
  let store: Promise<GroqStore>
23
24
 
@@ -43,6 +44,7 @@ export function createPreviewSubscriptionHook({
43
44
  projectId,
44
45
  dataset,
45
46
  documentLimit,
47
+ useGroqBeta,
46
48
  listen: true,
47
49
  overlayDrafts: true,
48
50
  subscriptionThrottleMs: 10,