@sanity/client 6.2.0-fetch.5 → 6.2.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.
@@ -204,26 +204,26 @@ const validateObject = (op, val) => {
204
204
  };
205
205
  const validateDocumentId = (op, id) => {
206
206
  if (typeof id !== "string" || !/^[a-z0-9_][a-z0-9_.-]{0,127}$/i.test(id) || id.includes("..")) {
207
- throw new Error("".concat(op, "(): \"").concat(id, "\" is not a valid document ID"));
207
+ throw new Error("".concat(op, '(): "').concat(id, '" is not a valid document ID'));
208
208
  }
209
209
  };
210
210
  const requireDocumentId = (op, doc) => {
211
211
  if (!doc._id) {
212
- throw new Error("".concat(op, "() requires that the document contains an ID (\"_id\" property)"));
212
+ throw new Error("".concat(op, '() requires that the document contains an ID ("_id" property)'));
213
213
  }
214
214
  validateDocumentId(op, doc._id);
215
215
  };
216
216
  const validateInsert = (at, selector, items) => {
217
217
  const signature = "insert(at, selector, items)";
218
218
  if (VALID_INSERT_LOCATIONS.indexOf(at) === -1) {
219
- const valid = VALID_INSERT_LOCATIONS.map(loc => "\"".concat(loc, "\"")).join(", ");
220
- throw new Error("".concat(signature, " takes an \"at\"-argument which is one of: ").concat(valid));
219
+ const valid = VALID_INSERT_LOCATIONS.map(loc => '"'.concat(loc, '"')).join(", ");
220
+ throw new Error("".concat(signature, ' takes an "at"-argument which is one of: ').concat(valid));
221
221
  }
222
222
  if (typeof selector !== "string") {
223
- throw new Error("".concat(signature, " takes a \"selector\"-argument which must be a string"));
223
+ throw new Error("".concat(signature, ' takes a "selector"-argument which must be a string'));
224
224
  }
225
225
  if (!Array.isArray(items)) {
226
- throw new Error("".concat(signature, " takes an \"items\"-argument which must be an array"));
226
+ throw new Error("".concat(signature, ' takes an "items"-argument which must be an array'));
227
227
  }
228
228
  };
229
229
  const hasDataset = config => {
@@ -891,7 +891,7 @@ function _requestObservable(client, httpRequest, options) {
891
891
  ...options.query
892
892
  };
893
893
  }
894
- if (["GET", "HEAD"].indexOf(options.method || "GET") >= 0 && uri.indexOf("/data/query/") === 0) {
894
+ if (["GET", "HEAD", "POST"].indexOf(options.method || "GET") >= 0 && uri.indexOf("/data/query/") === 0) {
895
895
  if (config.resultSourceMap) {
896
896
  options.query = {
897
897
  resultSourceMap: true,
@@ -908,9 +908,7 @@ function _requestObservable(client, httpRequest, options) {
908
908
  const reqOptions = requestOptions(config, Object.assign({}, options, {
909
909
  url: _getUrl(client, uri, useCdn)
910
910
  }));
911
- const request = new Observable(subscriber =>
912
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- the typings thinks it's optional because it's not required to specify it when calling createClient, but it's always defined in practice since SanityClient provides a default
913
- httpRequest(reqOptions, config.requester).subscribe(subscriber));
911
+ const request = new Observable(subscriber => httpRequest(reqOptions, config.requester).subscribe(subscriber));
914
912
  return options.signal ? request.pipe(_withAbortSignal(options.signal)) : request;
915
913
  }
916
914
  function _request(client, httpRequest, options) {
@@ -1103,6 +1101,16 @@ const validateApiVersion = function validateApiVersion2(apiVersion) {
1103
1101
  throw new Error("Invalid API version string, expected `1` or date in format `YYYY-MM-DD`");
1104
1102
  }
1105
1103
  };
1104
+ const validateApiPerspective = function validateApiPerspective2(perspective) {
1105
+ switch (perspective) {
1106
+ case "previewDrafts":
1107
+ case "published":
1108
+ case "raw":
1109
+ return;
1110
+ default:
1111
+ throw new TypeError("Invalid API perspective string, expected `published`, `previewDrafts` or `raw`");
1112
+ }
1113
+ };
1106
1114
  const initConfig = (config, prevConfig) => {
1107
1115
  const specifiedConfig = Object.assign({}, prevConfig, config);
1108
1116
  if (!specifiedConfig.apiVersion) {
@@ -1117,6 +1125,9 @@ const initConfig = (config, prevConfig) => {
1117
1125
  if (projectBased && !newConfig.projectId) {
1118
1126
  throw new Error("Configuration must contain `projectId`");
1119
1127
  }
1128
+ if (typeof newConfig.perspective === "string") {
1129
+ validateApiPerspective(newConfig.perspective);
1130
+ }
1120
1131
  if ("encodeSourceMapAtPath" in newConfig || "encodeSourceMap" in newConfig || "studioUrl" in newConfig || "logger" in newConfig) {
1121
1132
  throw new Error("It looks like you're using options meant for '@sanity/preview-kit/client', such as 'encodeSourceMapAtPath', 'encodeSourceMap', 'studioUrl' and 'logger'. Make sure you're using the right import.");
1122
1133
  }