next-sanity 0.8.3 → 0.8.5

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.
@@ -40,7 +40,6 @@ function _defineProperties(target, props) {
40
40
  Object.defineProperty(target, descriptor.key, descriptor);
41
41
  }
42
42
  }
43
-
44
43
  function _createClass(Constructor, protoProps, staticProps) {
45
44
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
46
45
  if (staticProps) _defineProperties(Constructor, staticProps);
@@ -56,23 +55,18 @@ var MockAbortController = /*#__PURE__*/function () {
56
55
  aborted: false
57
56
  };
58
57
  }
59
-
60
58
  var _proto = MockAbortController.prototype;
61
-
62
59
  _proto.abort = function abort() {
63
60
  this._signal.aborted = true;
64
61
  };
65
-
66
62
  _createClass(MockAbortController, [{
67
63
  key: "signal",
68
64
  get: function get() {
69
65
  return this._signal;
70
66
  }
71
67
  }]);
72
-
73
68
  return MockAbortController;
74
69
  }();
75
-
76
70
  function getAborter() {
77
71
  return typeof AbortController === 'undefined' ? new MockAbortController() : new AbortController();
78
72
  }
@@ -98,16 +92,13 @@ function getCurrentUser(projectId, abort, token) {
98
92
  return res != null && res.id ? res : null;
99
93
  });
100
94
  }
101
-
102
95
  function useCurrentUser(projectId) {
103
96
  var _useState = react.useState(),
104
- data = _useState[0],
105
- setUser = _useState[1];
106
-
97
+ data = _useState[0],
98
+ setUser = _useState[1];
107
99
  var _useState2 = react.useState(),
108
- error = _useState2[0],
109
- setError = _useState2[1];
110
-
100
+ error = _useState2[0],
101
+ setError = _useState2[1];
111
102
  react.useEffect(function () {
112
103
  var aborter = getAborter();
113
104
  getCurrentUser(projectId, aborter).then(setUser).catch(function (err) {
@@ -124,27 +115,26 @@ function useCurrentUser(projectId) {
124
115
  };
125
116
  }
126
117
 
127
- var EMPTY_PARAMS = {}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
128
-
118
+ var EMPTY_PARAMS = {};
119
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
129
120
  function createPreviewSubscriptionHook(_ref) {
130
121
  var projectId = _ref.projectId,
131
- dataset = _ref.dataset,
132
- token = _ref.token,
133
- EventSource = _ref.EventSource,
134
- _ref$documentLimit = _ref.documentLimit,
135
- documentLimit = _ref$documentLimit === void 0 ? 3000 : _ref$documentLimit;
122
+ dataset = _ref.dataset,
123
+ token = _ref.token,
124
+ EventSource = _ref.EventSource,
125
+ _ref$documentLimit = _ref.documentLimit,
126
+ documentLimit = _ref$documentLimit === void 0 ? 3000 : _ref$documentLimit;
136
127
  // Only construct/setup the store when `getStore()` is called
137
128
  var store;
138
129
  return function usePreviewSubscription(query, options) {
139
130
  if (options === void 0) {
140
131
  options = {};
141
132
  }
142
-
143
133
  var _options = options,
144
- _options$params = _options.params,
145
- params = _options$params === void 0 ? EMPTY_PARAMS : _options$params,
146
- initialData = _options.initialData,
147
- enabled = _options.enabled;
134
+ _options$params = _options.params,
135
+ params = _options$params === void 0 ? EMPTY_PARAMS : _options$params,
136
+ initialData = _options.initialData,
137
+ enabled = _options.enabled;
148
138
  return useQuerySubscription({
149
139
  getStore: getStore,
150
140
  projectId: projectId,
@@ -155,20 +145,17 @@ function createPreviewSubscriptionHook(_ref) {
155
145
  token: token
156
146
  });
157
147
  };
158
-
159
148
  function getStore(abort) {
160
149
  if (!store) {
161
150
  store = new Promise(function (resolve) { resolve(_interopNamespace(require('@sanity/groq-store'))); }).then(function (_ref2) {
162
151
  var groqStore = _ref2.groqStore;
163
-
164
152
  // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure
165
153
  if (abort.signal.aborted) {
166
- var error = new Error('Cancelling groq store creation'); // This ensures we can skip it in the catch block same way
167
-
154
+ var error = new Error('Cancelling groq store creation');
155
+ // This ensures we can skip it in the catch block same way
168
156
  error.name = 'AbortError';
169
157
  return Promise.reject(error);
170
158
  }
171
-
172
159
  return groqStore({
173
160
  projectId: projectId,
174
161
  dataset: dataset,
@@ -181,49 +168,41 @@ function createPreviewSubscriptionHook(_ref) {
181
168
  });
182
169
  });
183
170
  }
184
-
185
171
  return store;
186
172
  }
187
173
  }
188
-
189
174
  function useQuerySubscription(options) {
190
175
  var getStore = options.getStore,
191
- projectId = options.projectId,
192
- query = options.query,
193
- initialData = options.initialData,
194
- _options$enabled = options.enabled,
195
- enabled = _options$enabled === void 0 ? false : _options$enabled,
196
- token = options.token;
197
-
176
+ projectId = options.projectId,
177
+ query = options.query,
178
+ initialData = options.initialData,
179
+ _options$enabled = options.enabled,
180
+ enabled = _options$enabled === void 0 ? false : _options$enabled,
181
+ token = options.token;
198
182
  var _useState = react.useState(),
199
- error = _useState[0],
200
- setError = _useState[1];
201
-
183
+ error = _useState[0],
184
+ setError = _useState[1];
202
185
  var _useState2 = react.useState(false),
203
- loading = _useState2[0],
204
- setLoading = _useState2[1];
205
-
186
+ loading = _useState2[0],
187
+ setLoading = _useState2[1];
206
188
  var _useState3 = react.useState(),
207
- data = _useState3[0],
208
- setData = _useState3[1];
209
-
210
- var params = useParams(options.params); // Use "deep" dependency comparison because params are often not _referentially_ equal,
189
+ data = _useState3[0],
190
+ setData = _useState3[1];
191
+ var params = useParams(options.params);
192
+ // Use "deep" dependency comparison because params are often not _referentially_ equal,
211
193
  // but contains the same shallow properties, eg `{"slug": "some-slug"}`
212
-
213
194
  react.useEffect(function () {
214
195
  if (!enabled) {
215
196
  return;
216
197
  }
217
-
218
198
  setLoading(true);
219
199
  var aborter = getAborter();
220
200
  var subscription;
221
201
  getCurrentUser(projectId, aborter, token).then(function (user) {
222
202
  if (user) {
223
203
  return;
224
- } // eslint-disable-next-line no-console
225
-
226
-
204
+ }
205
+ // eslint-disable-next-line no-console
227
206
  console.warn('Not authenticated - preview not available');
228
207
  throw new Error('Not authenticated - preview not available');
229
208
  }).then(function () {
@@ -240,13 +219,12 @@ function useQuerySubscription(options) {
240
219
  return err.name === 'AbortError' ? null : setError(err);
241
220
  }).finally(function () {
242
221
  return setLoading(false);
243
- }); // eslint-disable-next-line consistent-return
244
-
222
+ });
223
+ // eslint-disable-next-line consistent-return
245
224
  return function () {
246
225
  if (subscription) {
247
226
  subscription.unsubscribe();
248
227
  }
249
-
250
228
  aborter.abort();
251
229
  };
252
230
  }, [getStore, query, params, enabled, projectId, token]);
@@ -255,9 +233,8 @@ function useQuerySubscription(options) {
255
233
  loading: loading,
256
234
  error: error
257
235
  };
258
- } // Return params that are stable with deep equal as long as the key order is the same
259
-
260
-
236
+ }
237
+ // Return params that are stable with deep equal as long as the key order is the same
261
238
  function useParams(params) {
262
239
  var stringifiedParams = react.useMemo(function () {
263
240
  return JSON.stringify(params);
@@ -1 +1 @@
1
- {"version":3,"file":"next-sanity.cjs.development.js","sources":["../src/client.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts"],"sourcesContent":["import type {ClientConfig, SanityClient} from '@sanity/client'\nimport sanityClient from '@sanity/client'\n\nexport function createClient(config: ClientConfig): SanityClient {\n return sanityClient(config)\n}\n","export interface Aborter {\n abort(): void\n signal: AbortSignal\n}\n\nclass MockAbortController {\n _signal = {aborted: false}\n get signal() {\n return this._signal as AbortSignal\n }\n abort() {\n this._signal.aborted = true\n }\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? new MockAbortController()\n : new AbortController()\n}\n","import {useEffect, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {CurrentUser} from './types'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(\n projectId: string,\n abort: Aborter,\n token?: string\n): Promise<CurrentUser | null> {\n const headers = token ? {Authorization: `Bearer ${token}`} : undefined\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort.signal,\n headers,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\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)\n .then(setUser)\n .catch((err: Error) => err.name !== 'AbortError' && setError(err))\n\n return () => {\n aborter.abort()\n }\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useEffect, useMemo, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {getCurrentUser} from './currentUser'\nimport {ProjectConfig} from './types'\n\nconst EMPTY_PARAMS = {}\n\nexport type Params = Record<string, unknown>\nexport interface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Params\n initialData?: R\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n token,\n EventSource,\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 token,\n })\n }\n\n function getStore(abort: Aborter) {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) => {\n // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure\n if (abort.signal.aborted) {\n const error = new Error('Cancelling groq store creation')\n // This ensures we can skip it in the catch block same way\n error.name = 'AbortError'\n return Promise.reject(error)\n }\n\n return groqStore({\n projectId,\n dataset,\n documentLimit,\n token,\n EventSource,\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: (abort: Aborter) => Promise<GroqStore>\n projectId: string\n query: string\n params: Params\n initialData: R\n enabled: boolean\n token?: string\n}) {\n const {getStore, projectId, query, initialData, enabled = false, token} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n const params = useParams(options.params)\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 useEffect(() => {\n if (!enabled) {\n return\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter, token)\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(aborter))\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((err: Error) => (err.name === 'AbortError' ? null : setError(err)))\n .finally(() => setLoading(false))\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled, projectId, token])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n\n// Return params that are stable with deep equal as long as the key order is the same\nfunction useParams(params: Params): Params {\n const stringifiedParams = useMemo(() => JSON.stringify(params), [params])\n return useMemo(() => JSON.parse(stringifiedParams), [stringifiedParams])\n}\n"],"names":["createClient","config","sanityClient","MockAbortController","aborted","abort","_signal","getAborter","AbortController","createCurrentUserHook","projectId","useCurrentUser","getCurrentUser","token","headers","Authorization","undefined","fetch","credentials","signal","then","res","json","id","useState","data","setUser","error","setError","useEffect","aborter","catch","err","name","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","dataset","EventSource","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","Error","Promise","reject","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useParams","subscription","user","console","warn","subscribe","result","finally","unsubscribe","stringifiedParams","useMemo","JSON","stringify","parse"],"mappings":"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"}
1
+ {"version":3,"file":"next-sanity.cjs.development.js","sources":["../src/client.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts"],"sourcesContent":["import type {ClientConfig, SanityClient} from '@sanity/client'\nimport sanityClient from '@sanity/client'\n\nexport function createClient(config: ClientConfig): SanityClient {\n return sanityClient(config)\n}\n","export interface Aborter {\n abort(): void\n signal: AbortSignal\n}\n\nclass MockAbortController {\n _signal = {aborted: false}\n get signal() {\n return this._signal as AbortSignal\n }\n abort() {\n this._signal.aborted = true\n }\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? new MockAbortController()\n : new AbortController()\n}\n","import {useEffect, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {CurrentUser} from './types'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(\n projectId: string,\n abort: Aborter,\n token?: string\n): Promise<CurrentUser | null> {\n const headers = token ? {Authorization: `Bearer ${token}`} : undefined\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort.signal,\n headers,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\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)\n .then(setUser)\n .catch((err: Error) => err.name !== 'AbortError' && setError(err))\n\n return () => {\n aborter.abort()\n }\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useEffect, useMemo, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {getCurrentUser} from './currentUser'\nimport {ProjectConfig} from './types'\n\nconst EMPTY_PARAMS = {}\n\nexport type Params = Record<string, unknown>\nexport interface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Params\n initialData?: R\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n token,\n EventSource,\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 token,\n })\n }\n\n function getStore(abort: Aborter) {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) => {\n // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure\n if (abort.signal.aborted) {\n const error = new Error('Cancelling groq store creation')\n // This ensures we can skip it in the catch block same way\n error.name = 'AbortError'\n return Promise.reject(error)\n }\n\n return groqStore({\n projectId,\n dataset,\n documentLimit,\n token,\n EventSource,\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: (abort: Aborter) => Promise<GroqStore>\n projectId: string\n query: string\n params: Params\n initialData: R\n enabled: boolean\n token?: string\n}) {\n const {getStore, projectId, query, initialData, enabled = false, token} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n const params = useParams(options.params)\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 useEffect(() => {\n if (!enabled) {\n return\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter, token)\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(aborter))\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((err: Error) => (err.name === 'AbortError' ? null : setError(err)))\n .finally(() => setLoading(false))\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled, projectId, token])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n\n// Return params that are stable with deep equal as long as the key order is the same\nfunction useParams(params: Params): Params {\n const stringifiedParams = useMemo(() => JSON.stringify(params), [params])\n return useMemo(() => JSON.parse(stringifiedParams), [stringifiedParams])\n}\n"],"names":["createClient","config","sanityClient","MockAbortController","aborted","abort","_signal","getAborter","AbortController","createCurrentUserHook","projectId","useCurrentUser","getCurrentUser","token","headers","Authorization","undefined","fetch","credentials","signal","then","res","json","id","useState","data","setUser","error","setError","useEffect","aborter","catch","err","name","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","dataset","EventSource","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","Error","Promise","reject","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useParams","subscription","user","console","warn","subscribe","result","finally","unsubscribe","stringifiedParams","useMemo","JSON","stringify","parse"],"mappings":"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"}
@@ -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"],"sourcesContent":["export interface Aborter {\n abort(): void\n signal: AbortSignal\n}\n\nclass MockAbortController {\n _signal = {aborted: false}\n get signal() {\n return this._signal as AbortSignal\n }\n abort() {\n this._signal.aborted = true\n }\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? new MockAbortController()\n : new AbortController()\n}\n","import {useEffect, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {CurrentUser} from './types'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(\n projectId: string,\n abort: Aborter,\n token?: string\n): Promise<CurrentUser | null> {\n const headers = token ? {Authorization: `Bearer ${token}`} : undefined\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort.signal,\n headers,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\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)\n .then(setUser)\n .catch((err: Error) => err.name !== 'AbortError' && setError(err))\n\n return () => {\n aborter.abort()\n }\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useEffect, useMemo, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {getCurrentUser} from './currentUser'\nimport {ProjectConfig} from './types'\n\nconst EMPTY_PARAMS = {}\n\nexport type Params = Record<string, unknown>\nexport interface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Params\n initialData?: R\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n token,\n EventSource,\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 token,\n })\n }\n\n function getStore(abort: Aborter) {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) => {\n // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure\n if (abort.signal.aborted) {\n const error = new Error('Cancelling groq store creation')\n // This ensures we can skip it in the catch block same way\n error.name = 'AbortError'\n return Promise.reject(error)\n }\n\n return groqStore({\n projectId,\n dataset,\n documentLimit,\n token,\n EventSource,\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: (abort: Aborter) => Promise<GroqStore>\n projectId: string\n query: string\n params: Params\n initialData: R\n enabled: boolean\n token?: string\n}) {\n const {getStore, projectId, query, initialData, enabled = false, token} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n const params = useParams(options.params)\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 useEffect(() => {\n if (!enabled) {\n return\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter, token)\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(aborter))\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((err: Error) => (err.name === 'AbortError' ? null : setError(err)))\n .finally(() => setLoading(false))\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled, projectId, token])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n\n// Return params that are stable with deep equal as long as the key order is the same\nfunction useParams(params: Params): Params {\n const stringifiedParams = useMemo(() => JSON.stringify(params), [params])\n return useMemo(() => JSON.parse(stringifiedParams), [stringifiedParams])\n}\n","import type {ClientConfig, SanityClient} from '@sanity/client'\nimport sanityClient from '@sanity/client'\n\nexport function createClient(config: ClientConfig): SanityClient {\n return sanityClient(config)\n}\n"],"names":["MockAbortController","this","aborted","abort","_signal","getAborter","AbortController","getCurrentUser","projectId","token","fetch","credentials","signal","headers","Authorization","undefined","then","res","json","id","EMPTY_PARAMS","config","sanityClient","useState","data","setUser","error","setError","useEffect","aborter","catch","err","name","loading","useCurrentUser","store","dataset","EventSource","documentLimit","query","options","params","getStore","initialData","enabled","setLoading","setData","stringifiedParams","useMemo","JSON","stringify","parse","useParams","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","useQuerySubscription","window","groqStore","Promise","reject","listen","overlayDrafts","subscriptionThrottleMs"],"mappings":"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"}
1
+ {"version":3,"file":"next-sanity.cjs.production.min.js","sources":["../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts","../src/client.ts"],"sourcesContent":["export interface Aborter {\n abort(): void\n signal: AbortSignal\n}\n\nclass MockAbortController {\n _signal = {aborted: false}\n get signal() {\n return this._signal as AbortSignal\n }\n abort() {\n this._signal.aborted = true\n }\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? new MockAbortController()\n : new AbortController()\n}\n","import {useEffect, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {CurrentUser} from './types'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(\n projectId: string,\n abort: Aborter,\n token?: string\n): Promise<CurrentUser | null> {\n const headers = token ? {Authorization: `Bearer ${token}`} : undefined\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort.signal,\n headers,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\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)\n .then(setUser)\n .catch((err: Error) => err.name !== 'AbortError' && setError(err))\n\n return () => {\n aborter.abort()\n }\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useEffect, useMemo, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {getCurrentUser} from './currentUser'\nimport {ProjectConfig} from './types'\n\nconst EMPTY_PARAMS = {}\n\nexport type Params = Record<string, unknown>\nexport interface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Params\n initialData?: R\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n token,\n EventSource,\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 token,\n })\n }\n\n function getStore(abort: Aborter) {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) => {\n // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure\n if (abort.signal.aborted) {\n const error = new Error('Cancelling groq store creation')\n // This ensures we can skip it in the catch block same way\n error.name = 'AbortError'\n return Promise.reject(error)\n }\n\n return groqStore({\n projectId,\n dataset,\n documentLimit,\n token,\n EventSource,\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: (abort: Aborter) => Promise<GroqStore>\n projectId: string\n query: string\n params: Params\n initialData: R\n enabled: boolean\n token?: string\n}) {\n const {getStore, projectId, query, initialData, enabled = false, token} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n const params = useParams(options.params)\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 useEffect(() => {\n if (!enabled) {\n return\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter, token)\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(aborter))\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((err: Error) => (err.name === 'AbortError' ? null : setError(err)))\n .finally(() => setLoading(false))\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled, projectId, token])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n\n// Return params that are stable with deep equal as long as the key order is the same\nfunction useParams(params: Params): Params {\n const stringifiedParams = useMemo(() => JSON.stringify(params), [params])\n return useMemo(() => JSON.parse(stringifiedParams), [stringifiedParams])\n}\n","import type {ClientConfig, SanityClient} from '@sanity/client'\nimport sanityClient from '@sanity/client'\n\nexport function createClient(config: ClientConfig): SanityClient {\n return sanityClient(config)\n}\n"],"names":["MockAbortController","this","aborted","abort","_signal","key","get","getAborter","AbortController","getCurrentUser","projectId","token","fetch","credentials","signal","headers","Authorization","undefined","then","res","json","id","EMPTY_PARAMS","config","sanityClient","useState","data","setUser","error","setError","useEffect","aborter","catch","err","name","loading","useCurrentUser","store","dataset","EventSource","_ref$documentLimit","documentLimit","query","options","_options$params","params","getStore","initialData","_options$enabled","enabled","setLoading","setData","stringifiedParams","useMemo","JSON","stringify","parse","useParams","subscription","user","console","warn","Error","subscribe","result","finally","unsubscribe","useQuerySubscription","window","groqStore","Promise","reject","listen","overlayDrafts","subscriptionThrottleMs"],"mappings":"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"}
@@ -15,7 +15,6 @@ function _defineProperties(target, props) {
15
15
  Object.defineProperty(target, descriptor.key, descriptor);
16
16
  }
17
17
  }
18
-
19
18
  function _createClass(Constructor, protoProps, staticProps) {
20
19
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
21
20
  if (staticProps) _defineProperties(Constructor, staticProps);
@@ -31,23 +30,18 @@ var MockAbortController = /*#__PURE__*/function () {
31
30
  aborted: false
32
31
  };
33
32
  }
34
-
35
33
  var _proto = MockAbortController.prototype;
36
-
37
34
  _proto.abort = function abort() {
38
35
  this._signal.aborted = true;
39
36
  };
40
-
41
37
  _createClass(MockAbortController, [{
42
38
  key: "signal",
43
39
  get: function get() {
44
40
  return this._signal;
45
41
  }
46
42
  }]);
47
-
48
43
  return MockAbortController;
49
44
  }();
50
-
51
45
  function getAborter() {
52
46
  return typeof AbortController === 'undefined' ? new MockAbortController() : new AbortController();
53
47
  }
@@ -73,16 +67,13 @@ function getCurrentUser(projectId, abort, token) {
73
67
  return res != null && res.id ? res : null;
74
68
  });
75
69
  }
76
-
77
70
  function useCurrentUser(projectId) {
78
71
  var _useState = useState(),
79
- data = _useState[0],
80
- setUser = _useState[1];
81
-
72
+ data = _useState[0],
73
+ setUser = _useState[1];
82
74
  var _useState2 = useState(),
83
- error = _useState2[0],
84
- setError = _useState2[1];
85
-
75
+ error = _useState2[0],
76
+ setError = _useState2[1];
86
77
  useEffect(function () {
87
78
  var aborter = getAborter();
88
79
  getCurrentUser(projectId, aborter).then(setUser).catch(function (err) {
@@ -99,27 +90,26 @@ function useCurrentUser(projectId) {
99
90
  };
100
91
  }
101
92
 
102
- var EMPTY_PARAMS = {}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
103
-
93
+ var EMPTY_PARAMS = {};
94
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
104
95
  function createPreviewSubscriptionHook(_ref) {
105
96
  var projectId = _ref.projectId,
106
- dataset = _ref.dataset,
107
- token = _ref.token,
108
- EventSource = _ref.EventSource,
109
- _ref$documentLimit = _ref.documentLimit,
110
- documentLimit = _ref$documentLimit === void 0 ? 3000 : _ref$documentLimit;
97
+ dataset = _ref.dataset,
98
+ token = _ref.token,
99
+ EventSource = _ref.EventSource,
100
+ _ref$documentLimit = _ref.documentLimit,
101
+ documentLimit = _ref$documentLimit === void 0 ? 3000 : _ref$documentLimit;
111
102
  // Only construct/setup the store when `getStore()` is called
112
103
  var store;
113
104
  return function usePreviewSubscription(query, options) {
114
105
  if (options === void 0) {
115
106
  options = {};
116
107
  }
117
-
118
108
  var _options = options,
119
- _options$params = _options.params,
120
- params = _options$params === void 0 ? EMPTY_PARAMS : _options$params,
121
- initialData = _options.initialData,
122
- enabled = _options.enabled;
109
+ _options$params = _options.params,
110
+ params = _options$params === void 0 ? EMPTY_PARAMS : _options$params,
111
+ initialData = _options.initialData,
112
+ enabled = _options.enabled;
123
113
  return useQuerySubscription({
124
114
  getStore: getStore,
125
115
  projectId: projectId,
@@ -130,20 +120,17 @@ function createPreviewSubscriptionHook(_ref) {
130
120
  token: token
131
121
  });
132
122
  };
133
-
134
123
  function getStore(abort) {
135
124
  if (!store) {
136
125
  store = import('@sanity/groq-store').then(function (_ref2) {
137
126
  var groqStore = _ref2.groqStore;
138
-
139
127
  // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure
140
128
  if (abort.signal.aborted) {
141
- var error = new Error('Cancelling groq store creation'); // This ensures we can skip it in the catch block same way
142
-
129
+ var error = new Error('Cancelling groq store creation');
130
+ // This ensures we can skip it in the catch block same way
143
131
  error.name = 'AbortError';
144
132
  return Promise.reject(error);
145
133
  }
146
-
147
134
  return groqStore({
148
135
  projectId: projectId,
149
136
  dataset: dataset,
@@ -156,49 +143,41 @@ function createPreviewSubscriptionHook(_ref) {
156
143
  });
157
144
  });
158
145
  }
159
-
160
146
  return store;
161
147
  }
162
148
  }
163
-
164
149
  function useQuerySubscription(options) {
165
150
  var getStore = options.getStore,
166
- projectId = options.projectId,
167
- query = options.query,
168
- initialData = options.initialData,
169
- _options$enabled = options.enabled,
170
- enabled = _options$enabled === void 0 ? false : _options$enabled,
171
- token = options.token;
172
-
151
+ projectId = options.projectId,
152
+ query = options.query,
153
+ initialData = options.initialData,
154
+ _options$enabled = options.enabled,
155
+ enabled = _options$enabled === void 0 ? false : _options$enabled,
156
+ token = options.token;
173
157
  var _useState = useState(),
174
- error = _useState[0],
175
- setError = _useState[1];
176
-
158
+ error = _useState[0],
159
+ setError = _useState[1];
177
160
  var _useState2 = useState(false),
178
- loading = _useState2[0],
179
- setLoading = _useState2[1];
180
-
161
+ loading = _useState2[0],
162
+ setLoading = _useState2[1];
181
163
  var _useState3 = useState(),
182
- data = _useState3[0],
183
- setData = _useState3[1];
184
-
185
- var params = useParams(options.params); // Use "deep" dependency comparison because params are often not _referentially_ equal,
164
+ data = _useState3[0],
165
+ setData = _useState3[1];
166
+ var params = useParams(options.params);
167
+ // Use "deep" dependency comparison because params are often not _referentially_ equal,
186
168
  // but contains the same shallow properties, eg `{"slug": "some-slug"}`
187
-
188
169
  useEffect(function () {
189
170
  if (!enabled) {
190
171
  return;
191
172
  }
192
-
193
173
  setLoading(true);
194
174
  var aborter = getAborter();
195
175
  var subscription;
196
176
  getCurrentUser(projectId, aborter, token).then(function (user) {
197
177
  if (user) {
198
178
  return;
199
- } // eslint-disable-next-line no-console
200
-
201
-
179
+ }
180
+ // eslint-disable-next-line no-console
202
181
  console.warn('Not authenticated - preview not available');
203
182
  throw new Error('Not authenticated - preview not available');
204
183
  }).then(function () {
@@ -215,13 +194,12 @@ function useQuerySubscription(options) {
215
194
  return err.name === 'AbortError' ? null : setError(err);
216
195
  }).finally(function () {
217
196
  return setLoading(false);
218
- }); // eslint-disable-next-line consistent-return
219
-
197
+ });
198
+ // eslint-disable-next-line consistent-return
220
199
  return function () {
221
200
  if (subscription) {
222
201
  subscription.unsubscribe();
223
202
  }
224
-
225
203
  aborter.abort();
226
204
  };
227
205
  }, [getStore, query, params, enabled, projectId, token]);
@@ -230,9 +208,8 @@ function useQuerySubscription(options) {
230
208
  loading: loading,
231
209
  error: error
232
210
  };
233
- } // Return params that are stable with deep equal as long as the key order is the same
234
-
235
-
211
+ }
212
+ // Return params that are stable with deep equal as long as the key order is the same
236
213
  function useParams(params) {
237
214
  var stringifiedParams = useMemo(function () {
238
215
  return JSON.stringify(params);
@@ -1 +1 @@
1
- {"version":3,"file":"next-sanity.esm.js","sources":["../src/client.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts"],"sourcesContent":["import type {ClientConfig, SanityClient} from '@sanity/client'\nimport sanityClient from '@sanity/client'\n\nexport function createClient(config: ClientConfig): SanityClient {\n return sanityClient(config)\n}\n","export interface Aborter {\n abort(): void\n signal: AbortSignal\n}\n\nclass MockAbortController {\n _signal = {aborted: false}\n get signal() {\n return this._signal as AbortSignal\n }\n abort() {\n this._signal.aborted = true\n }\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? new MockAbortController()\n : new AbortController()\n}\n","import {useEffect, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {CurrentUser} from './types'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(\n projectId: string,\n abort: Aborter,\n token?: string\n): Promise<CurrentUser | null> {\n const headers = token ? {Authorization: `Bearer ${token}`} : undefined\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort.signal,\n headers,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\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)\n .then(setUser)\n .catch((err: Error) => err.name !== 'AbortError' && setError(err))\n\n return () => {\n aborter.abort()\n }\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useEffect, useMemo, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {getCurrentUser} from './currentUser'\nimport {ProjectConfig} from './types'\n\nconst EMPTY_PARAMS = {}\n\nexport type Params = Record<string, unknown>\nexport interface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Params\n initialData?: R\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n token,\n EventSource,\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 token,\n })\n }\n\n function getStore(abort: Aborter) {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) => {\n // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure\n if (abort.signal.aborted) {\n const error = new Error('Cancelling groq store creation')\n // This ensures we can skip it in the catch block same way\n error.name = 'AbortError'\n return Promise.reject(error)\n }\n\n return groqStore({\n projectId,\n dataset,\n documentLimit,\n token,\n EventSource,\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: (abort: Aborter) => Promise<GroqStore>\n projectId: string\n query: string\n params: Params\n initialData: R\n enabled: boolean\n token?: string\n}) {\n const {getStore, projectId, query, initialData, enabled = false, token} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n const params = useParams(options.params)\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 useEffect(() => {\n if (!enabled) {\n return\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter, token)\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(aborter))\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((err: Error) => (err.name === 'AbortError' ? null : setError(err)))\n .finally(() => setLoading(false))\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled, projectId, token])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n\n// Return params that are stable with deep equal as long as the key order is the same\nfunction useParams(params: Params): Params {\n const stringifiedParams = useMemo(() => JSON.stringify(params), [params])\n return useMemo(() => JSON.parse(stringifiedParams), [stringifiedParams])\n}\n"],"names":["createClient","config","sanityClient","MockAbortController","aborted","abort","_signal","getAborter","AbortController","createCurrentUserHook","projectId","useCurrentUser","getCurrentUser","token","headers","Authorization","undefined","fetch","credentials","signal","then","res","json","id","useState","data","setUser","error","setError","useEffect","aborter","catch","err","name","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","dataset","EventSource","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","Error","Promise","reject","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useParams","subscription","user","console","warn","subscribe","result","finally","unsubscribe","stringifiedParams","useMemo","JSON","stringify","parse"],"mappings":"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"}
1
+ {"version":3,"file":"next-sanity.esm.js","sources":["../src/client.ts","../src/aborter.ts","../src/currentUser.ts","../src/useSubscription.ts"],"sourcesContent":["import type {ClientConfig, SanityClient} from '@sanity/client'\nimport sanityClient from '@sanity/client'\n\nexport function createClient(config: ClientConfig): SanityClient {\n return sanityClient(config)\n}\n","export interface Aborter {\n abort(): void\n signal: AbortSignal\n}\n\nclass MockAbortController {\n _signal = {aborted: false}\n get signal() {\n return this._signal as AbortSignal\n }\n abort() {\n this._signal.aborted = true\n }\n}\n\nexport function getAborter(): Aborter {\n return typeof AbortController === 'undefined'\n ? new MockAbortController()\n : new AbortController()\n}\n","import {useEffect, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {CurrentUser} from './types'\n\nexport function createCurrentUserHook({projectId}: {projectId: string; dataset?: string}) {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n return () => useCurrentUser(projectId)\n}\n\nexport function getCurrentUser(\n projectId: string,\n abort: Aborter,\n token?: string\n): Promise<CurrentUser | null> {\n const headers = token ? {Authorization: `Bearer ${token}`} : undefined\n return fetch(`https://${projectId}.api.sanity.io/v1/users/me`, {\n credentials: 'include',\n signal: abort.signal,\n headers,\n })\n .then((res) => res.json())\n .then((res) => (res?.id ? res : null))\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)\n .then(setUser)\n .catch((err: Error) => err.name !== 'AbortError' && setError(err))\n\n return () => {\n aborter.abort()\n }\n }, [projectId])\n\n return {data, error, loading: data !== null || !error}\n}\n","import {GroqStore, Subscription} from '@sanity/groq-store'\nimport {useEffect, useMemo, useState} from 'react'\n\nimport {Aborter, getAborter} from './aborter'\nimport {getCurrentUser} from './currentUser'\nimport {ProjectConfig} from './types'\n\nconst EMPTY_PARAMS = {}\n\nexport type Params = Record<string, unknown>\nexport interface SubscriptionOptions<R = any> {\n enabled?: boolean\n params?: Params\n initialData?: R\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function createPreviewSubscriptionHook({\n projectId,\n dataset,\n token,\n EventSource,\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 token,\n })\n }\n\n function getStore(abort: Aborter) {\n if (!store) {\n store = import('@sanity/groq-store').then(({groqStore}) => {\n // Skip creating the groq store if we've been unmounted to save memory and reduce gc pressure\n if (abort.signal.aborted) {\n const error = new Error('Cancelling groq store creation')\n // This ensures we can skip it in the catch block same way\n error.name = 'AbortError'\n return Promise.reject(error)\n }\n\n return groqStore({\n projectId,\n dataset,\n documentLimit,\n token,\n EventSource,\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: (abort: Aborter) => Promise<GroqStore>\n projectId: string\n query: string\n params: Params\n initialData: R\n enabled: boolean\n token?: string\n}) {\n const {getStore, projectId, query, initialData, enabled = false, token} = options\n const [error, setError] = useState<Error>()\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<R>()\n const params = useParams(options.params)\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 useEffect(() => {\n if (!enabled) {\n return\n }\n\n setLoading(true)\n\n const aborter = getAborter()\n let subscription: Subscription | undefined\n getCurrentUser(projectId, aborter, token)\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(aborter))\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((err: Error) => (err.name === 'AbortError' ? null : setError(err)))\n .finally(() => setLoading(false))\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n\n aborter.abort()\n }\n }, [getStore, query, params, enabled, projectId, token])\n\n return {\n data: typeof data === 'undefined' ? initialData : data,\n loading,\n error,\n }\n}\n\n// Return params that are stable with deep equal as long as the key order is the same\nfunction useParams(params: Params): Params {\n const stringifiedParams = useMemo(() => JSON.stringify(params), [params])\n return useMemo(() => JSON.parse(stringifiedParams), [stringifiedParams])\n}\n"],"names":["createClient","config","sanityClient","MockAbortController","aborted","abort","_signal","getAborter","AbortController","createCurrentUserHook","projectId","useCurrentUser","getCurrentUser","token","headers","Authorization","undefined","fetch","credentials","signal","then","res","json","id","useState","data","setUser","error","setError","useEffect","aborter","catch","err","name","loading","EMPTY_PARAMS","createPreviewSubscriptionHook","dataset","EventSource","documentLimit","store","usePreviewSubscription","query","options","params","initialData","enabled","useQuerySubscription","getStore","window","groqStore","Error","Promise","reject","listen","overlayDrafts","subscriptionThrottleMs","setLoading","setData","useParams","subscription","user","console","warn","subscribe","result","finally","unsubscribe","stringifiedParams","useMemo","JSON","stringify","parse"],"mappings":"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"}
@@ -35,6 +35,10 @@ export interface NextStudioProps extends StudioProps {
35
35
  * Sets the background color of <html>
36
36
  */
37
37
  unstable__bg?: NextStudioGlobalStyleProps['bg'];
38
+ /**
39
+ * Sets the font-family of #__next
40
+ */
41
+ unstable__fontFamily?: NextStudioGlobalStyleProps['fontFamily'];
38
42
  /**
39
43
  * Don't load the favicon meta tags
40
44
  */
@@ -44,4 +48,4 @@ export interface NextStudioProps extends StudioProps {
44
48
  */
45
49
  unstable__noNoScript?: boolean;
46
50
  }
47
- export declare const NextStudio: import("react").MemoExoticComponent<({ children, config, unstable__noGlobalStyle, unstable__noTailwindSvgFix, unstable__head, unstable__document_title, unstable__bg, unstable__noFavicons, unstable__noNoScript, ...props }: NextStudioProps) => JSX.Element>;
51
+ export declare const NextStudio: import("react").MemoExoticComponent<({ children, config, unstable__noGlobalStyle, unstable__noTailwindSvgFix, unstable__head, unstable__document_title, unstable__bg, unstable__fontFamily, unstable__noFavicons, unstable__noNoScript, ...props }: NextStudioProps) => JSX.Element>;
@@ -1,4 +1,5 @@
1
1
  export interface NextStudioGlobalStyleProps {
2
+ fontFamily?: string;
2
3
  bg?: string;
3
4
  unstable__tailwindSvgFix?: boolean;
4
5
  }
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const NextStudioNoScript: () => JSX.Element;
@@ -29,7 +29,7 @@ import Document, { DocumentContext } from 'next/document';
29
29
  */
30
30
  export declare class ServerStyleSheetDocument extends Document {
31
31
  static getInitialProps(ctx: DocumentContext): Promise<{
32
- styles: ({} | undefined)[];
32
+ styles: (import("react").ReactFragment | JSX.Element | undefined)[];
33
33
  html: string;
34
34
  head?: (JSX.Element | null)[] | undefined;
35
35
  }>;