@sanity-typed/next-sanity
Version:
next-sanity with typed GROQ Results
98 lines (95 loc) • 3.72 kB
JavaScript
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x + '" is not supported');
});
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
// src/internal.ts
import { bindAll } from "lodash/fp";
import { createClient as createClientNative } from "next-sanity";
var createClient = (config) => {
const client = createClientNative(config);
let clientQ;
try {
const {
createGroqBuilder
// eslint-disable-next-line global-require, @typescript-eslint/no-require-imports, unicorn/prefer-module -- Optional Dependency
} = __require("groq-builder");
clientQ = createGroqBuilder();
} catch (e) {
}
return __spreadProps(__spreadValues({}, client), {
// HACK Destructured classes don't give their methods, do it explicitly
action: client.action.bind(client),
clone: client.clone.bind(client),
config: client.config.bind(client),
create: client.create.bind(client),
createIfNotExists: client.createIfNotExists.bind(client),
createOrReplace: client.createOrReplace.bind(client),
dataRequest: client.dataRequest.bind(client),
delete: client.delete.bind(client),
getDataUrl: client.getDataUrl.bind(client),
getDocument: client.getDocument.bind(client),
getDocuments: client.getDocuments.bind(client),
getUrl: client.getUrl.bind(client),
mutate: client.mutate.bind(client),
patch: client.patch.bind(client),
request: client.request.bind(client),
transaction: client.transaction.bind(client),
withConfig: client.withConfig.bind(client),
fetch: (queryOrBuilder, params, options) => __async(null, null, function* () {
if (typeof queryOrBuilder !== "string" && !clientQ) {
throw new TypeError(
"Cannot pass a function to `fetch` unless `groq-query` is installed"
);
}
const { query, parse } = bindAll(
["parse"],
typeof queryOrBuilder === "string" ? { query: queryOrBuilder, parse: (value) => value } : queryOrBuilder(clientQ)
);
return parse(client.fetch(query, params, options));
})
});
};
export {
createClient
};